Subagent

Subagent = 专门化的 AI 助手,运行在独立的上下文窗口中,拥有特定的工具和权限。

它的工作流程如下:

主对话(你和 Claude)
    ↓ 委托任务
Subagent(独立 AI 助手)
    ↓ 执行任务
返回结果到主对话

image-20260203194321194

Subagent的优势:

优势 说明 例子
保护上下文 不污染主对话 跑测试套件,只返回失败的
成本控制 可选便宜的模型 用 Haiku 做搜索(比 Opus 便宜)
安全隔离 限制工具访问 只读查询,禁用写入

适合的场景:

1. 大量输出(测试、日志、搜索)
   → Subagent 吸收细节,只返回摘要

2. 独立任务(代码审查、调试、探索)
   → Subagent 专注执行,不干扰主对话

3. 并行工作(同时调查多个模块)
   → 多个 Subagent 同时运行

4. 安全限制(只读查询、受限权限)
   → Subagent 强制工具限制

关于场景1,假如使用subagent前,我们跟Claude的交互如下,随着对话轮数的增加,上下文token数量也越来越多,最终达到最大limit:

image-20260203194731367

假如使用subagent,它可以在中间的任务返回摘要,大大减少上下文的token数量,能支持更多轮对话:

image-20260203194757843

❌ 不适合的场景:

1. 需要频繁对话
   → Subagent 是独立上下文

2. 快速单次修改
   → 直接在主对话更快

3. 需要共享中间状态
   → 主对话更合适

Claude Code 的内置 Subagent

Claude Code 有内置的 subagent。这些是系统级别提供的专用代理,无需额外配置即可使用。

所有 Subagent 详细列表

  • Bash - 命令执行专家,专门处理 git 操作、命令执行等终端任务。适合所有需要 shell 命令的场景。

  • general-purpose - 通用研究代理,用于复杂问题研究、代码搜索和多步骤任务。当不确定能否一次找到正确匹配时使用。

  • Explore - 快速代码库探索专家。支持通过模式查找文件(如 src/components/**/*.tsx)、搜索代码关键字、回答代码库问题。可指定彻底程度:“quick”(基本搜索)、“medium”(中等探索)、“very thorough”(全面分析)。

  • Plan - 软件架构代理,用于设计实现计划。返回分步计划、识别关键文件、考虑架构权衡。

  • claude-code-guide - 专门回答关于 Claude Code CLI 工具、Claude Agent SDK 和 Claude API 的问题。处理 “Claude 能否…"、“如何…” 等问题。

  • statusline-setup - 配置 Claude Code 状态行设置的专用代理。

自动触发机制

内置 subagent 会根据我对任务的判断自动触发。自定义 subagent 的触发基于其 description 字段中定义的关键词和场景。例如:

当我们说"查询 AWS 成本"或"分析账单"时,会自动触发 aws-cost-analyzer。当你说"审查代码"或"检查 Next.js 组件"时,会触发 nextjs-reviewer

也可以显式调用:“使用 aws-cost-analyzer 查询成本"或通过 /agents 命令手动选择:

管理

通过命令 /agents 查看所有可用的 subagent 列表。自定义 subagent 的配置文件位于 .claude/agents/ 目录下,每个 subagent 有自己的子目录和配置文件。

image-20260203204826690

内置 Subagent: 不能被禁用或修改。它们是 Claude Code 核心功能的一部分。

自定义 Subagent: 可以完全控制。

要修改自定义 subagent,编辑对应的配置文件(如 aws-cost-analyzer.md)。要禁用自定义 subagent,删除或重命名其目录即可。要创建新的自定义 subagent,在 .claude/agents/ 下创建新目录和配置文件。

配置文件采用 markdown 格式,包含 YAML front matter:

---
name: my-agent
description: 简短描述,用于自动匹配触发条件
tools: Read, Write, Bash
disallowedTools: Edit
model: haiku
---

# 系统提示
你是专门的助手,负责...

总结

Claude Code是如何自动找到这些agent的呢,让我们再执行一次/context命令:

image-20260203205144612

它会自动将当前目录的agent加载到context中。