Part 2 · 第 11 课,共 16 课
创建你的第一个 Claude Code 子智能体
把子任务委派给专注的子智能体。
10 min
第 1 步 / 共 5 步 · 什么是子智能体?
子智能体(subagent)是 Claude Code 可以把某个子任务交出去处理的专门助手。它运行在自己独立的上下文窗口中,拥有自己的系统提示词和自己的一套工具,完成后只把一份结果摘要返回给你。
这种隔离正是关键所在。当 Claude 把工作委派给子智能体时,那些冗长的内容——搜索结果、日志、你再也不会回头看的文件内容——都留在子智能体的上下文里,而不会涌入你的主对话。你的主会话因此保持专注、清爽。
第 2 步 / 共 5 步 · 为什么用、何时用
当一个任务相对自成一体、而你只关心结果、不关心中间那些嘈杂的过程时,就该考虑子智能体。根据官方文档,子智能体可以帮你:
- 保护上下文——把探索和大量输出挡在主对话之外。
- 施加约束——限制子智能体可以使用哪些工具(例如一个只读的审查者,不带 Write 或 Edit)。
- 复用配置——把一个工作者定义一次,便可在各个项目中重复使用。
- 专注行为——给它一段聚焦于某一领域的系统提示词。
一个经验法则:需要频繁来回、迭代修改的快速改动,留在主对话里做;而当工作会产生你不需要保留的冗长输出、或你希望施加特定的工具限制时,用子智能体。
第 3 步 / 共 5 步 · 用 /agents 创建一个
创建和管理子智能体的推荐方式是 /agents 命令。在 Claude Code 会话中运行:
/agents这会打开一个分页界面。切换到 Library(库)标签页,选择 Create new agent(新建智能体),然后选择一个作用范围:
- Personal(个人)会把它保存到
~/.claude/agents/,从而在你的所有项目中都可用。 - Project(项目)会把它保存到当前仓库的
.claude/agents/,这样你就能把它纳入版本控制并与团队共享。
随后 Claude 可以根据你用自然语言写的描述,为你生成标识符、描述和系统提示词,接着你再选择该子智能体应使用的工具和模型。保存之后,子智能体立即可用。
第 4 步 / 共 5 步 · 文件格式(一个 code-reviewer 示例)
在底层,每个子智能体其实就是一个带 YAML frontmatter 的 Markdown 文件。其中只有 name 和 description 是必填的;正文部分会成为子智能体的系统提示词。下面是官方的 code-reviewer(代码审查者)示例——一个无法修改你文件的只读审查者:
---
name: code-reviewer
description: Expert code review specialist. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---
You are a senior code reviewer ensuring high standards of
code quality and security.
When invoked:
1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately有几点值得了解:
tools是可选的——省略它,子智能体便会从主对话继承全部工具;像上面那样列出工具,则会把它限制为仅这些。model默认为inherit(与你的会话使用同一模型)。你也可以设为sonnet、opus或haiku。description决定了 Claude 何时去委派任务。加上 “use proactively”(主动使用)会鼓励它自行调用该子智能体。
第 5 步 / 共 5 步 · 调用它,然后检查点与本节回顾
子智能体一旦存在,Claude 往往会根据它的 description 自动委派任务。你也可以显式调用——只需用自然语言点名它:
用 code-reviewer 子智能体看看我最近的改动要确保某个特定的子智能体被运行,可以用 @ 提及它(输入 @,再从列表中选择,就像 @ 文件一样)。Claude 会进行委派,子智能体在隔离环境中完成工作,最后只把摘要返回给你。
本节回顾
- 子智能体:拥有独立上下文窗口、系统提示词和工具的专门助手,只返回一份摘要。
- 为什么用:保护主上下文、施加工具限制、复用并专门化工作者。
/agents:创建和管理它们的推荐方式;可选 Personal(~/.claude/agents/)或 Project(.claude/agents/)。- 格式:Markdown + YAML frontmatter——只有
name和description必填,正文即系统提示词。 - 调用:靠
description自动委派、点名调用,或用@提及。
常见问题
Claude Code 里的子智能体是什么?
子智能体是 Claude Code 可以委派子任务的专门助手。它运行在自己独立的上下文窗口中,拥有自己的系统提示词和自己的一套工具,独立完成工作,并只把一份摘要返回给你的主对话。这样就能把冗长的输出——日志、搜索结果、整页文件内容——挡在主会话之外。
我该在什么时候用子智能体,而不是主对话?
当工作相对自成一体、会产生你不需要保留的冗长输出,或当你想施加特定工具限制(比如一个只读审查者)时,就用子智能体。而快速、有针对性的改动,或需要频繁来回的任务,则留在主对话里——因为子智能体是从零开始的,可能需要一些时间来收集上下文。
我如何创建一个子智能体?
推荐方式是在 Claude Code 会话中使用 /agents 命令。打开 Library(库)标签页,选择 Create new agent(新建智能体),挑选 Personal(保存到 ~/.claude/agents/)或 Project(保存到 .claude/agents/),让 Claude 生成提示词,再选择工具和模型。你也可以手写这个 Markdown 文件——frontmatter 中只有 name 和 description 是必填的。
子智能体可以用不同的模型或更少的工具吗?
可以。model 字段接受 sonnet、opus、haiku 或 inherit(默认值——与你的会话使用同一模型)。tools 字段限制子智能体可以使用哪些工具;如果省略它,子智能体会从主对话继承全部工具。
我怎样确保某个特定的子智能体被运行?
用自然语言点名它(例如“用 code-reviewer 子智能体……”),Claude 通常就会委派。要确保万无一失,就用 @ 提及该子智能体——输入 @,再从列表中选择,就像 @ 一个文件那样。你完整的消息仍然会发给 Claude,由它来撰写子智能体的任务提示词;@ 提及只控制调用哪个子智能体。