SubAgent 是什么,适用于哪些场景?

考查重点:独立子目标与上下文分工。SubAgent 接明确子目标和独立上下文,多步执行后交回结果;适合可拆分工作,主 Agent 负责依赖、验证与汇总

本题目录

参考答案

核心回答

SubAgent 是由主 Agent 委派、负责一个明确子目标的 Agent 执行单元。它可以有专门的指令、工具和上下文,在内部多步调用工具、根据反馈继续处理,再把结果交回主 Agent;主 Agent 负责协调和最终交付。这里的“子”描述任务关系,不要求使用不同的大模型,也不要求另起一个进程。

它主要适合三类场景:一是子任务会产生大量搜索、文件或日志中间结果,主任务只需要结论和证据;二是不同领域需要不同工具和处理规则;三是多个方向可以相对独立地探索,再统一汇总。

例如研搜系统将公开网络信息、企业结构化数据、内部知识库查询分别交给三个业务专家,主 Agent 收集结果后组织回答和生成文件。若只是一次简单查询,或者各步骤必须频繁共享全部中间状态,直接调用工具或使用单 Agent 往往更合适,拆分后的通信与归并也要计入成本。

展开说明

1. 和普通工具、工作流节点有什么区别

工具提供一个明确的调用接口,例如搜索网页、读取文件或执行计算;SubAgent 在任务内部还可以判断下一步、选择工具并迭代,直到达到子任务的结束条件。框架可以把这种委派包装成一个工具,所以主 Agent 调用它时看起来仍是一次 Tool Calling,但内部执行的是一个 Agent 流程。

工作流节点则是编排单元,节点里既可以是普通函数,也可以调用模型、工具或完整 Agent。把流程拆成三个节点,或者给三次模型调用起不同名字,并不自动等于三个能独立处理子目标的专家。

在常见的主子委派模式中,主 Agent 把任务交出去,接回结果后继续处理用户请求;若把会话控制权转给另一个 Agent 继续直接服务用户,则更接近 Handoff。两者的会话和结果归属不同。

2. 一次委派需要说明什么

一个可执行的子任务,至少应说明目标、相关背景、范围、允许使用的能力、期望结果和停止条件。结果最好包含结论、证据位置、未解决事项与必要的产物引用,而不是只有一句“已完成”。

以研搜为参考,主 Agent 源码通过 subagents 注册了网络搜索、数据库查询和 RAGFlow 三个自定义业务专家;主 Agent 自己保留文件读取、Markdown 生成和 PDF 转换工具。三个专家分别配置名称、职责描述、系统提示词和业务工具,查询过程有不同的能力范围。

主 Agent 通过 task 工具指定 subagent_type 和任务 description。前者选择专家,后者说明这次具体要完成什么;专家配置里的职责描述,则帮助主 Agent 判断什么时候适合委派。以“调研某行业并生成 PDF”为例,主 Agent 可以将公开资料检索交给网络专家,接回信息后整理 Markdown,再调用 PDF 转换工具,完成交付。

在这一参考环境的 DeepAgents 运行时中,子 Agent 用本次任务描述开始自己的消息历史,完成结果作为与委派调用关联的工具消息返回。可共享的状态字段另有传递规则,因此“没有复制整段父对话”也不等于“所有状态绝不共享”。生产设计可以进一步把任务 ID、输入版本、截止时间和验收条件纳入委派契约。

3. 哪些任务值得拆,哪些不值得

值得拆的关键是子目标能独立完成,并且交回有限结果。 例如主 Agent 在规划代码改动时,让一个子 Agent 查找某接口的调用位置,交付文件路径、行号和依赖关系;大量文件读取过程不必长期占用主窗口。不同资料来源的独立调研,也适合分别探索后汇总。

若每一步都依赖另一个 Agent 尚未完成的中间推断,子任务需要不停同步,拆分就容易增加延迟、遗漏和重复工作。多个角色读取同一份材料、输出几段相似总结,也未必提供足够收益。应在同一批任务上比较结果质量、完整耗时、总 Token、重试和失败处理成本,而不能只看主 Agent 的窗口变短了。

拆分后还要控制共享写入。可以把代码修改、发消息、发布文件等动作交给明确的执行者,其他专家提供分析和建议;并行分支若修改同一资源,需要额外的冲突与版本处理。返回摘要也要保留关键条件和来源,主 Agent 应检查缺失、矛盾及验收结果后再使用。

常见追问

子 Agent 一定有完全独立的上下文吗?

独立任务上下文是常见设计,有助于减少无关历史和中间结果;具体继承多少内容取决于框架配置。当前 DeepAgents 文档默认使用 isolated 模式,也介绍可继承父对话的 fork 模式;后者是 0.7.13 起提供的 Beta 功能,使用前需要确认框架版本。需要独立探索时可传精简任务,需要接续父任务时可选择继承;不能只凭“SubAgent”这个名字推断其消息和状态全部隔离。

有独立上下文,就有独立权限和安全沙箱吗?

没有这种必然关系。上下文隔离控制模型看到什么,工具和底层凭据控制能访问什么,进程或容器等执行隔离控制运行范围。子 Agent 若拿到同一组高权限工具,仍可能访问同样的资源;需要由工具执行层和运行环境落实权限边界。

SubAgent 一定并行、一定更省 Token 吗?

不一定。存在依赖时要顺序执行,独立任务才适合并发,具体还取决于调度实现。子 Agent 可以减少主窗口中的原始中间结果,但增加了任务描述、独立推理和结果汇总,系统总 Token 可能更高。是否值得拆,应看实际任务收益和整体成本。

SubAgent 和 A2A 是什么关系?

SubAgent 描述主子任务组织方式;A2A 提供独立 Agent 服务之间交换任务、消息和产物的互操作规范。同进程中的主子委派可以直接由框架调用,需要跨服务协作时再考虑网络接口或 A2A,不能把两者当作同一个概念。详见A2A 协作。

对应教程

参考资料

  • 国内:JavaGuide:多 Agent 系统:参考独立执行者与 Prompt Chain 的区别、Supervisor 和 Handoff 的控制权,以及角色拆分的条件,明确 SubAgent 的任务关系。
  • 国内:zero2Agent:多 Agent 协作中的 SubAgent 设计:参考将大量中间搜索交给子任务、只返回结论与证据的场景,解释上下文管理收益;历史继承仍需按具体框架理解。
  • 国内:WeThinkIn:Agent 设计模式与工作流编排:参考角色输入输出、停止条件、共享写入责任和协作代价,说明拆分后还要解决哪些工程问题。
  • 国外:LangChain:Subagents:依据 DeepAgents 委派配置、task 工具及默认隔离与可选继承模式,说明正文中的具体框架行为;其中 fork 是 0.7.13 起提供的 Beta 功能。
  • 国外:Anthropic:How we built our multi-agent research system:借鉴主代理分派独立方向、子代理探索后汇总的实践及目标、边界、输出约定,说明正文中适用任务与协调成本。

相关面经

8 篇

小天才

AI 应用工程师(穿戴)
校招秋招一面
查看原面经 →
了解子 Agent 吗?什么场景需要?

水滴

AI 全栈工程师
校招秋招一面
查看原面经 →
你这个项目中用到子agent吗?就是一个简单的问答调用对吧?

平安健康保险

AI 应用开发工程师
秋招一面
查看原面经 →
什么场景需要subagent

哔哩哔哩(B站)

软件开发工程师(AI Coding)
秋招一面
查看原面经 →
为什么要派生子agent,子agent的有什么作用呢

佰聆数据

AI 应用开发工程师
实习一面
查看原面经 →
介绍一下A2A协议和SubAgent。
展开剩余 3 篇面经

快手

Data Agent
一面
查看原面经 →
了解subagent吗,subagent适用于什么场景

字节跳动

后端开发工程师
一面
查看原面经 →
对prompt,mcp,skills,subagent的理解

京东

后端开发工程师(AI)
暑期
查看原面经 →
什么情况下会用 subagent?

收录题集

5 个来源,共8 份题集

Agent 与自主系统

AMIT SHEKHAR · ai-engineering-interview-questions · 1 条原题

查看题集 →

编码Agent与AgentOS工程

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

AI 编程与编码 Agent 问答

Guide · JavaGuide · 5 条原题

查看题集 →
展开其余 2 条原题

Claude Code 常见问题

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

Agent与工具调用

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →
展开剩余 3 份题集

公司专题代表问法

Onefly · zero2Agent · 1 条原题

查看题集 →

多智能体协作:角色分工、通信机制与冲突仲裁

Onefly · zero2Agent · 2 条原题

查看题集 →

OpenClaw 教程面试题

Onefly · zero2Agent · 1 条原题

查看题集 →

相关题目

4 题