第 14 章 | subagent 是什么

更新于 2026/5/10
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

第 14 章:subagent 是什么

学习目标

理解 subagent 与 main Claude 的关系,知道 dispatch 的代价和价值。

关键事实清单

flowchart TB
    MC["main Claude
(你和它对话)"] -->|Agent 工具| SA["subagent
(被 dispatch 出来)"] SA --> F1["独立上下文
看不到主对话"] SA --> F2["按 frontmatter 选模型
(可与 main 不同)"] SA --> F3["独立工具集
(可被限制)"] SA --> F4["完成后只回一段文字
(不带 tool 历史)"] style MC fill:#bbdefb style SA fill:#fff9c4

一次 dispatch 的生命周期

sequenceDiagram
    participant U as 用户
    participant MC as main Claude
    participant SA as subagent

    U->>MC: 让组 3 跑起来
    MC->>SA: dispatch developer
+ briefing prompt Note over SA: cold start
读 frontmatter
加载 system prompt SA->>SA: 读项目文件 SA->>SA: 改代码 SA->>SA: commit SA->>MC: 完成报告(一段文字) Note over MC: 不知道 SA 用了哪些工具
只看到最后一段总结 MC->>U: 组 3 完成

关键 = "冷启动"

✗ subagent 不知道你跟 main Claude 之前聊过什么
✗ subagent 不知道项目的隐含约定,除非你告诉它
✗ subagent 不会自动读 CLAUDE.md(需要 Claude Code 配置)
✓ subagent 会读它的 system prompt(来自 .claude/agents/<name>.md)
✓ subagent 会读 briefing prompt(main Claude 给它的话)

briefing 一定要自包含——把所有它需要的上下文塞进去。

目录约定

项目级:  <project>/.claude/agents/<name>.md      跟项目走,团队共享
用户级:  ~/.claude/agents/<name>.md               跟你的账号走,所有项目可用

→ 项目专属的 agent 用项目级,通用 agent 用用户级。

subagent vs skill vs slash command

概念 是什么 谁触发 例子
subagent 一份 system prompt + 工具集,可被 dispatch main Claude 用 Agent 工具 developer.md
skill 一段标准化流程,可被 main Claude 调用 main Claude 用 Skill 工具 opsx:propose
slash command 用户输入触发的提示模板 用户敲 /xxx /dev

三者配合使用:用户敲 /dev(slash command)→ main Claude 按规则 dispatch developer(subagent)→ developer 内部可能用 skill。

dispatch 的成本

每次 dispatch ≈ 一次新会话启动
- 读 system prompt:花 1k~10k token
- 重新加载项目相关文件:花 5k~50k token
- 模型推理:按 input/output 计费

→ 不要小事 dispatch。粒度太细 = 浪费钱。组级别 dispatch(我们 dev.md 的设计)是性价比最佳点。

你现在能做什么

  • 解释 subagent / skill / slash command 区别
  • 知道为什么 briefing 要自包含
  • 估算一次 dispatch 的成本

下一章设计角色——这是多 agent 系统的灵魂。