第 14 章 | subagent 是什么
💡 进群学习加 wx: agentupdate
(申请发送: 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 系统的灵魂。