Skip to content

子智能体

模块编号: 8 · 难度: 进阶 · 预计时间: 1 小时

当项目变得庞大或者任务变复杂时,把所有事情都交给同一个 AI 会带来很多问题。

主对话的上下文会越来越长,导致反应速度变慢,甚至 AI 会开始遗忘之前的设定或者产生幻觉。为了解决这个问题,Claude Code 引入了子智能体,这是一种专门为你处理特定类型任务的独立助手。

什么是子智能体

子智能体 (Subagents) 是专门为你处理特定任务的独立 AI 助手。每个子智能体都有自己完全独立的配置:

  • 上下文窗口:它们不会跟你当前的主对话共享上下文信息。它们从零开始接收特定任务,这样能彻底杜绝上下文污染。
  • 工具访问权限:你可以限制它们只能使用特定工具。
  • 系统提示词 (System Prompt):它们可以拥有专属的系统指令,专注自己设定的目标。

因为子智能体是完全独立的实体,你可以让它们在后台并行工作。主流程无需等待,你可以继续处理其他事情,这样能大幅提升开发效率。

如何创建子智能体

创建子智能体非常方便,只需要写一个带有 YAML frontmatter 头的 Markdown 文件。它的专属指令用 Markdown 格式写在正文中,各种配置项写在开头的 YAML 里。

存放这些文件有两个推荐位置:

  • 项目级:放到项目根目录下的 .claude/agents/ 文件夹中。如果你希望全团队共享这些智能体,建议提交到 Git 仓库。
  • 全局级:放到系统用户目录下的 ~/.claude/agents/ 文件夹中。这里适合放一些你个人的专属私藏工具。

配置好文件后,在终端里使用 /agents 命令,就可以管理和查看所有已加载的子智能体。

核心配置选项

在 YAML frontmatter 中,你可以精细控制这个智能体的行为方式:

  • tools:定义它能调用哪些工具。通过限制工具可以防止误操作。打个比方,你可以做一个只读的搜代码智能体,只给它 ReadGrep 权限。
  • model:指定它使用的底层模型。做快速基础的总结时可以选 haiku,处理复杂逻辑时选 sonnetopus,也支持设为 inherit 继承主对话的模型设定。
  • effort:指定它解决问题的力度大小。
  • maxTurns:限制它最多跟工具交互多少轮次。设置这个参数能防止它遇到死胡同卡住,浪费计算资源。
  • memory:开启持久化存储后,它能记住以往处理同类任务的经验。
  • isolation: worktree:这是一个极具潜力的特性。开启它之后,智能体会切出一个独立的 Git 分支 (worktree) 去工作,绝对不会污染你当前的本地代码状态。
  • background: true:让它默认在后台运行,不会阻塞你当前的主对话窗口。

调用方式

有三种主要方式可以给智能体派发工作:

  1. 自动匹配:只要你在 YAML 文件里写好了准确的 description,Claude 会在遇到相关任务时自动判断,并把工作外包给最合适的智能体。
  2. 显式调用:在聊天输入框里打 @ 然后选择对应的智能体。比如输入 @"security-checker (agent)" 帮我检查这段代码有没有越权问题
  3. 自然语言调用:直接在对话里跟 Claude 下达指令。比如跟它说"让安全审查 agent 帮我过一遍最新改动"。

链式调用与内置 Agent

通过精心设计的指令,你可以把多个子智能体串联起来协同工作。

比如让"需求分析师"把一个大任务拆解清楚,然后发给"程序员"逐个写代码,最后转交"测试员"跑测试验证。这种协同流水线能处理非常复杂的业务需求。

Claude Code 本身也内置了一些常用的 Agent 供你直接使用或者借鉴:

  • general-purpose:一个通用的备用智能体,处理各种琐碎任务。
  • Explore:专门用于探索代码库找资料,不会轻易修改代码。
  • Plan:专门用于分析复杂问题,并制定详细的分步计划。
  • claude-code-guide:用来查询和解答关于 Claude Code 自身使用方法的智能体。

Agent Teams (实验性)

Agent Teams 是一种更高级的并发模式。它允许你同时拉起多个 Claude 实例并行工作。

比如当你要求覆盖测试整个项目时,系统可以瞬间启动五个子智能体,分别去测试五个不同模块的代码,最后把结果汇总给你。这对于大型代码库重构或者全面体检来说,效率提升极其明显。

模板区

这里为你准备了两个实用的智能体模板。将它们存入 .claude/agents/ 目录即可生效。

1. 严格的安全审查员 (只读)

这个智能体专门挑刺查安全漏洞,且被限制了修改文件的能力。你可以把它保存为 security-checker.md

yaml
---
name: security-checker
description: 专门检查代码安全性的代码审查助手
model: inherit
tools: [Bash, Read, Glob, Grep]
maxTurns: 15
---

# 角色设定
你是一个苛刻的顶级应用安全工程师。你的任务是对用户提供的代码或指定的文件进行安全审查。

# 工作流
1. 使用 Read 工具读取被审查的代码。
2. 重点排查SQL注入漏洞、XSS漏洞、硬编码密钥以及不安全的权限控制。
3. 如果发现问题,不要尝试自行修复。把问题整理成一份带行号的安全漏洞报告。
4. 如果没有任何问题,直接回复"代码看起来很安全"。

2. 独立沙盒实现者 (基于 Worktree)

这个智能体会自动开启新的 worktree 进行重构或者开发实验。你可以把它保存为 sandbox-dev.md

yaml
---
name: sandbox-dev
description: 在隔离的 worktree 分支中进行代码实验和实现
isolation: worktree
background: true
---

# 角色设定
你是一个激进但严谨的资深开发。你的任务是在隔离的环境中快速实现功能原型。

# 工作流
1. 仔细阅读并明确用户的需求目标。
2. 在这个独立的 worktree 中进行大胆的代码修改和编写。
3. 写完后,务必跑一下项目的本地构建或测试脚本,确认语法没有明显错误。
4. 完成后通知主对话,报告你改动了哪些文件,以及实现了什么具体效果。

测验

📝

测验时间

第 1/3 题
子智能体的核心优势是什么?

← MCP 服务器 · 下一个:进阶功能 →