Agent工坊

【Agent工坊】Claude Code 任务分解术:一个 `/plan` 命令自动拆解大需求为并行子任务

别再手动把大需求拆成小任务再逐个喂给 Claude Code 了。本文教你用 CLAUDE.md + Task 工具 + 自定义斜杠命令,让 Claude Code 自己拆解需求、分配子任务、并行执行、汇总结果——全程你只输入一行 /plan

你正在经历的「AI 微管理」陷阱

先看一个真实场景:

帮我给用户系统加上 OAuth 2.0 登录邮箱验证JWT Token 刷新

Claude Code 开始改代码
改了 200 你发现
- OAuth 回调 URL 写死了 localhost
- 邮箱验证的发件人地址是 no-reply@example.com
- JWT 刷新逻辑和登录逻辑混在同一个函数里
- 没写任何测试

不对OAuth 回调要从环境变量读邮箱发件人要配置化
Claude Code好的让我改
又改了 150 这次 OAuth 对了 JWT 刷新被改坏了

根本问题不在模型能力,在于「一次性需求」超出了单次会话的上下文管理能力。 就像你不会把「建一栋楼」作为单条指令发给施工队一样,复杂需求需要任务分解。

Claude Code 自带一个被严重低估的功能:Task 工具——它能让 Claude Code 自动创建子 Agent,并行处理多个独立子任务。

Task 工具 vs 你自己拆任务:区别在哪

维度 手动拆任务 Claude Code Task 工具
分解质量 依赖你的经验 基于代码库上下文智能分解
并行执行 你需要开多个终端 自动并行,主 Agent 汇总
上下文管理 每个终端独立,互不知情 子任务结果自动汇总到主会话
错误处理 手动检查每个终端 主 Agent 自动检测并重试失败任务
可复现性 每次都要重新想怎么拆 写一次 CLAUDE.md,永久复用

核心机制:Task 工具本质上是一个 delegate_task 的 Claude Code 原生实现——主 Agent 分析需求后,生成子任务描述,每组子任务在独立上下文中执行,完成后将摘要返回给主 Agent。

实战一:基础 Task 模式——拆解+并行+汇总

场景

给一个 Node.js 项目加三个独立功能:
1. 健康检查端点 /health
2. 请求日志中间件
3. 速率限制中间件

这三个功能互不依赖,天然适合并行。

步骤1:创建 /plan 命令

在项目根目录创建 .claude/commands/plan.md

你是一个任务拆解专家。请严格按照以下流程处理用户需求:

## 第1步:需求分析
- 识别需求中的独立子任务(彼此无依赖关系的部分)
- 识别有依赖关系的子任务(A必须在B之前完成)

## 第2步:制定执行计划
对于每个独立子任务,按以下格式输出:

子任务 X: [简短描述]

  • 涉及文件: [预估涉及的文件列表]
  • 完成标准: [如何判断这个子任务完成]
  • 依赖: [无 / 依赖子任务Y]
## 第3步:并行执行
使用 Task 工具并行执行所有无依赖的子任务。
每个子任务的 prompt 必须包含:
1. 具体要做什么
2. 涉及哪些文件(从代码库中推断,不要猜测)
3. 完成标准
4. 约束条件(不要修改什么)

## 第4步:汇总验证
所有子任务完成后:
1. 检查每个子任务的完成标准是否满足
2. 如果有依赖关系,验证集成是否正确
3. 运行项目现有测试确保没有回归
4. 输出一个汇总表格

## 约束
- 在对代码库做任何修改前,先用 Grep/Glob 工具了解现有代码结构
- 每个子任务必须能在 50 行以内的代码变更中完成
- 如果子任务预计超过 50 行变更,进一步拆分

步骤2:在 CLAUDE.md 中声明 Task 使用策略

.claude/CLAUDE.md

## 任务分解策略

当用户提出包含多个独立功能的需求时:
1. 首先使用 `/plan` 流程拆解
2. 所有独立子任务使用 Task 工具并行执行
3. 子任务完成后,我在主会话中做集成验证

Task 工具使用规范:
- 每个子任务的 prompt 包含明确的文件路径和完成标准
- 子任务返回时只需摘要(不需要完整代码,避免上下文膨胀)
- 如果子任务失败,分析失败原因后重试一次,仍失败则标记给用户

步骤3:执行效果

输入 /plan 命令后,Claude Code 的实际执行流程:

用户: /plan 给这个项目加健康检查端点、请求日志中间件、速率限制中间件

Claude Code:
📋 需求分析完成,识别出 3 个独立子任务:
  子任务1: 健康检查端点 /health → 涉及 server.js
  子任务2: 请求日志中间件 → 涉及 middleware/logger.js
  子任务3: 速率限制中间件 → 涉及 middleware/rateLimiter.js

⚡ 三个子任务无依赖关系,开始并行执行…

[Task #1] ✅ 健康检查端点完成 (server.js +12行)
[Task #2] ✅ 日志中间件完成 (middleware/logger.js +18行)  
[Task #3] ✅ 速率限制完成 (middleware/rateLimiter.js +25行)

🔍 集成验证:
  - 三个中间件已正确注册到 Express app
  - 测试套件通过: 23/23 ✅
  - 总计: 3 个子任务并行执行,耗时 47 秒

📊 汇总:
| 功能 | 文件 | 代码行数 | 状态 |
|------|------|---------|------|
| /health | server.js | +12 | ✅ |
| 日志中间件 | middleware/logger.js | +18 | ✅ |
| 速率限制 | middleware/rateLimiter.js | +25 | ✅ |

对比手动方式:如果逐个执行,你需要 3 次独立会话,每次都要描述项目上下文,总耗时约 5-8 分钟。Task 工具一次完成,47 秒。

实战二:有依赖关系的任务编排

不是所有任务都能完全并行。有些需求有明确的依赖链:

需求:实现用户注册功能,包含:
1. 数据库表设计 (User 表)
2. 注册 API 端点
3. 邮箱验证
4. 前端注册表单

依赖关系:
  User表 → 注册API → 邮箱验证
                    → 前端表单

/plan 中处理依赖

扩展 .claude/commands/plan.md 加入依赖编排:

## 第2.5步:依赖编排(当存在依赖关系时)

按阶段组织执行:

阶段1(并行): 所有无依赖的子任务
阶段2(等待阶段1完成后并行): 依赖阶段1的子任务
阶段3(等待阶段2完成后并行): 依赖阶段2的子任务

示例:

需求:用户注册功能
阶段1: [子任务A: User表设计] ← 无依赖,先执行
阶段2: [子任务B: 注册API, 子任务C: 前端表单] ← 都依赖A,等A完成后并行
阶段3: [子任务D: 邮箱验证] ← 依赖B,等B完成后执行


执行效果

用户: /plan 实现用户注册功能(数据库+API+邮箱验证+前端)

Claude Code:
📋 依赖分析:
  User表设计 ← 无依赖
  ├── 注册API ← 依赖User表
  │   └── 邮箱验证 ← 依赖注册API
  └── 前端表单 ← 依赖User表(字段定义)

🔀 执行计划:
  阶段1: [Task#1: User表设计] → 22秒完成 ✅
  阶段2: [Task#2: 注册API] [Task#3: 前端表单] → 并行41秒完成 ✅✅
  阶段3: [Task#4: 邮箱验证] → 18秒完成 ✅

总耗时: 1分21秒(串行预计4-6分钟)

实战三:代码审查与修复的并行模式

这是最实用的场景之一。当你提交一批代码后,想让 Claude Code 全面审查:

# .claude/commands/audit.md

请对当前分支的所有变更进行多维度并行审查:

## 并行审查维度

使用 Task 工具同时启动 4 个审查子任务:

**子任务1: 安全检查**
- 审查所有变更文件
- 重点:SQL注入、XSS、敏感信息泄露、权限漏洞
- 每个问题标注严重等级和具体行号

**子任务2: 性能分析**
- 识别 N+1 查询、不必要循环、大对象复制
- 估算每个问题的性能影响(时间/内存)
- 给出优化前后的对比代码

**子任务3: 测试覆盖**
- 检查每个新增/修改的函数是否有对应测试
- 识别未覆盖的边界条件
- 给出测试用例代码框架

**子任务4: 代码风格与最佳实践**
- 检查命名规范、函数长度、复杂度
- 检查是否符合项目现有模式
- 标记需要重构的部分

## 汇总

所有子任务完成后,输出一份统一报告:
- 每个维度的高优先级问题(前3个)
- 跨维度交叉分析(例如:安全问题+测试缺失)
- 修复优先级建议

使用效果:一次 /audit 命令,4 个维度的审查在 60 秒内并行完成,输出一份 4 合 1 的审查报告。

常见问题与避坑指南

Q1: Task 工具的子 Agent 能访问我的代码库吗?

能。 Task 工具创建的子 Agent 继承主 Agent 的工具权限和工作目录。但注意:子 Agent 是独立上下文,看不到主会话的历史对话。所以必须在子任务 prompt 里写清楚所有需要的信息。

Q2: 子任务太多会不会让 API 费用爆炸?

会有一个隐形成本。每个子任务独立调用模型,3 个子任务 = 主会话 + 3 个子会话 = 4 倍 token 消耗。但并行执行节省的时间通常远超额外成本:
- 串行 3 任务:6 分钟等待 = 你的人工时间成本
- 并行 3 任务:1 分钟 + 额外 $0.3 token 费用 → 净赚 5 分钟

Q3: 如何避免子任务之间产生冲突(修改同一文件)?

关键策略:在拆解阶段就定义好文件边界。/plan 的第 2 步里,明确每个子任务「涉及文件」列表。如果两个子任务需要修改同一文件,将它们合并为一个子任务,或者明确定义各自修改的行范围。

❌ 错误拆解:
子任务A: 添加用户认证 → 涉及 auth.js, server.js
子任务B: 添加日志中间件 → 涉及 server.js, logger.js
→ 冲突:两个子任务都改 server.js

✅ 正确拆解:
子任务A: 添加用户认证 → 涉及 auth.js, routes/auth.js
子任务B: 添加日志中间件 → 涉及 middleware/logger.js, server.js
→ 不冲突:server.js 的修改由子任务B独立完成

Q4: 子任务失败怎么办?

Task 工具有内置的失败反馈:子任务失败时,主 Agent 会收到错误摘要。你可以在 CLAUDE.md 中定义重试策略:

## 子任务失败处理
1. 第一次失败:分析错误原因,修正子任务 prompt 后重试
2. 第二次失败:标记为「需人工介入」,继续执行其他子任务
3. 所有子任务完成后,汇总失败项并给出可能原因

立即可用的配置模板

把以下三个文件放到项目里,5 分钟就能开始用:

文件1: .claude/commands/plan.md

你是任务拆解+编排专家。收到需求后:
1. 先了解代码库结构(Grep/Glob 工具)
2. 识别独立子任务和依赖关系
3. 无依赖的并行执行,有依赖的按阶段编排
4. 全部完成后做集成验证并输出汇总表

每个子任务 prompt 必须包含:
- 具体做什么(1-3句话)
- 涉及文件列表(从代码库推断)
- 完成标准
- 不要修改什么

约束:每个子任务 < 50 行代码变更。

文件2: .claude/CLAUDE.md(追加以下内容)

## Task 工具使用约定
- 多独立功能的需求 → 先拆解再并行执行
- 子任务 prompt 要自包含(子 Agent 看不到历史对话)
- 子任务返回摘要即可,不要完整代码
- 文件修改冲突 → 拆分时定义清晰边界

文件3: .claude/commands/audit.md

对当前分支变更做 4 维度并行审查:安全、性能、测试覆盖、代码风格。
每个维度一个独立子任务。完成后输出统一报告。

总结

Claude Code 的 Task 工具是「一人公司」效率杠杆的放大器。核心原则只有三条:

  1. 能并行的绝对不串行 —— 独立子任务 = 并行执行 = 3 倍+ 效率
  2. 拆解质量决定执行质量 —— 文件边界清晰、完成标准明确、依赖关系标注
  3. 主 Agent 只管编排,子 Agent 只管执行 —— 不要让主 Agent 陷入实现细节

下次面对大需求时,输入 /plan 而不是直接描述需求——你会发现你的 AI 编程助手突然从「高级打字员」变成了「技术主管」。


AI创业 #Agent工坊 #ClaudeCode #Task工具 #并行编程