微信扫码
添加专属顾问
我要投稿
ClaudeCode的SubAgent功能让AI像专业团队一样协作,轻松应对复杂任务拆解与执行。核心内容: 1. SubAgent的核心原理与团队协作式任务分解机制 2. 五大优势详解:从任务解耦到可靠性提升 3. 实战演示创建前端开发Agent的三步流程
你好,我是 hockor。
在之前的基础篇中我们了解到Claude code 新推出来的杀手锏功能 Sub Agent,它是为了解决 AI 多任务执行能力不足的问题而设计的,特别适用于:
类似于让 Claude 具备一个“临时招募专家团队”的能力,每个 sub agent 都是某方面的专家。
那么今天让我们一起来试试看这个 sub agent到底好不好用,怎么用。
Sub Agent,顾名思义,是将一个大型的、复杂的任务分解成若干个更小、更具体的子任务,并为每个子任务创建或分配一个专门的 AI 助手(即Sub Agent)来负责处理。每个子代理都拥有明确的职责、独立的上下文,并且可以配置特定的工具和指令,使其能够更专注于解决特定的问题。
我们可以将子代理的概念形象地比作一个项目团队:一个大型项目需要架构师、前端工程师、后端工程师、测试工程师等不同的角色协同工作。每个角色负责不同的方面,最终共同完成整个项目。子代理机制正是将这种协作模式引入到 AI 辅助编程中。
使用子代理能够带来以下显著的优势:
任务解耦与专注: 通过将复杂任务分解为小而精的任务,每个子代理可以更加专注于自己的职责,减少不必要的干扰,提高解决问题的效率。
专业化处理: 不同的子任务可能需要不同的专业知识和技能。我们可以为每个子代理配置特定的系统提示(System Prompt)和工具,使其更擅长处理特定的任务类型。
独立的上下文: 每个子代理拥有独立的上下文窗口,这意味着它们在处理各自任务时不会受到其他子任务历史记录的干扰,保证了上下文的相关性和准确性。
更好的可维护性和可追溯性: 将任务分解后,我们可以更容易地追踪每个子任务的进展情况,定位问题,并在需要时对特定的子代理进行调整和优化。
更高的可靠性和可预测性: 由于每个子代理的职责明确,我们可以更好地预测其行为和输出结果,从而提高整个任务的可靠性。
定义 sub agent 的方式有 2 种,一个是通过 Claude code 入口定义,一个是直接在 .claude/agents 目录下编写 md 文档,这里我们先看第一种,了解下大致的结构和内容。
在 Claude code 中输入 /agents
命令,此时会提示我们创建一个
比如我们这里输入:创建一个前端开发agent,用于完成界面开发、UI调整、按钮交互、接口调用、状态管理等工作
默认使用sonnet
即可,如果是一些简单任务,可以选择haiku
创建以后我们在当前项目的.claude/agents
目录下就能看到多了一个front-developer.md
的文档,这个文档内就详细描述了我们 agent 的基础定义和提示词
这个 md 文档的大致结构如下
---
name: frontend-developer
description: 对 agent 的大致描述
model: sonnet
color: green
---
角色的详细提示词
创建完成以后,你可以再次输入/agents
命令,继续创建新的 agent 或者是对已有的 agent 进行管理
既然 agent 的本质就是在 .claude/agents
目录下生成一个 md 文件,所以我们自己也可以按照上面的格式手动编写一个 markdown 文件。
当然,自己手动写肯定是很繁琐的,如果对于提示词工程不了解的话写出来的角色定义也不太好,那么伟大的 github 上肯定是已经有大佬帮我们整理好了的,我们只需要下载即可使用。
https://github.com/wshobson/agents
我们可以在这个仓库下找到很多角色的 agent 或者是编程语言方面的 agent
只需要下载下来以后放在你的个人或者项目的.claude/agents
目录下即可。
这里我们已经创建了一个前端的 agent,就再选择 2 个 agent,分别是服务端开发
和测试工程师
。
对应仓库内的文件分别是backend-architect.md
和 code-reviewer.md
此时我们再执行/agents
就能看到我们有多个了。
ps: 这里为了后续演示,我又创建了一个
产品经理
的 agent
接下来我们就让这几个 agent 帮我们实现一个 todolist 的站点。
我们的需求描述如下
请用 @product-manager设计一个类似于mac提醒事项的平台的完整架构,包括事项管理、标签、提醒时间等功能模块的划分和API设计,并产出需求文档到 docs 目录。
请用 @backend-architect实现该系统的后端服务,包括数据库设计、API设计等,数据库使用本地SQLite。
请用 @frontend-developer实现前端页面,使用 umijs 框架。
请用 @code-reviewer审查代码,确保代码质量和一致性。
backend-architect和frontend-developer 可以同时进行开发,但要保证接口联调没问题,最后让 code-reviewer开始介入审查代码
此时产品经理
就开始梳理咱们的需求了(可以看到我们的 agent 标识上就有了我们刚刚定义的颜色)
他会给我们输出一系列的需求文档和架构文档等
内容很详尽
输出完毕以后,服务端架构师就会开始编写服务端代码
同时前端开发工程师也会开始处理前端代码
等模块编写完成以后代码审查者
也会对核心模块进行审查
这里因为时间关系和 token 消耗我就没有全部执行了,感兴趣可以自己试试看。
上面我们提到 sub agent 有一个支持的特性是上下文隔离,那么如何理解这个东西呢, 在B站UP主 @小创作小创 的视频中,有一个例子,我们可以一起看一下,首先我们定义了一个讲笑话的agent,提示词如下
一个讲笑话的人,可以给人讲讲笑话带来快乐
---
name: joke-teller
description: Use this agent when the user needs humor, entertainment, or mood lifting through jokes and funny stories. Examples: <example>Context: User seems stressed or mentions having a bad day. user: 'I'm having such a terrible day at work' assistant: 'I'm going to use the Task tool to launch the joke-teller agent to help brighten your mood with some humor' <commentary>Since the user seems down, use the joke-teller agent to provide some uplifting humor.</commentary></example> <example>Context: User directly requests entertainment or jokes. user: '给我讲个笑话吧' assistant: 'I'll use the joke-teller agent to share some funny jokes with you' <commentary>User is directly asking for jokes, so use the joke-teller agent to provide entertainment.</commentary></example> <example>Context: Conversation has become too serious and could benefit from lightening the mood. user: 'This debugging session is driving me crazy' assistant: 'Let me use the joke-teller agent to add some humor to lighten the mood' <commentary>Technical frustration calls for some humor to relieve tension.</commentary></example>
model: sonnet
color: pink
---
You are a cheerful and witty joke teller whose mission is to bring joy and laughter to people's lives. You have an extensive repertoire of clean, appropriate jokes spanning multiple categories including puns, wordplay, observational humor, light-hearted stories, and clever one-liners.
write a joke IN ALL UPPER CASE to the end of the file "temp/joke.txt", also uotput the joke IN ALL UPPER CASE to the user
大致的定义如上,我们补充了最后一段内容,让他用全大写输出到 joke.txt 文件,同时也返回给用户一份。
但是当我们执行以后,却是这样子的效果
可以看到我们 joke.txt 文件中是全大写的,但是输出的用户的却是中文,这是为啥呢?
用 UP 主绘制的图来说就应该是这样子
我们在 CC 中对话的都是主 Agent
,而sub Agent
我们是没法直接操作的, 而且由主 Agent
负责调用,同理sub Agent
返回的内容也是需要经过主 Agent
的审查和翻译才会到用户的面前。
因为我上面是用的中文沟通的,所以这里其实main agent
是做了一些转换工作的。
这一点大家一定要切记。
可能很多人看完上面内容以后,感觉 Sub Agent和我们之前提到的自定义命令 功能上差不多,那么他们区别到底又是啥呢。
Sub Agent 是一种更高级、更复杂的策略,它本质上是一个拥有特定角色和职责的独立 AI。当主 Agent 遇到一个超出其能力范围或需要特定专业知识的子任务时,它可以将任务“委托”给一个 Sub Agent。你可以把它想象成一个团队中的专家成员。
优势:
劣势:
自定义命令 是一种更直接、更轻量级的方法。它允许你为 Claude 定义一组特定的、可调用的函数或指令。这些命令通常与外部工具或 API 绑定,让 Claude 能够与外部世界互动,比如执行代码、搜索网页、或者发送电子邮件。
优势:
劣势:
复杂度 | ||
专业化 | ||
任务类型 | ||
状态管理 | ||
集成方式 |
具体选择哪种方法取决于你的具体需求:
在实践中,两者甚至可以结合使用:你可以让一个 Sub Agent 在其专业领域内,通过调用自定义命令来完成其任务,从而实现更强大的能力。
ok。以上就是我们关于 Sub Agent
的全部内容,希望能对你有帮助,我们下一节再见~
原创不易,欢迎 点赞、转发、关注~
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-08-18
MCP运行机制与部署方式- AI模型部署与管理的核心协议
2025-08-18
AI厌恶还是AI欣赏?基于能力-个性化框架的元分析综述
2025-08-18
Manus“跑路”后的4个启示
2025-08-18
星巴克用AI省下上亿成本:揭秘巨头的数字化转型实战
2025-08-18
Embedding 与 Rerank 模型
2025-08-18
不容错过的超酷 MCP 服务器推荐
2025-08-18
AI变革将至|Appless World:当入口从“点开APP”变成到“跟AI说需求”
2025-08-18
AI应用从“工具”到“工作流”,下一个引爆点在多智能体系统?
2025-05-29
2025-05-23
2025-06-01
2025-06-21
2025-06-07
2025-06-12
2025-06-19
2025-06-13
2025-05-28
2025-07-29
2025-08-18
2025-08-18
2025-08-18
2025-08-15
2025-08-14
2025-08-14
2025-08-13
2025-08-13