Claude Code 从零到精通:第九章:Agent Teams — 多Agent协作开发
第九章:Agent Teams — 多Agent协作开发
这是 Claude Code 最强大也最前沿的功能。根据实战经验,Agent Teams 可以像真实开发团队一样协作。
9.1 Agent Teams 架构
Plaintext
┌──────────────────────────────────────────────────────────┐
│ Agent Teams 协作架构 │
├──────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────┐ │
│ │ 主 Agent │ │
│ │ (Team Lead) │ │
│ │ 只统筹不干活 │ ← 核心原则! │
│ └───────┬───────┘ │
│ │ │
│ ┌─────────────┼─────────────┐ │
│ │ │ │ │
│ ┌──────┴──────┐ ┌───┴────┐ ┌──────┴──────┐ │
│ │ 产品经理 │ │ 架构师 │ │ 测试工程师 │ │
│ │ Agent │ │ Agent │ │ Agent │ │
│ │ - 需求定义 │ │- 审查 │ │ - 写测试 │ │
│ │ - 功能验收 │ │ 代码 │ │ - 运行测试 │ │
│ │ │ │- 审查 │ │ - 报告结果 │ │
│ │ │ │ git │ │ │ │
│ └─────────────┘ └────────┘ └─────────────┘ │
│ │ │ │ │
│ ┌──────┴──────┐ ┌───┴────┐ ┌──────┴──────┐ │
│ │ 前端工程师 │ │ 后端 │ │ AI 助手 │ │
│ │ Agent │ │ Agent │ │ Agent │ │
│ │ - 页面开发 │ │- API │ │ - 提示词 │ │
│ │ - 组件开发 │ │- 数据库 │ │ - 工具链 │ │
│ │ - 样式调整 │ │- 逻辑 │ │ - 编排 │ │
│ └─────────────┘ └────────┘ └─────────────┘ │
│ │
│ 所有 Agent 可以互相发消息、纠错、协调 │
│ │
└──────────────────────────────────────────────────────────┘
9.2 启用和启动 Agent Teams
⚠️ Agent Teams 目前是实验性功能,需要手动启用:
Bash
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
或在 .claude/settings.json 中设置。
推荐团队大小:3-5 个 teammates,每个分配 5-6 个任务。
显示模式:支持 in-process(默认)和 split-pane(tmux/iTerm2 分屏)两种。
启动:claude --teammate-mode tmux
方式一:自然语言启动
Plaintext
使用 Agent Teams 帮我开发一个笔记应用。
需要以下角色:
1\. 产品经理 - 负责需求定义和功能验收
2\. 架构师 - 负责审查代码质量和规范
3\. 前端工程师 - 负责页面开发
4\. 后端工程师 - 负责 API 开发
5\. 测试工程师 - 负责编写和运行测试
方式二:通过 superpowers 工作流启动
Plaintext
使用 superpowers 和 agent teams 帮我开发一个笔记应用
9.3 Agent 角色设计指南
主 Agent(Team Lead)的关键约束
⚠️ 最重要的原则:主 Agent 绝对不能干重活!
Markdown
\# 在 CLAUDE.md 中约束主 Agent
\## 主 Agent 行为约束
\- 你是团队领导,只负责:
1\. 理解用户需求并分发给团队成员
2\. 监控各 Agent 的工作进度
3\. 协调 Agent 之间的沟通
4\. 向用户汇报进度
\- 你绝对不要:
1\. 自己写代码(看到 bug 也不要自己改!)
2\. 自己读大量代码文件
3\. 自己做探索性工作
\- 原因:你的上下文大约 200K tokens,约 1.5 万行代码,
一旦被代码占满就会触发压缩,导致丢失关键约束信息。
实战趣事:有开发者约束主 Agent 不干活,但主 Agent 看到 bug 还是忍不住自己改了,然后说"这个 bug 比较小,顺手就改了,下次不会了" 😄
架构师 Agent
Plaintext
\- 只做两件事:
1\. 审查每个人的 git 提交记录
2\. 检查代码是否符合 CLAUDE.md 中的规范
\- 发现 DSL 或接口变更时,必须全局广播通知
测试 Agent
Plaintext
\- 不要去读源代码(避免上下文膨胀)
\- 只通过接口文档和测试用例进行测试
\- 测试有反馈有输入有输出(这很关键!)
\- 发现 bug 后报告给主 Agent
9.4 Agent 间通信机制
Plaintext
┌────────────────────────────────────────────────────┐
│ Agent 通信示例 │
├────────────────────────────────────────────────────┤
│ │
│ 后端 Agent → 前端 Agent: │
│ "API 对齐确认:POST /api/experiments │
│ 请求体: { name, dslConfig, metadata } │
│ 响应: { id, status, createdAt } │
│ SSE 流格式: event: progress, data: {...}" │
│ │
│ 架构师 Agent → 全体广播: │
│ "DSL 规范已更新:pin 字段改名为 puzzle, │
│ 所有使用 DSL 的模块需要同步修改" │
│ │
│ 前端 Agent → 主 Agent: │
│ "test3 的指令方向与引擎实际情况冲突, │
│ 需要确认后再执行。等待确认的同时, │
│ 我先从 test4 开始做。" │
│ │
│ 主 Agent → 前端 Agent: │
│ "之前方向确实反了,任务描述已更新, │
│ 请按新方向继续。" │
│ │
└────────────────────────────────────────────────────┘
9.5 Agent Teams 的已知限制与应对
| | | |
| --- | --- | --- |
| 限制 | 说明 | 应对方案 |
| 消息不实时 | Agent 干完活才看消息 | 在 CLAUDE.md 中约束检查频率 |
| 默认自动关闭 | 每轮对话后会关闭成员 | 全局 CLAUDE.md 写明"不要自动关闭" |
| 并发写入冲突 | 多个 Agent 同时编辑同一文件 | 模块分工要清晰,减少文件交叉 |
| 无打断机制 | Agent 长时间工作时无法中途通知 | 可通过 Hooks 或自研插件解决 |
| 闷头干活 | Agent 不主动同步进度 | 在规范中约束定期汇报 |
9.6 多人协作时的代码管理
Plaintext
┌──────────────────────────────────────────────┐
│ 多人 + 多Agent 协作模式 │
├──────────────────────────────────────────────┤
│ │
│ 开发者A 开发者B 开发者C │
│ (AI助手模块) (编辑器) (DSL引擎) │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ CC + │ │ CC + │ │ CC + │ │
│ │多Agent│ │多Agent│ │多Agent│ │
│ └──┬───┘ └──┬───┘ └──┬───┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ feature/ai-agent feature/editor feature/ │
│ (独立分支) (独立分支) dsl-engine │
│ │ │ │ │
│ └───────────────────┼──────────┘ │
│ │ │
│ 主分支合并 │
│ (解决冲突) │
│ │ │
│ 全量回归测试 │
│ │
│ 原则: │
│ - 模块划分清楚,每人负责独立模块 │
│ - 大功能用不同分支,合并时处理冲突 │
│ - 个人并行任务可用 git worktree │
│ │
└──────────────────────────────────────────────┘
9.7 Cowork 速览:不用终端的 AI Agent
Cowork 是 Anthropic 于 2026 年 1 月推出的桌面智能代理工具,内置于 Claude Desktop,以独立标签页的形式存在。核心定位:让不写代码的人也能使用 Agent 能力。
Cowork 能做什么?
| | |
| --- | --- |
| 能力 | 说明 |
| 文件操作 | 读取、编辑、创建本地文档(Word、PDF、表格、PPT 等) |
| 多步骤自动化 | 分解复杂任务为子任务,并行执行,实时展示进度 |
| 跨应用联动 | Excel 数据自动流入 PPT 摘要,输入变化时自动更新 |
| 浏览器操作 | 通过 Chrome 扩展做网页研究、表单填写、数据抓取 |
| 外部工具连接 | 通过 MCP 连接 Slack、Notion、Figma、Google Workspace 等 |
Cowork vs Claude Code
Plaintext
┌──────────────────────────────────────────────────┐
│ Cowork 与 Claude Code 对比 │
├─────────────────────┬────────────────────────────┤
│ Cowork │ Claude Code │
├─────────────────────┼────────────────────────────┤
│ 面向知识工作者 │ 面向开发者 │
│ GUI 图形界面 │ Terminal 终端命令行 │
│ ❌ 不能执行代码 │ ✅ 可执行代码、跑测试 │
│ 操作文档和应用 │ 操作代码和项目 │
│ 沙盒 VM 隔离运行 │ 直接在本地终端运行 │
│ 任务前需确认计划 │ 可在会话内自主运行 │
│ 连接办公类工具 │ 连接开发类工具 │
├─────────────────────┴────────────────────────────┤
│ │
│ 一句话:Claude Code 改变了程序员的工作方式, │
│ Cowork 要改变其余所有人的工作方式。 │
│ │
└──────────────────────────────────────────────────┘
使用方式
打开 Claude Desktop → 切换到 Cowork 标签页
授权文件夹:指定允许 Claude 访问的本地文件夹
安装插件:根据岗位选择对应插件(产品管理、财务、法务、市场等 11 类官方插件)
描述任务:用自然语言说清想要的结果
Claude 展示执行计划,确认后自动执行,实时显示进度
⚠️ 需要 Claude Pro($20/月)或以上订阅。Cowork 目前仍处于 Research Preview 阶段。
什么时候用 Cowork?
| | |
| --- | --- |
| 场景 | 选择 |
| 写代码、跑测试、调试 | Claude Code |
| 分析报表、整理文档、做 PPT | Cowork |
| 调研竞品、抓取网页数据 | Cowork |
| 部署项目、CI/CD | Claude Code |
| 管理 Slack/Notion/Figma | Cowork |
9.8 一张图看清四者的关系与边界
Skills、Subagents、Plugins、Agent Teams 这四个概念容易混淆,下面用一张图理清它们的关系:
Plaintext
┌────────────────────────────────────────────────────────────────────┐
│ Skills · Subagents · Plugins · Agent Teams 全景关系图 │
├────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─ Agent Teams ──────────────────────────────────────────────┐ │
│ │ │ │
│ │ Team Leader(主 Agent) │ │
│ │ ┌────────────────────────────────────┐ │ │
│ │ │ 可加载 Skills 可调用 Subagents │ │ │
│ │ │ 可使用 Plugins 可安装 MCP │ │ │
│ │ └────────────────────────────────────┘ │ │
│ │ │ 分发任务 │ 分发任务 │ │
│ │ ▼ ▼ │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Teammate │ │ Teammate │ ← 每个都是独立 Agent │ │
│ │ │ 前端工程师│ │ 后端工程师│ 有自己的上下文 │ │
│ │ │ (可加载 │ │ (可加载 │ 可加载 Skills │ │
│ │ │ Skills) │ │ Skills) │ 可调用 Subagents │ │
│ │ └──────────┘ └──────────┘ │ │
│ │ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
├────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─ Skill ─────────┐ ┌─ Subagent ────┐ ┌─ Plugin ──────────┐ │
│ │ │ │ │ │ │ │
│ │ 一张"任务卡片" │ │ 独立上下文的 │ │ Skills 的打包集合 │ │
│ │ │ │ 专业 Agent │ │ │ │
│ │ 注入到当前Agent │ │ │ │ 方便团队分发复用 │ │
│ │ 的上下文中执行 │ │ 执行完只返回 │ │ │ │
│ │ │ │ 总结给调用者 │ │ 一个 Plugin 可包含 │ │
│ │ 共享调用者的 │ │ │ │ 多个 Skills │ │
│ │ 上下文(会占用) │ │ 不污染调用者 │ │ │ │
│ │ │ │ 的上下文 │ │ 支持 marketplace │ │
│ └──────────────────┘ └───────────────┘ └────────────────────┘ │
│ │
├────────────────────────────────────────────────────────────────────┤
│ │
│ 快速选型判断: │
│ │
│ "我需要一套固定工作流" → Skill │
│ "我需要调研但不想污染上下文" → Subagent │
│ "我要把多个 Skill 分享给团队" → Plugin │
│ "我要多人并行干大活" → Agent Teams │
│ "任务简单,不涉及代码" → Cowork │
│ │
└────────────────────────────────────────────────────────────────────┘
| | | | | |
| --- | --- | --- | --- | --- |
| 维度 | Skill | Subagent | Plugin | Agent Teams |
| 本质 | 任务卡片/工作流 | 独立上下文的 Agent | Skills 的打包集合 | 多 Agent 并行协作 |
| 上下文 | 共享调用者上下文 | 独立上下文 | 同 Skill | 每个成员独立上下文 |
| 触发方式 | /命令 或自动匹配 | Claude 自主决定 | 安装后同 Skill | 用户指令或自动 |
| 适合场景 | 重复性工作流 | 调研、探索、分析 | 团队共享标准化流程 | 复杂项目并行开发 |
| 文件位置 | .claude/skills/ | 无独立文件 | .claude/plugins/ | 运行时动态创建 |
| 复用性 | 项目内复用 | 一次性 | 跨项目/跨团队复用 | 按需组建 |
第十章:上下文管理 — 核心中的核心
"上下文管理是使用多 Agent 编程中最重要的事情。一旦上下文爆炸触发压缩,模型就会忘掉你的约束细节,返工明显变多。" —— 实战经验
10.1 理解上下文限制
Plaintext
┌──────────────────────────────────────────────────┐
│ 上下文窗口示意图 │
├──────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 上下文窗口 (~200K tokens) │ │
│ │ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ 系统提示 + CLAUDE.md │ ← 始终保持│ │
│ │ └───────────────────────────┘ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ Skills + Hooks 注入 │ ← 始终保持│ │
│ │ └───────────────────────────┘ │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ 对话历史 │ ← 越来越长│ │
│ │ │ 代码文件内容 │ │ │
│ │ │ 工具调用结果 │ │ │
│ │ │ ... │ │ │
│ │ └───────────────────────────┘ │ │
│ │ │ │
│ │ ⚠️ 超过限制 → 触发压缩 → 丢失细节! │ │
│ │ │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 约 200K tokens ≈ 约 1.5 万行代码 │
│ 主 Agent 约 10 分钟就容易触发压缩 │
│ │
└──────────────────────────────────────────────────┘