1. 为什么我要折腾 Claude Code 的 Agent TeamsClaude Code 的 Agent Teams 模式简单说就是让一个主会话Lead拉起多个独立 Claude 实例Teammates并行干活各自有独立上下文窗口还能通过共享任务列表和邮箱系统互相通信。它适合谁适合那些任务能拆开、彼此依赖不深的场景比如并行代码审查、前后端协同开发、多维度问题排查。不适合谁不适合顺序任务、同一文件反复编辑、依赖链特别长的活儿。我一开始以为开个开关就能用结果发现 Agent Teams 默认是关闭的得手动改settings.json里的实验性环境变量而且团队定义文件的骨架写法官方文档给得很散。更麻烦的是多实例并行意味着每个 Teammate 都要独立调用模型如果每个实例各自配一套 Key管理起来会非常乱。所以这篇我会把两件事绑在一起讲一是CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS怎么开、settings.json和团队定义文件怎么写二是怎么用 TaoToken 的统一 Key 和 API 通道让所有 Teammate 走同一个入口省得每个实例单独配。下面所有配置和命令都是我实际跑过一遍的你可以直接复制改路径用。2. 前置准备TaoToken 统一 Key 与 API 通道在动 Agent Teams 之前先把模型调用通道理顺。Claude Code 本身支持通过环境变量指定 API 地址和 KeyAgent Teams 里的每个 Teammate 本质也是 Claude 实例所以只要主会话的环境变量配好子实例会继承同一套通道。这就是用 TaoToken 统一 Key 的价值一个 Key 覆盖 Lead 和所有 Teammates不用为每个角色单独申请。你需要先拿到一个 API Key。登录 TaoToken 控制台在 API Keys 页面创建一个复制出来形如sk-xxxx的字符串。注意这个 Key 只在创建时完整显示一次丢了就重新建一个。拿到 Key 之后先确认你的 API 通道地址。TaoToken 的 API 入口是https://taotoken.net/api这个地址不加任何查询参数直接作为 base URL 用。如果你还没注册可以从官网入口进https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台里找 API Keys 就行。注意Key 不要写进会提交到 Git 的文件里。下面演示我会用环境变量方式注入团队定义文件里只引用变量名不写明文。配置环境变量有两种方式临时用和持久用。临时用就在当前终端 exportexport ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的Key持久用就写进 shell 配置文件比如~/.zshrc或~/.bashrc加完source一下。这样 Claude Code 启动时自动读取Agent Teams 拉起的子实例也继承同一套。如果你更习惯用 Claude Code 自己的配置文件管理也可以把这两个变量写进~/.claude/settings.json的env字段和后面要加的 Agent Teams 开关放一起。这样一份文件同时管通道和功能开关比较清爽。3. 可复制配置settings.json 与团队定义文件3.1 开启 Agent Teams 的 settings.json 骨架Agent Teams 默认关闭必须手动开。编辑~/.claude/settings.json如果文件不存在就新建。完整骨架如下{ env: { CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: 1, ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的Key } }三个字段的作用分别是第一个是实验性开关值必须是字符串1写数字1或布尔true都可能不生效后两个是统一通道让 Lead 和所有 Teammates 都走 TaoToken。如果你已经在 shell 里 export 了后两个变量这里可以只留开关避免重复。保存后必须重启 Claude Code 才生效。重启命令claude code start重启后在会话里执行/config能看到Agent Teammate mode这一项就说明开关生效了。如果没看到八成是 JSON 格式错了比如多了逗号、少了引号用python -m json.tool ~/.claude/settings.json校验一下。3.2 团队定义文件样例团队定义文件放在项目的.claude/agent-teams/目录下一个 JSON 描述一支团队。下面这份是我用来做代码审查的三人团队你可以直接复制{ name: 代码审查团队, lead: 审查负责人, teammates: [ { name: 安全专家, role: security, prompt: 专注审查代码中的安全漏洞包括注入、越权、敏感信息泄露等输出问题清单和修复建议 }, { name: 性能专家, role: performance, prompt: 专注检查性能瓶颈包括慢查询、内存泄漏、循环内重复计算给出可量化的优化点 }, { name: 测试专家, role: testing, prompt: 专注分析测试覆盖率缺口找出未覆盖的分支和边界条件列出建议补充的用例 } ], tasks: [ { name: 安全审查, assignee: 安全专家, description: 审查当前代码库的安全漏洞按严重程度排序 }, { name: 性能审查, assignee: 性能专家, description: 分析数据库查询和热点函数找出慢查询 }, { name: 测试分析, assignee: 测试专家, description: 统计覆盖率并列出缺口 } ] }几个字段的坑我踩过teammates里的name是后续assign和message引用的标识别用中文标点tasks里的assignee必须和某个 teammate 的name完全一致差一个字就分配不上prompt要写清楚输出格式否则 Lead 汇总时格式五花八门。加载并启动/team load --file .claude/agent-teams/code-review-team.json /team start3.3 自然语言创建与命令行创建不想写文件也行直接自然语言描述Claude 会自动建团队请创建一个3人团队审查当前代码库 - 安全专家检查所有 API 端点的身份验证和授权 - 性能专家分析数据库查询效率找出慢查询 - 架构专家评估代码结构和可维护性 所有队友完成后由 Lead 汇总成一份完整报告。需要精确控制时用命令行/team create --lead 代码审查负责人 /team add --name 安全专家 --role security /team add --name 性能专家 --role performance /team assign --name 安全专家 --task 审查代码安全漏洞 /team start /team status三种方式里团队定义文件最适合复用自然语言最适合临时任务命令行适合调试。4. 验证请求与成功结果配置写完得验证两件事通道通不通团队跑没跑起来。先验证通道。在 Claude Code 会话里随便问一句比如让它解释一段代码如果正常返回说明ANTHROPIC_BASE_URL和 Key 生效了。如果报 401检查 Key 是否复制完整如果报连接错误检查 base URL 是不是写成了带路径的形式正确写法就是https://taotoken.net/api不要在后面加/v1之类。再验证团队。加载团队定义后执行/team status正常输出会列出每个 teammate 的名字、角色和当前状态。启动后你会看到多个实例并行输出如果装了 tmux可以分屏看每个队友的实时日志brew install tmux # macOS sudo apt install tmux # Linux不装 tmux 也能用默认走进程内模式输出会混在主会话里。一个成功的标志是/team status里所有任务从 pending 变成 in_progress 再变成 done最后 Lead 输出一份汇总。我实测三人审查团队跑一个中等规模仓库大概几分钟内能出结果具体取决于仓库大小和任务复杂度。5. 本篇常见错排查开关不生效/config里看不到 Agent Teammate mode。先校验 JSON 格式再确认值是字符串1最后确认重启了 Claude Code。三者缺一不可。队友不工作/team status里任务一直是 pending。多半是任务描述太模糊队友不知道从哪下手。把文件路径、函数名、期望输出格式都写进description越具体越好。分配不上任务assignee和 teammate 的name不一致。中文名容易多空格建议复制粘贴而不是手打。通信失败队友之间要协调时用/team message格式是--from、--to、--content三个参数。如果消息发不出去检查 from 和 to 的名字是否都在团队里。成本失控每个 teammate 都是独立实例token 消耗成倍增加。团队规模建议控制在 3 到 5 人超过 5 人协调成本会明显上升。只在真正需要并行的任务上用顺序任务别开团队。通道报错如果某个 teammate 报鉴权失败检查它是否继承了主会话的环境变量。用settings.json的env字段配置比 shell export 更稳因为子进程一定会读到。6. 下一步把通道和团队都固定下来跑通一次之后建议把两样东西固化一是settings.json里的统一通道配置让所有项目共用一套 Key 和 API 地址二是把常用的团队定义文件提交到项目仓库的.claude/agent-teams/下团队成员拉下来就能用。如果你还没建 Key去控制台创建一个https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入细节和参数说明看文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。想先单独验证模型通道是否通可以用模型对话页面发一条测试https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你打算长期用 Agent Teams 做编码和 Agent 任务Coding Plan 的额度模型更适合多实例并行https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后留一个我常用的调试习惯新写一个团队定义文件后先只加一个 teammate 跑通确认通道和任务分配都没问题再逐步加到三人。这样出问题时能快速定位是配置错还是任务描述错比一上来就拉满团队省时间。
阅读完成 · 觉得有帮助?