Claude Code 内置了 5 个专用 Agent,各有独立的系统提示词、工具集和触发条件。从源码出发,逐一解析其实现逻辑与设计哲学。
src/tools/AgentTool/built-in/ 目录,通过 getBuiltInAgents() 注册到系统中。每个 Agent 有独立的模型配置、工具白名单和系统提示词。| Agent 名称 | agentType | 模型 | 工具权限 | omitClaudeMd | 核心职责 |
|---|---|---|---|---|---|
| General Purpose | general-purpose | getDefaultSubagentModel() | 所有工具 ['*'] |
❌ | 通用研究、代码搜索、多步骤任务,兜底 Agent |
| Explore | Explore | haiku(外部)/ inherit(ANT) | 只读(禁 Edit/Write/AgentTool) | ✅ | 极速代码库搜索,quick/medium/very thorough 三档 |
| Plan | Plan | inherit(主 Agent 同款) | 只读(同 Explore) | ✅ | 软件架构设计,纯探索不修改,输出结构化实现计划 |
| Verification | verification | inherit | 只读 + /tmp 写(禁 Edit/Write/AgentTool) | ❌ | 对抗性验证,输出 PASS/FAIL/PARTIAL 裁决 |
| Claude Code Guide | claude-code-guide | haiku | 搜索 + 网络工具(无编辑类) | ❌ | Claude Code / API / SDK 使用问题解答,个性化配置感知 |
Explore 和 Plan Agent 受 BUILTIN_EXPLORE_PLAN_AGENTS 特性开关控制,通过 GrowthBook A/B 实验(tengu_amber_stoat)决定是否启用。Verification Agent 受 VERIFICATION_AGENT + GrowthBook tengu_hive_evidence 双重门控。
haiku 模型(速度快、成本低)omitClaudeMd: true 省略 CLAUDE.md 加载,节省 token调用者在 prompt 中指定彻底度级别:
quick:快速扫描,适合目标明确的搜索medium:中等深度,平衡速度与完整性very thorough:彻底探索,适合架构分析系统提示词建议:3 次以上简单搜索(Glob/Grep)仍找不到时才调用 Explore。直接用专用搜索工具更快。
model: 'inherit' — 使用主 Agent 的强模型,保证推理深度EXPLORE_AGENT.tools(两者工具完全一致)omitClaudeMd: true 但提示词说明可自行读取 CLAUDE.md提示词要求必须以 ### Critical Files for Implementation 结尾,列出 3-5 个关键文件路径,便于主 Agent 直接继续实现阶段。
Plan Agent:独立子 Agent,完整推理能力,适合复杂架构设计,输出详细计划文档。
Plan Mode:主 Agent 的权限限制模式,通过 Shift+Tab 切换,适合简单操作前的快速规划。
提示词开篇即定义了 Verification Agent 的反向激励哲学,并明确列举了 AI 验证者的两大失败模式:
mcp__playwright__*)点击、截图、读 consolemcp__claude-in-chrome__* / mcp__playwright__* 了吗?有则使用。这是 AI Agent 提示词的高级设计技巧:通过列举失败借口,驱动 Agent 产生"自我认知",主动规避这些陷阱。
每个 check 必须包含真实执行的命令和实际输出。只有代码阅读分析的 check 会被拒绝。
环境限制(无测试框架、工具不可用、服务器无法启动),不是"我不确定这是否是 bug"的借口。
color: 'red':UI 中显示为红色,传达严肃感background: true:后台运行,不阻塞用户criticalSystemReminder_EXPERIMENTAL:每轮重新注入关键提醒/tmp:可创建临时测试脚本(测试后自行清理)tools: ['*'] — 这是 5 个内置 Agent 中唯一拥有所有工具权限的。可以读、写、编辑文件,运行任意 Bash 命令,甚至派生子 Agent。
model 字段未指定,由 getDefaultSubagentModel() 决定。这是唯一一个走实验性模型选择逻辑的内置 Agent,未来可能根据任务类型自适应。
当任务需要跨领域能力(既要搜索又要修改,既要研究又要实现)时,General Purpose 是默认选择。其他专用 Agent 在特定场景下更高效,但 General Purpose 更灵活。
code.claude.com/docs/en/claude_code_docs_map.mdplatform.claude.com/llms.txtWebFetch 实时获取,确保内容最新WebSearch 补充调用前检查是否有运行中的 claude-code-guide Agent。若有,优先用 SendMessage 继续对话而非新建,保留上下文,避免重复初始化开销。
Guide Agent 的 getSystemPrompt() 接收运行时 toolUseContext,动态注入:
.claude/skills/).claude/agents/)这使 Guide 能够推荐用户实际拥有的工具,而非泛泛而谈。
description — Agent 描述(必需)tools — 工具白名单(['*'] = 全部)disallowedTools — 工具黑名单model — 模型标识('haiku'、'inherit'、完整ID)mcpServers — 专属 MCP 服务器permissionMode — 权限模式omitClaudeMd — 是否跳过 CLAUDE.mdhooks — 生命周期钩子whenToUse — 触发描述(主 Agent 根据此决定何时调用)