Claude Code 多 Agent 编排实战——用 Task 工具实现代码生成+审查+测试闭环
我的终端里跑着 3 个 Claude Code Agent:一个写代码、一个审代码、一个跑测试,它们自动循环直到测试全部通过。
一、引言
Claude Code 不仅仅是一个代码助手,它内置了一套强大的多 Agent 编排能力。通过Agent、Task、Plan等工具,你可以在一个会话中调度多个"专业 Agent"协作完成复杂任务。
这篇文章将带你深入 Claude Code 的多 Agent 机制,并通过一个实战案例——自动代码生成→审查→修复→测试闭环——展示如何搭建可复用的多 Agent 工作流。
读完你会获得:
- Claude Code 多 Agent 工具链的完整认知
- 一套可直接使用的多 Agent 协作工作流
- 如何配置
.claude/settings.json来固化工作流 - 多个踩坑经验
二、Claude Code 的 Multi-Agent 工具箱
Claude Code 提供了几个核心工具用于多 Agent 编排:
2.1 Agent 工具
{"name":"Agent","parameters":{"subagent_type":"general-purpose | Explore | Plan | code-reviewer | ...","description":"简短描述任务","prompt":"给 Agent 的完整任务指令"}}这是核心的"派活"工具。你可以创建不同类型的 Agent:
| Agent 类型 | 能力 | 适合任务 |
|---|---|---|
general-purpose | 全能型 | 通用任务 |
Explore | 只读搜索 | 代码探索、文件定位 |
Plan | 架构设计 | 方案规划 |
code-reviewer | 代码审查 | PR Review |
claude-code-guide | Claude Code 文档 | 工具用法查询 |
2.2 Task 工具
{"name":"Task","parameters":{"subagent_type":"...","description":"任务描述","prompt":"任务指令","run_in_background":true|false}}Agent的升级版。支持后台运行和任务追踪,适合长时间任务和需要并行执行的场景。
2.3 Plan 模式
通过EnterPlanMode进入计划模式,Claude 会先探索代码库、设计方案,然后输出实施计划等待确认——这本身就是一个"架构师 Agent"的行为。
2.4 关键区别
| 特性 | Agent | Task | Plan Mode |
|---|---|---|---|
| 是否执行代码 | 可以 | 可以 | 只规划 |
| 后台运行 | 不支持 | 支持 | N/A |
| 结果通知 | 内联返回 | 完成时通知 | 输出计划 |
| 适合场景 | 快速委派 | 长任务/并行 | 需要确认的复杂任务 |
三、实战:搭建代码质量闭环流水线
3.1 场景描述
当你在开发一个 Python 项目时,每次写完代码需要:
- 有人帮你检查代码质量
- 发现的问题自动修复
- 跑测试确认修复没有引入新问题
- 如果测试不通过,重复 2-3 直到通过
这个循环如果手动做,至少 10-15 分钟。用 Claude Code 多 Agent 编排,可以做到"一键触发,自动循环"。
3.2 工作流设计
Step 1: 用户提交代码变更 ↓ Step 2: Code Reviewer Agent 审查代码 ↓ Step 3: 如果有问题 → Code Fixer Agent 修复 ↓ ↓ 没有问题 Step 4: Test Runner Agent 运行测试 → 输出审查报告 ↓ Step 5: 测试失败?→ 回到 Step 3(最多 3 轮) 测试通过?→ 输出最终报告3.3 在 Claude Code 中的实际操作
第一轮:代码审查
在 Claude Code 会话中,你可以这样发起:
请帮我审查当前 git diff 中的代码变更,重点关注: 1. 潜在 bug 2. 安全问题(如命令注入、SQL 注入) 3. 性能问题 4. 代码可读性 如果发现问题,请自动修复它们,然后运行 pytest 验证。Claude Code 内部会这样调度:
主 Agent 理解任务 │ ├── Agent(code-reviewer): 审查 git diff,输出问题列表 │ 返回: [{"file": "app.py", "line": 23, "issue": "命令注入风险", ...}] │ ├── Agent(general-purpose): 根据审查结果修复代码 │ 使用 Edit 工具修改问题文件 │ └── Bash: 运行 pytest 返回: "3 passed, 1 failed" │ ├── Agent(general-purpose): 分析失败测试 │ 定位原因,再次修复 │ └── Bash: 再次运行 pytest 返回: "4 passed"触发 Code Reviewer Agent
Agent( subagent_type="code-reviewer", prompt="审查 app.py 和 utils.py 中的本次变更。重点关注 SQL 注入和命令注入风险。列出所有问题,按严重级别排序。" )触发修复 Agent
Agent( prompt="根据以下审查结果修复代码。只改涉及安全问题的部分,不要改变功能逻辑。 审查结果: 1. [高危] app.py:23 - user_input 直接拼接到 shell 命令,存在命令注入 2. [中危] utils.py:45 - 数据库查询使用字符串拼接,存在 SQL 注入 修复后不要运行测试,我稍后手动确认。" )运行测试
$ python-mpytest tests/-v3.4 自动化闭环脚本
你可以把它封装成一个可复用的工作流。在 Claude Code 中创建一个 “代码审查闭环” 的 Skill:
# Code Quality Loop Skill ## 触发条件 用户说 "审查代码" / "code review loop" / "检查代码质量" ## 执行流程 ### 1. 获取变更 使用 `git diff` 获取当前变更。如果没有变更,询问用户要审查哪些文件。 ### 2. 代码审查 启动 code-reviewer Agent,审查所有变更: - 安全漏洞(OWASP Top 10) - Bug 风险 - 性能问题 - 代码风格 ### 3. 自动修复 如果审查发现问题,启动 general-purpose Agent 进行修复。修复原则: - 只改与问题直接相关的代码 - 不改变功能行为 - 保留原有注释 ### 4. 测试验证 运行项目测试套件。如果测试失败: - 分析失败原因 - 修复问题 - 重新运行测试 - 最多循环 3 次 ### 5. 输出报告 生成审查和修复摘要: - 发现的问题数 - 已修复的问题数 - 测试最终状态 - 遗留问题(如有)3.5 使用 Task 实现并行加速
如果变更涉及多个独立文件,可以用后台 Task 并行审查:
# 并行启动 3 个审查 Agent Task(description="审查 app.py", prompt="审查 app.py 的安全问题...", run_in_background=true) Task(description="审查 utils.py", prompt="审查 utils.py 的代码质量...", run_in_background=true) Task(description="审查 models.py", prompt="审查 models.py 的 ORM 查询效率...", run_in_background=true) # 3 个 Task 在后台并行运行,完成后自动通知四、自定义 Agent 类型配置
4.1 通过 settings.json 注册自定义 Agent
在项目的.claude/settings.json中:
{"agents":{"security-auditor":{"description":"专门进行安全检查的 Agent","system_prompt":"你是一个资深应用安全专家。审查代码时重点关注 OWASP Top 10。","tools":["Read","Grep","Glob","Bash"],"model":"sonnet"},"test-writer":{"description":"为给定代码编写全面测试","system_prompt":"你是一个测试工程师。你编写覆盖边界条件、异常路径的全面测试。","tools":["Read","Write","Edit","Bash"],"model":"haiku"},"doc-generator":{"description":"生成代码文档","system_prompt":"你为 Python 代码生成 Google 风格的 docstring。","tools":["Read","Edit"],"model":"haiku"}}}4.2 在会话中使用自定义 Agent
配置生效后,在 Claude Code 中可以这样用:
启动 security-auditor 审查本次 PRClaude Code 会使用你配置的 system prompt 和工具集创建一个专门的 Agent。
五、多 Agent 协作的高级模式
5.1 辩论模式:双 Agent 交叉审查
同时启动两个审查 Agent,给它们不同的审查角度: Agent A (security-auditor): 从安全角度审查 Agent B (code-reviewer): 从代码质量和性能角度审查 两个 Agent 完成后,用第三个 Agent 合并和去重审查结果。# 概念示例:在 Claude Code 会话中""" 请并行启动两个审查: 1. security-auditor: 审查本次变更的安全风险 2. code-reviewer: 审查代码质量和性能 两者完成后,帮我合并结果,去重并按严重程度排序。 """5.2 Plan-Execute-Review 循环
这是 Claude Code 内置的典型工作模式:
1. Plan Agent: 设计方案 → 输出计划 2. 用户确认计划 3. Execute Agent: 按计划实现 4. Review Agent: 审查实现是否符合计划 5. 如果有偏差 → 回到步骤 3这也是 Claude Code 的EnterPlanMode+Agent工具组合的本质。
5.3 Explore-Generate-Validate 流水线
1. Explore Agent: 理解现有代码结构和模式 ↓ 2. Generator Agent: 根据探索结果生成新代码 ↓ 3. Validator Agent: 验证新代码 - 是否遵循现有模式? - 是否引入了重复代码? - 是否破坏了现有测试?六、踩坑经验
6.1 Agent 间上下文丢失
每个 Agent 启动时是一个干净的上下文——它看不到主会话中的对话历史。必须在 prompt 中明确传递所有必要信息。
- # 不好的做法 - Agent(prompt="审查这个文件") + # 好的做法 + Agent(prompt="审查 app.py。这是用户管理模块的 API 层, + 预期只处理 JSON 请求,返回格式统一为 {code, data, msg}。 + 最近我们修复了一个 SQL 注入漏洞(#42),请确保没有类似问题。")6.2 并行 Agent 的文件冲突
如果两个后台 Agent 同时编辑同一个文件,会出问题。确保并行的 Agent 处理不同的文件。
6.3 Agent 无限循环
Review → Fix → Test Fail → Fix → Test Fail → … 设置max_rounds限制循环次数。
6.4 Agent 的"过度热心"
Agent 天然倾向于"做点什么",即使没有问题也可能强行找问题修。在 prompt 中明确要求"如果没有发现问题就说没有,不要捏造"。
code-reviewer Agent prompt: "审查代码。如果代码质量良好,直接说'未发现问题'并给出评分。 不要为了看起来'有成果'而编造问题。"七、总结
- Claude Code 的Agent / Task / Plan Mode构成了一个完整的多 Agent 编排能力层
Agent适合快速委派,Task适合长时间/并行任务,Plan Mode适合需要确认的复杂变更- 代码审查→修复→测试闭环是最经典且价值最高的多 Agent 工作流之一
- 通过
.claude/settings.json可以注册自定义 Agent 类型(如security-auditor),复用团队最佳实践 - 给 Agent 足够且精炼的上下文——Agent 不知道你在主会话中讨论过什么
- 设置
max_rounds防止无限循环,明确要求 Agent “没问题就说没问题”
Claude Code 的多 Agent 能力让"AI 团队协作"从 PPT 走进了工程实践——关键是要设计好 Agent 之间的分工和上下文传递。