是什么
Subagents 是在单个会话内运行的专用 AI 助手,拥有独立的上下文窗口、自定义系统提示和特定工具权限。当某个子任务会产生大量不再需要的日志或搜索结果时,将其委托给 Subagent 可以保持主对话上下文的整洁。
核心机制
内置 Subagents:Claude Code 自带三个内置子 Agent:
- Explore:只读工具,Haiku 模型,用于代码库搜索和分析
- Plan:只读工具,用于 Plan Mode 下的上下文收集
- General-purpose:全工具,用于复杂多步骤任务
自定义 Subagent 定义:以 Markdown 文件形式定义,包含 YAML frontmatter(描述、模型、工具限制等)和系统提示正文。Claude 根据 description 字段决定何时自动委托。
存储位置与作用域:
- 个人级:
~/.claude/agents/— 所有项目可用 - 项目级:
.claude/agents/— 仅当前项目 - 插件级:通过 Plugin 分发
关键 frontmatter 字段:description(触发条件)、model(指定模型)、tools/disallowedTools(工具限制)、isolation: worktree(强制 worktree 隔离)、memory(持久化记忆目录)。
不可嵌套:Subagents 不能再派发其他 Subagents,防止无限递归。
关键细节
- 创建/管理 Subagents:
/agents命令(Library 标签页) - 手动调用:
Use the <agent-name> agent to... - 在 Agent View 中指定:
@<agent-name> <prompt> - 从 Shell 指定:
claude --agent code-reviewer --bg "..." - 持久化记忆目录:
~/.claude/agent-memory/ - Subagent 文件格式:
.md文件,frontmatter + 系统提示
关联
- agents — 四种并行方式对比
- agent-view — 在 Agent View 中使用 Subagents
- agent-teams — 与 Agent Teams 的区别(Subagents 只向主 Agent 汇报)
实践要点
- description 字段要清晰,Claude 依赖它决定何时自动委托
- 用 Haiku 模型处理简单探索任务可显著降低成本
isolation: worktree适合会修改文件的 Subagent,防止并行冲突- Subagents 继承父会话的权限,但可以通过 frontmatter 进一步限制工具
- 与 Agent Teams 的核心区别:Subagents 只向主 Agent 汇报,不能互相通信