ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

深度拆解 Claude 的 Agent 架构:MCP + PTC、Skills 与 Subagents 的三维协同|TaoToken 统一 Key 通道实践

深度拆解 Claude 的 Agent 架构:MCP + PTC、Skills 与 Subagents 的三维协同|TaoToken 统一 Key 通道实践 1. 从一次真实踩坑说起为什么单 Agent 跑复杂任务总会崩我试过用单个 Claude Agent 去处理「读代码库 查数据库 生成报告」这种复合任务结果跑到第三步就开始胡言乱语——上下文里塞满了前两步的中间结果模型已经忘了最初要干什么。这不是模型能力问题而是架构问题。Claude 的 Agent 体系其实给了三层解法MCP PTC 负责连接层怎么拿到外部数据和工具、Skills 负责认知层这类任务该怎么做、Subagents 负责组织层谁来分工做。三者叠起来才能撑住真实生产场景里的复杂流程。这篇文章不讲概念科普直接给你能跑的东西可复制的 MCP 配置片段、Subagents 编排示例、Skills 调用参数以及用 TaoToken 统一 Key 通道把这三层串起来的完整步骤。适合已经在写 Agent、但被上下文爆炸和多工具接入折磨过的开发者。读完你能在本地复现一套「主 Agent 派活 → 子 Agent 干活 → Skill 提供方法 → MCP 拿数据」的闭环。先说清楚三者定位避免后面配置时混淆机制层级解决什么典型触发场景MCP PTC连接层访问外部资源、批量工具调用查数据库、读文件、调 APISkills认知层注入领域知识与操作流程生成规范报告、转换文档格式Subagents组织层任务拆分、上下文隔离、权限控制代码审查 测试 文档多角色协作MCP 是 Anthropic 在 2024 年底提出的开放协议你可以把它理解成 AI 世界的 USB-C数据库、业务系统、第三方 API 封装成 MCP Server一次暴露多处复用。PTCProgrammatic Tool Calling则是在 MCP 之上的优化——让模型直接写一段 Python在沙箱里一次性完成多次工具调用、循环和条件判断而不是「推理→调用→塞上下文→再推理」来回打乒乓球。传统模式下响应可能从几秒拖到几分钟PTC 把中间结果留在沙箱里只把最终结果带回上下文延迟和 Token 成本都能明显压下来。但 PTC 不是万能的。它适合确定性强、流程固定的任务比如「查所有订单再生成图表」。一旦中间需要模型做语义判断——比如「分析合同有严重风险就生成免责说明否则给修改建议」——这种 LLM 决策点没法用代码写死还得回到经典 Agent 循环。所以真实系统里MCP PTC 和普通工具调用是并存的。Skills 解决的是另一个痛点Agent 在专业领域往往「不知道怎么做」。它物理上就是一个文件夹核心是SKILL.md加上脚本和模板资源。关键机制叫渐进式披露会话开始时只把name和description注入系统 Prompt 用于技能发现模型识别需要某个 Skill 时才加载完整SKILL.md用到动态资源再按需读取。这样你挂上百个 Skill 也不会把上下文撑爆。Subagents 则是「分而治之」。一个 System Prompt 里同时塞「专业创作者」和「严苛审核员」两种人设必然混乱上下文也会被各种中间日志污染。Subagent 让每个子任务在独立环境运行有自己的 System Prompt、模型选择、工具权限最终只向主 Agent 返回精炼结果。安全审计员只给只读工具测试运行员才允许跑 bash——权限隔离顺带把误操作风险也降了。理解了这三层接下来就是把它们接到一条统一的 Key 通道上跑起来。2. TaoToken 前置准备统一 Key 通道与模型接入三层协同要跑起来第一件麻烦事是 Key 管理。MCP Server 要调模型、Subagent 要调模型、Skill 里如果涉及代码生成也可能要调模型——如果每个环节各配一套 Key 和 Base URL调试时你会分不清是哪个环节的凭证出了问题。TaoToken 在这里的作用就是提供一条统一的 Key/API 通道把模型调用收敛到一个入口。先明确你要准备的三件套这是后面所有配置的基础Base URLhttps://taotoken.net/apiAPI Key在控制台创建形如sk-开头的一串Model ID比如claude-3-5-sonnet-20240620、claude-3-haiku-20240307按任务复杂度选获取 Key 的入口在控制台的 API Keys 页面创建后立刻复制保存页面刷新后不再完整显示。如果你还没决定用哪个模型可以先去模型对话页面实测一下不同 Model ID 的响应差异再回来配到 Agent 里。这里有个容易踩的坑很多人把 Base URL 写成带路径的完整地址比如https://taotoken.net/api/v1/chat/completions然后在 SDK 里又拼了一次/v1结果 404。正确做法是 Base URL 只写到/api具体路径交给 SDK 或客户端处理。环境变量建议这样设避免硬编码进代码export TAOTOKEN_BASE_URLhttps://taotoken.net/api export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_MODELclaude-3-5-sonnet-20240620如果你用的是 Claude Code 这类命令行工具它读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量需要做一层映射export ANTHROPIC_BASE_URL$TAOTOKEN_BASE_URL export ANTHROPIC_API_KEY$TAOTOKEN_API_KEY对于长期跑编码任务或 Agent 编排的场景建议直接上 Coding Plan它按周期计费比按 Token 计费更适合高频调用。而如果你只是临时验证某个模型能不能用模型对话页面更轻量不用配任何本地环境。Key 准备好之后先做一次最小连通性验证别等配完 MCP 和 Subagent 才发现 Key 是错的curl -s $TAOTOKEN_BASE_URL/v1/messages \ -H x-api-key: $TAOTOKEN_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: $TAOTOKEN_MODEL, max_tokens: 64, messages: [{role: user, content: 回复 OK 两个字母}] }返回里能看到content数组且文本是OK说明通道通了。这一步过了再往下走否则后面所有报错你都会怀疑是 MCP 或 Subagent 的问题。3. 可复制配置MCP Server、Subagents 与 Skills 三件套这一节是全文的核心给你三份能直接抄的配置。注意每份配置里 Base URL、Key、Model ID 三件套都要写全缺一个就会在运行时报错。3.1 MCP Server 配置片段MCP 配置通常放在客户端的配置文件里Claude Desktop 是claude_desktop_config.jsonClaude Code 是项目根目录的.mcp.json。下面这份配置挂了一个文件系统 Server 和一个数据库查询 Server{ mcpServers: { filesystem: { command: npx, args: [ -y, modelcontextprotocol/server-filesystem, /Users/yourname/projects ] }, company-db: { command: npx, args: [-y, your-org/mcp-server-db], env: { DB_CONNECTION: postgres://readonlylocalhost:5432/analytics, TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_API_KEY: sk-你的key, TAOTOKEN_MODEL: claude-3-5-sonnet-20240620 } } } }注意company-db这个 Server 的env里带了 TaoToken 三件套——因为有些 MCP Server 内部会调用模型做结果摘要或意图解析如果不显式传 Base URL 和 Key它会去读默认的官方地址导致你在 TaoToken 侧的调用统计里看不到这部分流量排查问题时很被动。如果你用的是 Cline 或 CC Switch 这类支持 MCP 的编辑器插件配置结构类似但字段名可能是mcpServers或mcp.servers以插件文档为准。三件套的写法不变Base URL 写https://taotoken.net/apiKey 写控制台创建的Model ID 按任务选。3.2 Subagents 编排示例Subagent 的定义核心是四个字段description主 Agent 据此判断何时派活、prompt子 Agent 的人设和职责、tools权限白名单、model按任务复杂度选。下面定义两个典型子 Agentsubagents_config { # 子智能体 1安全审计专家 security-auditor: AgentDefinition( descriptionExpert in identifying security vulnerabilities (OWASP Top 10). Use this agent for code review., promptYou are a rigorous security auditor. Focus ONLY on SQL injection, XSS, and auth bypass. Be extremely critical., tools[read_file, grep], # 只读不可修改代码 modelclaude-3-5-sonnet-20240620 ), # 子智能体 2测试运行员 test-runner: AgentDefinition( descriptionExecutes test suites and reports results. Use this agent after code changes., promptYou are a QA engineer. Your job is to run tests, analyze failure logs, and report pass/fail rates., tools[bash, read_file], # 允许运行 bash 命令 modelclaude-3-haiku-20240307 ) }这里的设计要点安全审计员用最强模型 只读工具因为它要做深度语义分析且不能误改代码测试运行员用快速模型 bash 权限因为它干的是执行和日志分析这种确定性任务。模型选择直接对应成本别所有子 Agent 都上最强模型。如果你用 LangChain 的 DeepAgents 框架也有对应的 Subagent 机制字段名可能不同但设计思路一致描述用于路由、prompt 用于人设、工具列表用于权限隔离。3.3 Skills 调用参数Skill 的物理结构是一个目录核心是SKILL.md元数据区写name和description--- name: pdf-report-generator description: 将分析结果转换为规范化的 Markdown 或 PDF 报告适用于需要统一格式输出的场景 --- # PDF 报告生成技能 ## 使用场景 当任务需要把结构化数据或分析结论输出为规范报告时使用本技能。 ## 操作步骤 1. 读取输入数据确认字段完整性 2. 按模板填充标题、摘要、正文、结论四部分 3. 调用 scripts/render.py 生成最终文件 ## 可用脚本 - scripts/render.py接收 JSON 输入输出 Markdown调用时不需要你手动指定 Skill模型会根据description自动匹配。但你要确保 Skill 目录被 MCP 的文件系统 Server 覆盖到否则模型发现不了它。渐进式披露的三层加载——元数据发现、完整 SKILL.md 理解、资源按需读取——都依赖文件可访问。三份配置到位后目录结构大概是这样project/ ├── .mcp.json ├── skills/ │ └── pdf-report-generator/ │ ├── SKILL.md │ └── scripts/render.py └── agents/ └── subagents_config.py4. 验证请求从单工具到三维协同的逐步复现配置写完不代表能跑这一节给你一套逐步验证的动作每一步都有明确的成功标志出错时能快速定位是哪一层的问题。第一步验证 MCP 工具能被发现。启动客户端后在对话里问「你有哪些可用工具」。如果返回里包含filesystem和company-db提供的工具名说明 MCP Server 注册成功。如果工具列表为空先检查.mcp.json的 JSON 语法——多一个逗号就会导致整个文件解析失败而客户端往往只报「no tools available」不会告诉你语法错。第二步验证 PTC 批量调用。给一个明确的多步任务比如「读取 orders.json统计每个城市的订单数生成柱状图」。观察执行日志如果模型是先读文件、把内容塞回上下文、再思考下一步说明走的是传统循环如果它直接生成一段 Python 在沙箱里跑完说明 PTC 生效了。PTC 生效时你会看到沙箱执行记录且上下文里只有最终统计结果没有原始订单明细。第三步验证 Skill 被正确加载。输入「把这份分析结果生成规范报告」。如果模型自动读取了SKILL.md并按里面的模板结构输出说明渐进式披露工作正常。你可以在日志里看到SKILL.md被加载的记录。如果模型自己瞎编格式检查description是否写得太模糊——描述不清晰时模型匹配不到对应 Skill。第四步验证 Subagent 派活与上下文隔离。给一个复合任务「审查 src 目录的代码安全跑一遍测试汇总结果」。预期行为是主 Agent 把安全审查派给security-auditor、测试派给test-runner两个子 Agent 各自在独立上下文里干活主 Agent 只收到两份精炼总结。验证点是主 Agent 的上下文里不应该出现几千行测试日志——如果出现了说明子 Agent 的结果没有做摘要就返回了需要在子 Agent 的 prompt 里明确要求「只返回结论和关键证据」。第五步三维协同完整跑一遍。把上面四步串起来「审查代码安全如果发现问题查数据库确认影响范围生成修复报告」。这条链路会同时用到 Subagent分工、MCP查库、Skill报告格式、PTC批量查询。跑通后你会看到主 Agent 的上下文始终很干净所有重活都在子 Agent 和沙箱里完成。成功结果长这样主 Agent 最终输出一份结构化报告包含安全问题列表、数据库影响范围、修复建议三部分而整个过程的 Token 消耗主要发生在子 Agent 侧主 Agent 只消耗了路由和汇总的部分。5. 本篇常见错排查401、local proxy failed 与 OAuth 报错配置和验证过程中最容易撞上的几类报错这里逐个拆。401 Unauthorized。最常见的原因是 Key 没传对。检查三处环境变量是否在当前 shell 生效echo $TAOTOKEN_API_KEY看有没有值、MCP 配置的env里是否漏了 Key、Key 是否被复制时带了空格。还有一种隐蔽情况Key 是对的但 Base URL 写成了官方地址导致请求发到了没有权限的端点。确认 Base URL 是https://taotoken.net/api不带多余路径。local proxy failed / connection refused。这个报错通常出现在 MCP Server 启动阶段说明客户端连不上 Server 进程。排查顺序先手动在终端跑一遍 Server 的启动命令比如npx -y modelcontextprotocol/server-filesystem /path看能不能起来如果手动能起、客户端起不来多半是路径问题——客户端的工作目录和你终端不一样相对路径会失效全部改成绝对路径。另外检查command字段用的npx是否在客户端的 PATH 里有些 GUI 客户端不继承 shell 的 PATH。reading choices of undefined。这个报错说明响应体结构和代码预期不符。常见原因是 Base URL 路径拼错请求打到了错误端点返回了非预期 JSON或者 Model ID 写错服务端返回错误对象而不是正常的choices数组。先打印完整响应体再解析别直接取字段。确认 Model ID 拼写和 TaoToken 侧支持的模型列表一致。OAuth 相关报错。如果你接的 MCP Server 需要 OAuth 授权比如某些云服务报错通常是 token 过期或回调地址不匹配。这类 Server 的授权流程和模型 Key 是两套东西别混在一起排查。先确认 OAuth 授权是否完成再确认授权后的 token 有没有正确传给 Server。Subagent 不派活。主 Agent 一直自己干、不调用子 Agent通常是description写得不够具体。主 Agent 靠 description 判断「这个任务该不该派出去」描述里要明确写「Use this agent for...」并点出触发场景。另外检查子 Agent 的tools是否覆盖了任务所需——如果子 Agent 没有对应工具主 Agent 派了也干不成可能就干脆不派了。Skill 不生效。模型没加载 Skill先确认 Skill 目录在 MCP 文件系统的覆盖范围内再确认SKILL.md的元数据区格式正确name和description之间的分隔符是三个短横线最后确认description里的关键词和用户输入能对上太抽象的描述匹配不到。排障时有个通用技巧把每一层的日志分开看。MCP 层看 Server 启动日志模型层看请求响应日志Subagent 层看派活记录。混在一起看只会越看越乱。6. 把三层协同接进你的日常开发流跑通验证之后下一步是把它变成日常能用的东西。几个实操建议。第一Subagent 的模型选择要分层。路由和汇总用快速模型深度分析用最强模型执行类任务用快速模型。全都上最强模型成本会失控全都用快速模型安全审计这种需要语义判断的任务质量会掉。第二Skill 要按领域拆细别写一个大而全的。一个 Skill 只解决一类任务description写清楚触发场景。Skill 目录建议纳入版本管理团队共享时直接拉取避免每个人本地各写一份。第三MCP Server 的权限要收紧。数据库 Server 用只读账号文件系统 Server 只挂项目目录而不是整个 home。Subagent 的工具白名单是第二道防线两层叠加才安全。第四PTC 和普通循环的边界要清楚。流程固定、无需语义判断的批量操作走 PTC需要模型理解中间结果再决策的走经典循环。判断标准就一条下一步动作能不能用代码写死。如果你还在选长期方案编码和 Agent 编排这类高频场景用 Coding Plan 更划算只是偶尔验证模型能力模型对话页面就够了。接入文档里有各客户端的详细配置说明遇到本篇没覆盖的报错可以去查。把 MCP 配置、Subagent 定义、Skill 目录这三样准备好你的 Agent 就从「单打独斗」升级成「带团队干活」了。
返回列表