1. 多 Agent 协同到底解决了什么问题
Claude Code 的多 Agent 协同,简单说就是让一个主进程把复杂任务拆成若干子任务,再分发给多个子 Agent 并行执行,最后汇总结果。它适合谁?适合那些单次对话已经装不下上下文、或者任务本身可以拆成研究、实现、验证三条独立链路的中大型工程。我试过在一个 30 万行的 TypeScript 仓库里让它同时做接口梳理、依赖分析和测试补齐,单 Agent 模式下模型会反复丢上下文,多 Agent 模式下每个子任务只关心自己那一块,反而更稳。
从源码结构看,Claude Code 暴露了 1900 多个文件,去掉 git 相关后完整工程文件约 1884 个,50 多万行代码。多 Agent 协同并不是一个单一模块,而是散落在 coordinator、AgentTool、TeamCreateTool、swarm backends 等多个目录里。理解它的关键,是先分清三种触发方式:手动开启的 Coordinator 模式、模型自主触发的 Fork 模式、以及最复杂的 Teammate 团队模式。这三种模式在任务分发、上下文隔离、子 Agent 调度链路上完全不同,但它们在请求出口上有一个共同点——都需要一个稳定的统一通道来承载鉴权与模型调用,这正是 TaoToken 在多 Agent 场景里要解决的问题。
多 Agent 场景下最容易被忽略的是鉴权放大效应。单 Agent 一次会话可能只发几十个请求,但 Coordinator 模式下主 Agent 加多个 worker 并行,请求数会成倍上升;Teammate 模式下每个成员是独立进程,各自持有自己的 API client。如果每个 Agent 都单独配置一套 Key,管理成本会迅速失控。所以本文在拆解架构的同时,会把 TaoToken 统一 Key/API 通道的配置方式一并给出,让你在自己的工程里能复现并观察调度行为。
2. TaoToken 统一通道在多 Agent 下的前置准备
在讲配置之前,先把多 Agent 的请求走向说清楚。Coordinator 模式下,主 Agent 只有 4 个工具可用:启动 Worker、停止 Worker、继续 Worker、输出。它不能直接读文件、执行 Bash、修改代码,所有实际工作都通过 worker 完成。worker 之间互不通信,各自埋头干活,干完通过<task-notification>返回给 Coordinator。这意味着每个 worker 都是一个独立的模型调用方,都需要自己的鉴权凭证。
Fork 模式下,子 Agent 继承主 Agent 的完整上下文,包括 Prompt Cache。源码里的buildForkedMessages()会把 history、allToolUses、placeholderResults 都带上,只有 directive 不同。这种缓存共享机制对通道的要求是:同一个 Key 下的请求要能命中缓存,否则每个 fork 都重新计费,成本会很难看。
Teammate 模式最复杂,它有三种后端运行方式:Tmux 模式下每个 Teammate 是独立的 Claude Code 进程跑在自己的 tmux pane 里;iTerm2 模式用原生分屏;In-Process 模式所有 Teammate 在同一个 Node.js 进程里,用 AsyncLocalStorage 做隔离,和 Leader 共享 API client、MCP connections。In-Process 模式下共享 API client 这一点很关键——它天然适合统一通道,因为所有请求都从同一个 client 出去。
TaoToken 在这里的角色,就是提供一个统一的 Base URL 和 Key,让上面这些模式无论怎么分发子 Agent,请求出口都是一致的。你不需要为每个 worker 单独申请凭证,也不需要担心 Teammate 进程各自为政导致鉴权混乱。前置准备只有三件事:拿到 Key、确认 Base URL、选好 Model ID。这三件套在后面的配置片段里会反复出现。
需要提醒的是,多 Agent 场景下请求并发度高,建议在 TaoToken 控制台里先确认好额度与并发限制,避免 Coordinator 一次性拉起多个 worker 时出现限流。控制台地址是 https://taotoken.net/console ,API Keys 管理在 https://taotoken.net/api-keys 。这两个页面建议提前打开,后面配置要用到。
3. 可复制的 settings 配置片段与三件套
Claude Code 的配置入口是 settings 文件,多 Agent 场景下最关键的是把 Base URL、Key、Model ID 三件套写对。下面给出一个可直接复制的 settings.json 片段,路径按 Claude Code 默认约定放在用户配置目录下。注意 JSON 里不要写注释,我这里用引用块单独说明每个字段。
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514", "CLAUDE_CODE_COORDINATOR_MODE": "1" }, "permissions": { "allow": [ "Read", "Grep", "Glob", "Bash(git:*)" ] } }注意:
ANTHROPIC_BASE_URL填https://taotoken.net/api,不要带末尾斜杠,也不要加 UTM 参数,否则部分客户端会拼接出错误路径。ANTHROPIC_API_KEY用你在 API Keys 页面生成的密钥。ANTHROPIC_MODEL按你实际可用的模型 ID 填写。
如果你用的是 Codex 风格的auth.json,三件套的写法是这样的:
{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken密钥", "model": "claude-sonnet-4-20250514" }注意:
auth.json里的字段名是下划线风格,和 settings.json 的ANTHROPIC_前缀不同,别混用。改完文件后重启 Claude Code 让配置生效。
对于 Cline MCP 场景,配置通常写在 MCP server 的启动参数里,三件套同样要齐全:
{ "mcpServers": { "claude-code": { "command": "npx", "args": ["-y", "claude-code-mcp"], "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" } } } }注意:MCP 场景下环境变量是传给子进程的,确保
env块完整,缺一个都会导致 401 或模型找不到。
如果你用 CC Switch 管理多套配置,切换时重点核对 Base URL 和 Key 是否成对出现。我见过最常见的错误是切了 Key 没切 Base URL,结果请求打到旧通道上,报 401 却查不出原因。三件套要么一起换,要么一起不换。
配置写完后,Coordinator 模式的环境变量CLAUDE_CODE_COORDINATOR_MODE=1会让整个会话进入多 Agent 调度状态。源码里对应的判断逻辑在src/coordinator/coordinatorMode.ts,isCoordinatorMode()会先检查 feature flag,再读环境变量。这是会话级别的配置,一旦开启,整个会话都走 Coordinator 模式,所以建议单独开一个终端窗口做多 Agent 实验,不要和日常会话混用。
4. 一次多 Agent 协同任务的验证请求与成功结果
配置就绪后,来跑一次可观察的验证任务。目标是让 Coordinator 拆出两个独立 worker,一个做研究、一个做实现,最后汇总。先确认环境变量生效:
echo $ANTHROPIC_BASE_URL echo $CLAUDE_CODE_COORDINATOR_MODE预期输出应该是https://taotoken.net/api和1。如果第一个为空,说明 settings 没被加载,检查文件路径和 JSON 语法。
接着在项目根目录启动 Claude Code,输入一个明确需要拆解的任务,比如:
请分析 src/utils 目录下的工具函数,找出所有涉及日期格式化的函数, 并为其中没有单元测试的函数补充测试用例。Coordinator 模式下,主 Agent 不会直接读文件,而是先拆任务。你会看到它调用 Agent 工具启动 worker,worker 的subagent_type是worker。研究型 worker 会去 grep 和 read,实现型 worker 会去 write 和 edit。每个 worker 干完后通过<task-notification>返回,Coordinator 汇总后输出最终结果。
验证请求是否真的走了 TaoToken 通道,可以观察请求日志。成功结果通常表现为:worker 并行启动、各自返回结构化报告、Coordinator 汇总时引用了 worker 的发现。如果一切正常,你会在输出里看到类似Scope:开头的 worker 报告,这是 Fork 模式硬编码约束里要求的格式。
再验证一次 Fork 模式。Fork 是模型自主触发的,不需要手动开 Coordinator。给它一个开放式研究问题,比如「这个仓库的构建流程是怎样的,涉及哪些配置文件」。如果模型判断中间过程不需要保留在上下文里,就会 fork 出子 Agent 并行研究。Fork 的子 Agent 继承主 Agent 上下文,共享 Prompt Cache,所以你会感觉响应更快、成本更低。
Teammate 模式的验证稍微复杂,需要显式要求创建团队。输入「用团队方式完成这个重构任务」,Leader 会调用 TeamCreate 创建团队和任务列表,再用 Agent 工具拉起 Teammate。Teammate 之间通过 SendMessage 通信,任务通过 TaskUpdate 认领。观察点是:Teammate 完成后会主动 TaskList 找新任务,或者等待 Leader 分配。这种网状协作最难调试,但也是最能体现多 Agent 价值的模式。
5. 本篇常见错误排查
多 Agent 场景下的报错,很多不是模型问题,而是通道配置问题。下面按真实报错逐条排查。
401 Unauthorized:最常见。先查ANTHROPIC_API_KEY是否填对,再查 Base URL 是否是https://taotoken.net/api。多 Agent 场景下还要注意,Coordinator 拉起的 worker 是否继承了主进程的环境变量。如果 worker 是独立进程(Tmux/iTerm2 模式),环境变量需要在启动前 export,而不是只在当前 shell 设置。
local proxy failed:这个报错通常出现在客户端尝试走本地代理但代理未启动时。检查你的 settings 里有没有残留的 proxy 配置,多 Agent 场景下每个 worker 都可能读同一份配置,一处写错全部受影响。把 proxy 相关字段清掉,直接用 TaoToken 的 Base URL。
reading 'choices' of undefined:这是响应体解析失败,多半是 Base URL 拼错导致返回了非预期内容。确认 URL 是https://taotoken.net/api,没有多余路径。如果用了 MCP,检查env块里的 Base URL 是否被其他配置覆盖。
OAuth 相关报错:如果你之前用 OAuth 方式登录过,配置里可能残留 OAuth token 字段,和 API Key 冲突。把 OAuth 相关字段删掉,统一用 API Key 鉴权。多 Agent 场景下 OAuth 刷新逻辑在并发时容易出问题,用 Key 更稳。
模型找不到 / model not found:检查ANTHROPIC_MODEL是否是你账号下可用的模型 ID。三件套里 Model ID 最容易写错,建议直接从模型对话页面复制可用模型名。模型对话入口在 https://taotoken.net/chat 。
worker 启动后无响应:Coordinator 模式下 worker 是异步的,如果长时间没返回,先看是不是任务描述不够自包含。源码里明确要求 worker prompt 必须完整,因为 worker 看不到 Coordinator 的对话历史。给 worker 的信息缺斤少两,它就会卡住或返回无关结果。
Teammate 之间消息发不出去:Teammate 模式必须用 SendMessage 工具,直接写文本回复对团队不可见。检查你的 prompt 里有没有提醒模型使用 SendMessage。另外广播用to: "*",点对点用to: "<name>",写错接收人消息就丢了。
排查时建议按「先通道、后模型、再调度」的顺序。通道问题占八成,模型 ID 问题占一成,剩下才是多 Agent 调度本身的坑。接入文档在 https://taotoken.net/doc ,遇到配置疑问可以先对照文档核对字段名。
6. 把统一通道接进你的多 Agent 工程
多 Agent 协同的架构拆解到这里,三种模式的调度链路已经比较清楚了。Coordinator 是总分级、Fork 是并行级、Teammate 是网状级,它们在任务分发和上下文隔离上各有取舍,但都依赖一个稳定的请求出口。TaoToken 统一通道的价值,就是让这个出口在多 Agent 并发时依然可控——一套 Key、一个 Base URL、一个 Model ID,无论 Coordinator 拉起多少 worker,还是 Teammate 开多少进程,鉴权都收敛到同一处。
如果你打算长期跑编码类多 Agent 任务,建议用 Coding Plan 来承载高频请求,入口在 https://taotoken.net/coding-plan 。它的额度模型更适合 Coordinator 和 Teammate 这种请求数波动大的场景。日常验证模型行为,用模型对话页面就够了。配置和 Key 管理分别走接入文档和 API Keys 两个入口,把三件套写对,多 Agent 的调度行为就能在你自己的工程里稳定复现。
最后留一个实用技巧:调试多 Agent 时,先把 Coordinator 模式单独跑通,确认 worker 能正常启动和返回,再上 Teammate。Teammate 的自由度太高,一旦出问题,排查成本是 Coordinator 的好几倍。循序渐进,比一上来就开团队要省心得多。