Skip to content

MP01:Subagents / Agents as Tools

它解决什么问题

主 Agent 需要专业帮助,但仍需保持用户关系、全局目标和最终答案控制权。

核心定义

Specialist 被封装成有输入输出契约的可调用能力。Manager 像调用工具一样委派有限子任务,Subagent 不直接接管用户会话。

工作原理

Manager 选择 specialist、构造 Context Packet、等待 Result Packet,再决定继续调用、合成或澄清。子 Agent 不能自行扩大委派链。

架构视图

Architecture View
User -> Manager -> Specialist as tool -> Result Packet -> Manager -> User
Product View
User -> one assistant -> specialist work hidden/optional -> unified result

最小可运行实践

运行 examples/multi-agent/patterns.py 的 agents-as-tools 场景。相同客服任务分别采用 Manager、Router+Parallel、Handoff、Selector Group Chat、Swarm 与 Hybrid,Trace 明确记录控制权、发言者和终止原因。

正常场景

客服 Manager 调用政策 Agent 检查退款资格,再用统一语气向用户解释。

失败与恢复场景

Manager 把完整历史传给法律 Agent造成泄漏;按 tool schema 只传条款与必要事实。

什么时候使用

需要专业化或隔离,但希望一个 Agent 始终拥有最终答案时使用。

什么时候不要使用

Specialist 应直接与用户多轮交流或所有工作可由普通函数完成时不用。

Trade-offs

体验一致、合成集中,但 Manager 上下文与调用成本可能成为瓶颈。

产品视角

用户与业务问题

用户不需要在多个助手间切换即可获得专业结果。

产品价值

在保持统一入口下提高局部质量。

用户体验

默认只展示“正在检查政策”等业务进度;可选展示 Specialist 来源。

自主性边界

控制权转移必须是显式状态;任何 Agent 的工具权限、委派目标、步骤和全局预算均由 Runtime 强制。

数据与权限

每次调用或转移只传完成目标所需的 Context Packet;Handoff 前重新计算数据范围,不默认转发完整历史。

失败与降级

超时、无人可处理、发言循环或 Specialist 失败时,回到协调者、有限路由、部分结果或人工;保留已产生 Artifact。

产品指标

比较任务成功率、路由/转移正确率、轮数、协调 Token、P95 延迟、部分失败恢复率、用户重复描述率和单成功任务成本。

框架中的对应实现

OpenAI Agents SDK 的 Agent.as_tool、LangChain subagents 都对应此模式。

Supervisor、Modular Single、Handoff。

检查清单

  • 当前控制权属于谁?
  • 谁可以直接回复用户?
  • Context 在调用或转移时如何裁剪?
  • 是否有全局终止与委派预算?
  • 冲突和部分失败由谁处理?

延伸练习与参考资料

限制子 Agent 只能返回结构化资格判断,禁止直接写用户回复。