Agent(智能体)现在大家都已经耳熟能详了,甚至已经成为每天日常工作中必不可少的工具了。当你在工位上,习惯性的打开Cursor、Claude Code或者Codex,你就已经在用编程Agent帮你完成任务了。

那么,Subagents又是什么呢?顾名思义,直译过来就是子代理,或者子智能体。在Claude Code本身是个大的编码Agent前提下,再在内部创建多个具备专门领域知识、解决单一方向具体问题的Subagents。

Claude Code对于Subagents的定位是预先配置好的,能够实现特定任务的工作流程和改进上下文管理的子智能体。每个Subagents都有如下特征:

  1. 有特定的任务目标与专业领域知识

  2. 有独立于主会话的上下文窗口

  3. 可以独立配置特定的外部工具

  4. 需要一个指导其行为的自定义系统提示词

总结来看就是,专业就是事情交给专业的Agent来做,以及节省上下文空间。第一点的话会提高开发效率,比如我们针对一个开发任务,预先配置了需求分析专家、算法专家、开发专家、测试专家等多个Subagents,在Vibe Coding时,提示Claude Code根据任务需求将具体的需求分析、算法设计、开发和测试任务指派给对应的Subagent,协助完成项目的开发。

其次就是节省上下文空间。对于AI Agent来说,上下文管理的好坏决定了这款Agent是否好用。虽然Agent的上下文窗口大小由大模型决定,但Agent在编排过程中,如何管理上下文,让大模型有限的上下文窗口发挥最大能力是重中之重。这里面,哪些信息该让模型看、怎么看、以什么形式看,是上下文工程(Context Engineering)的核心。

那么,如何在Claude Code创建和使用Subagents呢?非常简单,1分钟就可以配置好。

第一步,先在Claude Code中输入/agents打开Subagents配置界面:

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp

第二步,根据提示,选择Create new agent创建新的subagent。然后选择该Subagent是作用于项目层面还是用户层面。

第三步,定义这个Subagent的专业领域和系统提示词、工具选择、模型选择、特殊配色。比如,我这里定义了一位用于需求分析的软件产品专家。

定义Subagent的专业领域和系统提示词:

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.png

工具选择:

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp

模型选择:

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp

特殊配色:

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp

第四步,保存和使用。上述配置完成后,保存Subagent的相关配置,然后就可以在会话中进行调用了。

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp

这样,一个用于产品需求分析的专用Subagent就配置好了。我们可以继续使用/agents检查当前配置了哪些Subagent:

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp

在Vibe Coding时,可以直接在提示词中要求Claude Code使用相关Subagents完成任务。

使用product-requirments-analyst subagent进行需求分析;使用code-reviewer subagent进行代码审查。这样,Claude Code在执行任务时,就会适时地根据任务需要来调用相关Subagent,并在调用时用之前选配的高亮颜色显示,表明使用了该Subagent来执行任务。

640_wx_fmt=png&from=appmsg&tp=webp&wxfrom=5&wx_lazy=1.webp