ARTICLE DETAIL

资讯详情

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

收藏这篇就够了!Claude Agent架构终极指南:从MCP到Subagents,一篇讲透!

收藏这篇就够了!Claude Agent架构终极指南:从MCP到Subagents,一篇讲透! 1. 从 MCP 到 Subagents多工具协作 Agent 到底难在哪如果你正在搭一个能同时读写文件、查数据库、调内部 API 的 Agent大概率会遇到这样的场景一开始只接了一个 MCP Server跑得挺顺等到工具数量涨到十几个、任务从查一条订单变成审一份代码库并输出报告整个链路就开始失控——上下文被中间结果塞满、模型开始忘记最初目标、不同角色的指令互相打架。这不是你代码写得不好而是单 Agent 平铺工具调用的架构本身就撑不住复杂任务。Claude Agent 架构给出的答案是把问题拆成三层连接层用 MCP 解决能访问什么认知层用 Skills 解决这类任务该怎么做组织层用 Subagents 解决谁来分工做。这三层不是替代关系而是叠加关系。MCPModel Context Protocol你可以理解成 AI 世界的 USB-C。在它出现之前想让模型访问本地文件、企业数据库或第三方 API每个资源都得写一套胶水代码有了 MCP你把数据库、业务系统封装成一个 MCP Server任何具备 MCP 客户端能力的 Agent 都能直接接入复用。它标准化的是AI 与外部世界的连接方式。但光有连接不够。一次复杂任务里流程很容易变成LLM 推理 → 工具调用 → 结果塞回上下文 → 再推理 → 再调用的乒乓球效应延迟从几秒涨到几分钟Token 成本也跟着飙升。于是有了 PTC程序化工具调用让模型直接写一段 Python在沙箱里一次性完成多次工具调用、循环和条件判断而不是靠对话一步步推。比如查所有订单再生成图表传统方式要把大量订单记录塞进上下文PTC 模式下就是orders await toolA.query_orders()然后chart await toolB.generate_chart(orders)沙箱一次跑完。再往上Skills 是给 Agent 的知识胶囊——一个文件夹里面有SKILL.md加脚本和模板通过渐进式披露按需加载会话开始只注入名称和描述模型判断需要时才加载完整指南用到动态资源再按需读取。Subagents 则是分而治之把复杂任务拆给不同的专家 Agent各自独立上下文、独立 System Prompt、独立工具权限只把精炼结果返回主 Agent。这篇就按这条链路从零把配置骨架、连通性验证、Subagents 调用和常见报错一次跑通。适合已经在写 Agent、但被上下文和工具管理卡住的开发者。2. TaoToken 前置统一 Key 与 API 通道怎么准备在动手写配置之前先把通道这件事解决掉。多工具协作 Agent 最烦的一点是MCP Server 要连模型、Subagent 要连模型、Skills 里跑的脚本可能也要连模型如果每个地方都单独配一套 Key 和 Base URL管理成本会指数级上升。我的做法是用 TaoToken 做统一入口一个 Key、一个 Base URL 覆盖整条链路。TaoToken 在这里扮演的角色是统一的 API 通道你拿到一个 API Key把 Base URL 指向https://taotoken.net/api然后无论是 Claude Code、Cline、还是自己写的 Agent 脚本都复用同一套凭证。这样做的直接好处是——换模型、调额度、排查 401只需要看一个地方不用在五个配置文件里来回找。准备工作分三步。第一步去控制台创建 API Key。打开https://taotoken.net/console登录后在 API Keys 页面新建一个 Key复制出来先存好后面所有配置都用它。注意 Key 只在创建时完整显示一次丢了就重新建。第二步确认你要用的模型 ID。不同工具对模型名的写法略有差异但核心是保持 Base URL Key Model ID 三件套一致。你可以在模型对话页面先手动发一条消息确认通道是通的再去配工具。第三步想清楚你的 Agent 要接哪些 MCP Server。建议一开始只接 2 到 3 个比如文件系统、一个数据库、一个 HTTP 请求工具跑通之后再扩。工具一多调试难度是叠加的别一上来就接十个。这里有个容易踩的坑很多人把 Key 直接硬编码进settings.json然后提交到 Git。正确做法是用环境变量配置文件里引用变量名。下面章节的配置骨架我会同时给出环境变量写法和直接写法你按自己习惯选。注意Base URL 统一用https://taotoken.net/api不要在后面手动加/v1之类的路径具体路径由各工具自己拼接加错了会直接 404。准备好 Key 和模型 ID 之后就可以进入配置环节了。接下来的骨架你可以直接复制把占位符替换成自己的值即可。3. 可复制配置settings.json 与 config.toml 骨架这一节是全文的核心给出两套可直接复制的配置骨架一套是 Claude Code 风格的settings.json一套是 Codex 风格的config.toml。两者都遵循Base URL Key Model ID三件套原则你按自己用的工具选一套。先说settings.json。Claude Code 的配置一般放在用户目录下的.claude/settings.json项目级可以放.claude/settings.json。核心是env段里注入 API 通道信息{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514, ANTHROPIC_SMALL_FAST_MODEL: claude-3-5-haiku-20241022 }, permissions: { allow: [ Read, Write, Bash(git status), Bash(npm test) ] } }这里ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址ANTHROPIC_AUTH_TOKEN填你的 KeyANTHROPIC_MODEL是主模型ANTHROPIC_SMALL_FAST_MODEL用于轻量任务比如 Subagent 里的测试执行员。permissions.allow控制工具权限建议一开始收紧只放开你确定安全的命令。如果你更习惯用环境变量而不是写死在文件里可以改成{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: ${TAOTOKEN_API_KEY}, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }然后在 shell 里export TAOTOKEN_API_KEYsk-xxx。这样配置文件可以安全提交。再说config.tomlCodex 风格的工具一般读~/.codex/config.tomlmodel claude-sonnet-4-20250514 model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY [profiles.default] model claude-sonnet-4-20250514 model_provider taotoken approval_policy on-requestbase_url同样是https://taotoken.net/apienv_key指向你存放 Key 的环境变量名。approval_policy控制命令执行前是否需要确认调试阶段建议设成on-request稳定后再放宽。如果你用的是 Codex 的auth.json方式结构大致是{ OPENAI_API_KEY: sk-你的TaoToken密钥, OPENAI_BASE_URL: https://taotoken.net/api }三件套在这里就是OPENAI_BASE_URLOPENAI_API_KEY 模型 ID。不管哪种写法核心都是把请求导向 TaoToken 的统一通道。配置 MCP Server 时在settings.json里加mcpServers段{ mcpServers: { filesystem: { command: npx, args: [-y, modelcontextprotocol/server-filesystem, /Users/you/project] }, fetch: { command: npx, args: [-y, modelcontextprotocol/server-fetch] } } }每个 MCP Server 就是一个commandargsAgent 启动时会拉起这些进程并通过标准输入输出通信。Subagents 的定义则通常放在单独的配置文件或代码里用AgentDefinition描述description、prompt、tools、model四个字段。配置写完先别急着跑复杂任务下一步做连通性验证。4. 验证请求MCP 连通性与 Subagents 调用怎么测配置写完最忌讳直接上复杂任务。正确顺序是先验证 API 通道通不通再验证 MCP Server 起没起来最后验证 Subagent 能不能被正确调用。三步都过了再跑真实任务。第一步验证 API 通道。最直接的方式是用 curl 打一条最小请求curl https://taotoken.net/api/v1/messages \ -H x-api-key: sk-你的TaoToken密钥 \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: 回复 OK 两个字母}] }如果返回里有正常的content字段说明通道是通的。如果返回 401说明 Key 有问题返回 404多半是 Base URL 拼错了路径。这一步过了再进工具。第二步验证 MCP Server 连通性。在 Claude Code 里可以用/mcp命令查看已连接的 Server 列表和状态。如果某个 Server 显示 failed先单独在终端跑一遍它的启动命令看是不是npx拉包失败或者路径写错。比如文件系统 Server手动执行npx -y modelcontextprotocol/server-filesystem /Users/you/project能正常启动并等待输入说明 Server 本身没问题问题在 Agent 的配置引用上。常见的是args里路径带了空格没转义或者command用了相对路径。第三步验证 Subagent 调用。定义一个最小的测试 Subagent只给它read_file权限让它读一个文件并返回摘要subagents_config { file-summarizer: AgentDefinition( descriptionReads a file and returns a short summary. Use for quick file inspection., promptYou are a file summarizer. Read the given file and return a 3-line summary., tools[read_file], modelclaude-3-5-haiku-20241022 ) }然后在主 Agent 里发一条指令用 file-summarizer 读一下 README.md 并总结。观察日志里是否出现子 Agent 的独立调用记录以及主 Agent 上下文里是否只收到了精炼后的摘要而不是整个文件内容。如果主上下文被文件全文塞满说明 Subagent 的上下文隔离没生效检查是不是把工具直接挂在了主 Agent 上。三步验证都通过后你会看到类似这样的成功结果主 Agent 收到任务 → 分派给 Subagent → Subagent 独立执行并返回摘要 → 主 Agent 整合输出。整个过程主上下文保持干净Token 消耗明显低于单 Agent 平铺调用。实测下来把验证拆成这三步能省掉大量配置看起来对但就是跑不通的排查时间。下一步讲具体报错怎么处理。5. 常见报错排查401、local proxy failed 与 reading choices即使按上面的步骤走还是会遇到几个高频报错。这一节把最常见的四类列出来对照着查。401 Unauthorized。这是最高频的。原因通常有三个Key 复制时带了空格或换行环境变量没生效比如export只在当前 shell 有效换个终端就没了配置文件里引用的变量名和实际export的名字不一致。排查方法先在终端echo $TAOTOKEN_API_KEY确认变量有值再用上面的 curl 命令直接测。如果 curl 通但工具不通问题在工具的配置读取上检查settings.json的env段有没有被正确加载。local proxy failed / connection refused。这个报错一般出现在工具试图连接本地代理时。如果你在settings.json里同时配了HTTP_PROXY之类的环境变量而本地并没有对应的服务在跑就会报这个。解决方法是清掉配置里多余的代理相关变量只保留ANTHROPIC_BASE_URL指向 TaoToken。另外检查 Base URL 有没有被写成http://localhost:xxxx这种本地地址。Error reading choices / unexpected response format。这个报错说明请求发出去了但返回的结构和工具预期的不一致。常见原因是 Base URL 路径拼错比如工具自己会拼/v1/messages你又在 Base URL 里加了/v1结果变成/v1/v1/messages。正确做法是 Base URL 只写到https://taotoken.net/api后面的路径交给工具。另一个原因是模型 ID 写错工具拿不到有效响应。OAuth / authentication flow 相关报错。有些工具默认走 OAuth 登录流程而不是 API Key。如果你看到它试图打开浏览器做授权说明它没读到你的 Key 配置。检查是不是把 Key 配在了错误的位置——比如 Claude Code 读ANTHROPIC_AUTH_TOKEN你配成了ANTHROPIC_API_KEY字段名不对就不会生效。MCP Server 启动超时。如果 Agent 启动时卡在connecting to MCP server多半是npx首次拉包太慢或者 Server 进程启动后没有正确握手。先在终端手动跑一遍启动命令确认能起来如果手动能起但 Agent 里不行检查args数组的写法路径和参数要分开写不要拼成一个字符串。排查时有个通用思路从外往里查。先用 curl 确认 API 通道再手动跑 MCP Server 确认进程最后看 Agent 日志确认调用链。哪一层断了就修哪一层不要一上来就改 Agent 代码。提示把每次报错的完整信息包括状态码和返回体记下来很多问题看返回体里的error.message就能定位比猜快得多。6. 把三层串起来从配置到协同的落地路径配置和排障都跑通之后最后一步是把 MCP、Skills、Subagents 三层真正串成一个协同系统。我用一个具体场景说明主 Agent 接到给这个项目生成完整报告 做代码审查 更新文档 汇总结果。主 Agent 先把代码审查子任务交给 Review Subagent。这个 Subagent 有独立的上下文和专属工具比如read_file、grep去分析代码库不污染主上下文还能并行处理多个文件。子任务里如果需要把分析结果格式化成 Markdown 报告Subagent 内部调用一个 Skill 来完成——这个 Skill 的SKILL.md里写清楚了报告模板和生成步骤模型按指南执行而不是自己猜格式。如果子任务还需要访问公司数据库或 API 拿提交历史Subagent 通过 MCP 工具或 PTC 来获取数据。子代理处理完把最终结果以简洁摘要返回主 Agent。主 Agent 收集多个 Subagent 的结果整合成最终输出。整个过程里分工Subagent、领域技能Skill、工具MCP PTC三层各司其职Subagent 保证上下文隔离和角色专业化Skill 保证领域知识可复用MCP 保证外部资源可访问。落地时的建议顺序是先把 MCP 通道和 API 通道跑通确保基础连接没问题再写第一个 Skill从最简单的文档转换或模板生成开始验证渐进式披露机制最后引入 Subagent从两个角色开始比如一个审查、一个执行观察上下文隔离效果。不要一上来就搭三层完整架构那样出问题很难定位是哪一层。如果你想让这套架构长期跑在编码和 Agent 任务上可以考虑用 Coding Plan 把额度固定下来避免临时 Key 额度不够打断长任务。配置入口和文档都在下面按需取用。模型对话验证通道https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chat接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdocAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keysCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_planClaude Code 接入https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude_code最后留一个实用技巧把settings.json和config.toml都纳入版本管理但 Key 用环境变量注入。这样换机器、换团队时配置骨架直接复用只需要重新export一次 Key。Subagent 的AgentDefinition建议单独放一个文件按角色分组方便后续增删。跑通一次完整链路后把这套骨架存成模板下一个 Agent 项目直接改路径和工具列表就能起步。
返回列表