Mascot Logo
ai-agents-tutorial

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 文件。其中只有 namedescription 是必填的;正文部分会成为子智能体的系统提示词。下面是官方的 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(与你的会话使用同一模型)。你也可以设为 sonnetopushaiku
  • description 决定了 Claude 何时去委派任务。加上 “use proactively”(主动使用)会鼓励它自行调用该子智能体。

第 5 步 / 共 5 步 · 调用它,然后检查点与本节回顾

子智能体一旦存在,Claude 往往会根据它的 description 自动委派任务。你也可以显式调用——只需用自然语言点名它:

用 code-reviewer 子智能体看看我最近的改动

要确保某个特定的子智能体被运行,可以用 @ 提及它(输入 @,再从列表中选择,就像 @ 文件一样)。Claude 会进行委派,子智能体在隔离环境中完成工作,最后只把摘要返回给你。

本节回顾

  • 子智能体:拥有独立上下文窗口、系统提示词和工具的专门助手,只返回一份摘要。
  • 为什么用:保护主上下文、施加工具限制、复用并专门化工作者。
  • /agents:创建和管理它们的推荐方式;可选 Personal~/.claude/agents/)或 Project.claude/agents/)。
  • 格式:Markdown + YAML frontmatter——只有 namedescription 必填,正文即系统提示词。
  • 调用:靠 description 自动委派、点名调用,或用 @ 提及。

常见问题

Claude Code 里的子智能体是什么?

子智能体是 Claude Code 可以委派子任务的专门助手。它运行在自己独立的上下文窗口中,拥有自己的系统提示词和自己的一套工具,独立完成工作,并只把一份摘要返回给你的主对话。这样就能把冗长的输出——日志、搜索结果、整页文件内容——挡在主会话之外。

我该在什么时候用子智能体,而不是主对话?

当工作相对自成一体、会产生你不需要保留的冗长输出,或当你想施加特定工具限制(比如一个只读审查者)时,就用子智能体。而快速、有针对性的改动,或需要频繁来回的任务,则留在主对话里——因为子智能体是从零开始的,可能需要一些时间来收集上下文。

我如何创建一个子智能体?

推荐方式是在 Claude Code 会话中使用 /agents 命令。打开 Library(库)标签页,选择 Create new agent(新建智能体),挑选 Personal(保存到 ~/.claude/agents/)或 Project(保存到 .claude/agents/),让 Claude 生成提示词,再选择工具和模型。你也可以手写这个 Markdown 文件——frontmatter 中只有 namedescription 是必填的。

子智能体可以用不同的模型或更少的工具吗?

可以。model 字段接受 sonnetopushaikuinherit(默认值——与你的会话使用同一模型)。tools 字段限制子智能体可以使用哪些工具;如果省略它,子智能体会从主对话继承全部工具。

我怎样确保某个特定的子智能体被运行?

用自然语言点名它(例如“用 code-reviewer 子智能体……”),Claude 通常就会委派。要确保万无一失,就用 @ 提及该子智能体——输入 @,再从列表中选择,就像 @ 一个文件那样。你完整的消息仍然会发给 Claude,由它来撰写子智能体的任务提示词;@ 提及只控制调用哪个子智能体。