是什么

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 汇报,不能互相通信