Claude Code: 子代理(SubAgent)

最后更新:2026-08-31

子代理让 Claude Code 变成一个"团队管理者"——主代理分解任务,子代理并行执行,效率成倍提升。

💡 提示:子代理不是多开几个 Claude Code 实例,而是单个 Claude Code 会话内部的并行执行机制。主代理负责规划和协调,子代理负责具体执行。

📋 前置知识:第十二章 MCP

1. 你将学到


2. 子代理工作原理

(1) 架构模型

100%
graph TB
    M[主代理<br/>规划+协调] --> S1[子代理1<br/>前端重构]
    M --> S2[子代理2<br/>后端API]
    M --> S3[子代理3<br/>测试编写]
    S1 --> R[结果汇总]
    S2 --> R
    S3 --> R
角色 职责 上下文
主代理 理解需求、分解任务、汇总结果 全局上下文
子代理 执行具体子任务 局部上下文

(2) 执行流程

TEXT 📖 仅展示
1. 用户下达复杂任务
2. 主代理分解为独立子任务
3. 为每个子任务创建子代理
4. 子代理并行执行(各自独立的上下文)
5. 主代理汇总所有子代理结果
6. 检查一致性,处理冲突
7. 输出最终结果

▶ 示例 1: 子代理自动触发

TEXT 📖 仅展示
> 给项目添加完整的用户管理模块:
> 数据模型、API 接口、前端页面、测试

Claude Code (主代理):
  任务分解:
  - 子任务1: 创建数据模型 (User model + migration)
  - 子任务2: 创建 API 接口 (CRUD endpoints)
  - 子任务3: 创建前端页面 (用户管理界面)
  - 子任务4: 编写测试 (集成测试 + 单元测试)

  [启动4个子代理并行执行]

  子代理1: ✅ 数据模型创建完成
  子代理2: ✅ API 接口创建完成
  子代理3: ✅ 前端页面创建完成
  子代理4: ✅ 测试编写完成

  主代理: 汇总结果,检查接口一致性...
  → 发现 API 返回格式与前端预期不一致
  → 自动修正前端 API 调用
  → 运行全量测试
  ✅ All 24 tests passed

3. 何时使用子代理

(1) 适用场景

场景 是否适合子代理 原因
多文件独立修改 ✅ 适合 各文件修改互不影响
前后端并行开发 ✅ 适合 独立技术栈
批量测试编写 ✅ 适合 每个测试文件独立
单文件深度重构 ❌ 不适合 不需要并行
顺序依赖任务 ❌ 不适合 无法并行执行
小修改 ❌ 不适合 开销大于收益

(2) 触发方式

TEXT 📖 仅展示
# 自动触发:任务足够复杂时 Claude Code 自动使用子代理
> 重构整个项目的错误处理

# 手动触发:明确要求并行
> 并行处理:给每个 service 写测试

# 禁用子代理:简单任务不需要
> 只修改这一个函数

4. 并行任务执行

(1) 并行策略

TEXT 📖 仅展示
# Alice 让 Claude Code 并行修复多个 Bug

> 并行修复以下 Bug:
> 1. src/auth/jwt.ts: token 刷新逻辑错误
> 2. src/utils/date.ts: 时区处理问题
> 3. src/api/orders.ts: 分页参数验证缺失
> 4. src/services/payment.ts: 金额精度问题

Claude Code 启动 4 个子代理:
  子代理1 [jwt.ts]     → ✅ 修复完成 (2min)
  子代理2 [date.ts]    → ✅ 修复完成 (3min)
  子代理3 [orders.ts]  → ✅ 修复完成 (1min)
  子代理4 [payment.ts] → ✅ 修复完成 (4min)

  总耗时: 4min (串行需 10min)
  节省: 60%

▶ 示例 2: 批量操作并行化

TEXT 📖 仅展示
> 为 src/services/ 下所有 8 个 service 补充测试

Claude Code:
  检测到 8 个独立任务,启动并行模式...

  子代理1: email.service.test.ts    ✅ (5 tests)
  子代理2: user.service.test.ts     ✅ (8 tests)
  子代理3: order.service.test.ts    ✅ (7 tests)
  子代理4: payment.service.test.ts  ✅ (6 tests)
  子代理5: search.service.test.ts   ✅ (4 tests)
  子代理6: auth.service.test.ts     ✅ (9 tests)
  子代理7: notification.service.ts  ✅ (3 tests)
  子代理8: report.service.test.ts   ✅ (5 tests)

  汇总: 47 个新测试,全部通过 ✓

5. 代理间协作

(1) 协作模式

模式 说明 适用场景
完全独立 子代理间无交互 批量独立任务
共享规范 共享 CLAUDE.md 和代码风格 团队约定一致
结果整合 主代理整合子代理结果 需要一致性检查
迭代协作 子代理输出作为另一个的输入 有依赖关系

(2) 冲突处理

TEXT 📖 仅展示
# 子代理可能产生冲突

子代理1 修改了 user.types.ts
子代理2 也修改了 user.types.ts

主代理检测到冲突:
  → 对比两个修改
  → 合并不冲突的部分
  → 冲突部分保留更完整的版本
  → 运行测试验证合并结果

6. 调度与资源管理

(1) 资源消耗

维度 单代理 子代理(4个)
API 调用 串行 并行
Token 消耗 100K 4 × 30K = 120K
时间 10 min 3 min
成本 $2.00 $2.40

(2) 调度优化

TEXT 📖 仅展示
# 控制并行度
> 最多使用2个子代理并行处理

# 优先级调度
> 先处理 payment.service(最关键),
> 然后并行处理其他 service

# 资源限制
> 控制子代理上下文大小,每个不超过 50K tokens

▶ 示例 3: 大型项目并行策略

TEXT 📖 仅展示
# Alice 的 SaaS 项目大重构

> 将整个项目从 REST 迁移到 GraphQL,
> 按模块并行处理:
> 1. 用户模块
> 2. 订单模块
> 3. 支付模块
> 4. 通知模块
> 每个模块独立迁移,最后整合

Claude Code:
  启动 4 个子代理,每个处理一个模块...
  每个子代理:
    - 读取对应模块文件
    - 将 REST 路由转为 GraphQL resolver
    - 修改数据获取方式
    - 编写对应测试

  整合阶段(主代理):
    - 合并 schema 定义
    - 统一错误处理
    - 运行全量测试
    ✅ All 134 tests passed

❓ 常见问题

Q 子代理会自动触发吗?
A 会。Claude Code 检测到任务可并行时自动使用子代理。也可以在指令中明确要求并行。
Q 子代理的数量有限制吗?
A 没有硬性限制,但每个子代理消耗独立上下文和 API 调用。建议不超过 5-6 个并行,避免资源消耗过大。
Q 子代理间能通信吗?
A 不能直接通信。它们通过主代理间接协调——主代理分配任务、汇总结果、处理冲突。
Q 并行执行会冲突吗?
A 可能。修改同一文件时可能冲突。主代理会检测并解决冲突,但建议并行任务操作不同文件。
Q 子代理比串行执行更贵吗?
A Token 总消耗略高(约 10-20%),但时间大幅缩短(约 50-70%)。时间敏感场景推荐并行。
Q 如何禁用子代理?
A 指令中明确要求串行执行,或任务足够简单时 Claude Code 不会使用子代理。

📖 小节


📝 作业

  1. 基础题(难度⭐):给 Claude Code 一个可并行的任务,观察子代理的自动触发和执行过程。
  2. 进阶题(难度⭐⭐):设计一个场景,让 Claude Code 并行处理 4 个独立模块,对比串行和并行的时间差异。
  3. 挑战题(难度⭐⭐⭐):分析子代理并行时的 Token 消耗和成本,总结在什么情况下并行更划算。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏