你有没有遇到过这种情况:让 Claude 帮你 review 代码,结果对话越来越长,上下文越来越乱,最后还把前面的需求给忘了?尤其是项目越做越大,这种情况就越明显。

其实 Claude Code 里有一个隐藏功能:Subagent(子代理)它可以让 Claude 像项目经理一样,把不同任务外包给不同的 AI 助手。

说实话,用了 Subagent 之后,我已经很少在主对话里做代码审查了。又省上下文,又不打断主任务,体验非常丝滑。

今天带你手把手完整实操一次,从 0 创建一个「代码审查专员」Subagent。

1、为什么普通 Claude 不够用?

用 claude 主agent 用的好好的,为什么要用 subagent 呢?

原因就是,你可以把 claude 想象成一个项目经理,他一个人要干所有的活(写代码、查Bug、写文档、做测试)。

这样他不仅累,而且容易搞混上下文,或者用昂贵的资源做简单的小事。

最明显的一个情况就是,你和 claude 聊着聊着,你就会发现上下文满了。

像 review 代码这种事情,其实不需要在我们主窗口去做,直接让一个子 agent 去做就可以了,当他review完,把结果通知我们就行了。这样完全不占用主进程的上下文。

对比来看就是这样:

1)普通 Claude:

全能员工

  • 又写代码

  • 又查 Bug

  • 又写文档

  • 上下文越聊越乱

2)Subagent:

  • 只干一件事

  • 上下文独立

  • 更专注

  • 更省 Token

简单说就是:普通 Claude = 万金油 ,Subagent = 手术刀 。一个什么都能做,一个专门把事做好。

所以,有了 Subagents之后,当遇到特定任务时,项目经理(Claude)会把任务外包给专门的子智能体去做。

2、Subagents 是什么

官方这么说的:

Subagents 是专门处理特定类型任务的 AI 助手。

每个子代理都在独立的上下文环境中运行,拥有专属的系统提示设置、特定的工具访问权限以及独立的操作权限。

当 Claude 遇到符合子代理描述的任务时,会自动将该任务委托给对应的子代理进行处理,子代理将独立完成任务并返回结果。

Claude 会根据每个子代理的功能描述来决定何时进行任务委派。

创建子代理时,请编写清晰明确的描述,这样 claude 就能准确判断何时调用该子代理。

说人话:

Subagents 就是给 Claude 请的临时工,而且每个临时工只干一件事。

主 Agent 负责统筹全局 ,Subagent 负责专项任务 。本质上是一个带独立记忆 + 独立权限的专职 AI 助手。

Claude Code 提供了多个内置子代理,包括探索型(Explore)、规划型(Plan)和通用型等。

我们也可以去创建自定义子代理去执行特定的任务。

下面红框这些都是内置的子代理

img

Claude 内置子代理举例:

内置的探索型子代理(Explore Subagent)

一个专为代码库搜索与分析优化的快速只读代理。

  • 模型:Haiku(响应迅速、延迟低)

  • 工具:仅读工具(无写入与编辑权限)

  • 用途:文件查找、代码检索、代码库探索

当 Claude 需要在不修改代码的情况下搜索或理解代码库时,它会将任务委托给 Explore 这个子代理。这样可以确保探索结果不会混入您的主要对话上下文中。

3、实战:创建一个代码审查 Subagent

subagent 是基于 markdown 文件的,只不过这个 Markdown 文件会包含 YAML 前置元数据,你可以手动创建,也可使用 /agents 斜杠命令快速生成。

下面我们以/agent 命令创建一个用户级子代理为例,这个子代理能够审查代码并提供优化建议

1)在命令行输入/agents

选择  Create new agent

img

2)选择子代理使用级别

  • 项目级别,仅限当前项目使用

  • 用户级别,所有的项目都可以使用

如果你经常在多个项目里用同一个子代理,建议选「用户级别」,一次配置,长期使用。

img

根据自己的需求任选一个,选择完之后会在对应的目录下生成 agents 这个目录

3)创建子代理方式

是通过 使用 Claude 帮你去生成 subagent ,还是你自己纯手动去配置

推荐选择使用 Claude去帮我们创建。

img

4)给子代理添加描述

给即将创建的 subagent 添加描述,这个 subagent 具体是干什么的,以及什么时候会被调用。

示例:

BASH

A code improvement agent that scans files and suggests improvements
for readability, performance, and best practices. It should explain
each issue, show the current code, and provide an improved version.

img

5)选择子代理使用的工具

  • 所有工具权限都提供

  • 只读工具权限

  • 编辑工具权限

  • 执行工具权限

  • 其他工具权限

根据自己的需要给这个 subagent 合适的工具权限。

例如:代码审查场景建议用「只读权限」,可以防止 AI 误修改代码。

小 tips:

如果你给 Subagent 开了编辑权限,一定要确认它的描述写得非常清楚,否则可能会误改你不想改的文件。

img

6)选择子代理使用的模型

可以指定一个模型,或者跟主对话使用同样的模型。

img

7)选择子代理背景颜色

为子代理选择背景颜色,便于您在界面中区分当前运行的是哪个子代理。

img

8)保存并运行

保存该子代理,无需重启即可立即生效。

在你的当前项目目录下,或者当前用户目录下的 .claude 文件夹下,就能看到 agents 文件夹和里面的 markdown 文件

img

我们现在就可以使用这个 subagent ,让他帮我们检查一下代码质量。

img

4、进阶技巧:后台执行

Ctrl + B 可以让 subagent 在后台执行。这样子代理在执行任务,但是并不影响主代理的使用。你可以继续和 claude 沟通,当 subagent 完成之后会自动通知你

img

说实话,Subagent 这个功能如果你不用,Claude Code 的价值至少少了一半。尤其是做中大型项目的时候,它真的能节省你很多时间。而且Subagent 的配置很简单,大家都可以动手去试一下。

那你最想用 Subagent 来做什么? 代码审查 ?自动测试 ?或者你现在已经在用 Subagent 做了哪些事情?

欢迎在评论区告诉我 ,如果觉得这篇文章有用,欢迎点赞 + 转发给身边的朋友 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐