Agents as Tools
把专业 Agent 包装成主管 Agent 可调用的工具,主管保持对话控制并汇总结果。
学习目标
- 能说明Agents as Tools解决什么问题,以及何时适用。
- 能解释为什么“子 Agent 直接承担最终责任”是误区。
学习前需要掌握
背景与问题
一个主管可能需要请专家提取条款、翻译段落或检查数据,但仍要自己维护用户目标并组织最终答案。将专家封装成工具,可以让委派像其他工具调用一样具有输入、输出与失败边界。
这种模式适合可收敛的子任务。若专家需要直接与用户连续对话、接管后续流程,则应另外评估控制权交接,而不是把所有协作都藏在工具内部。
概念定义
Agents as Tools 让一个 Agent 作为另一个 Agent 的函数工具运行,用于有边界的专业子任务。
直观理解
负责人把分析任务交给专家,专家交回报告,但最终由负责人向用户汇报。
核心原理
主管为子 Agent 提供明确任务与必要上下文,子 Agent 在自己的指令和工具范围内运行,然后把结果返回主管。调用者保留顶层目标与最终回答责任;子 Agent 的输出只是待验证的中间结果。
好的子任务输入应限定范围与成功条件。例如“从这些段落提取付款期限,并附证据位置”比“研究一下合同”更容易验收,也更容易判断是否需要重试或补充资料。
返回契约应区分发现、证据、不确定性与失败状态。若专家没有找到期限,应明确返回未发现,而不是猜一个数值;主管也不应为了填满最终模板把空结果改写成确定结论。
嵌套运行需要独立预算、超时与父子追踪,权限仍由应用分配。子 Agent 不因被包装成工具就自动继承全部能力;取消顶层任务时,也要考虑如何终止正在运行的子任务。
案例:主管委派合同期限提取
用户要比较两份合同的付款安排。主管分别传入已获授权的条款片段,要求子 Agent 返回合同标识、付款期限、触发事件和原文位置。第一份写“验收后 30 天”,第二份只提“按补充协议执行”。
第二个结果应标记证据不足并请求补充协议。主管可以比较已知条件,但不能把第一份的 30 天复制给第二份。由于子任务只提取证据,最终比较与缺失说明仍由主管完成,不需要让两个专家分别向用户重复提问。
理解与实践步骤
- 定义专业 Agent
- 包装为具名工具
- 主管选择并调用
- 专家返回结果
- 主管验证并汇总
实际应用
- 研究摘要
- 领域分析
常见错误
- 子任务范围无限扩大,嵌套调用自己继续拆分却没有预算与停止规则。
- 专家返回没有证据位置和失败状态的长文,主管无法验证却直接引用。
- 把工具封装误当权限隔离,默认向子 Agent 传入全部历史和全部写入能力。
输入、输出与执行边界
输入
- 边界明确的子任务
输出
- 供主管使用的专业结果
能力
- 研究摘要
- 领域分析
安全风险与信任边界
把子 Agent 封装成工具后,调用方仍需限定输入、预期输出和可用操作范围。子 Agent 的解释是结果材料,不能自授更多权限;返回结论应附可核对证据,避免汇总者只凭自信语气接受错误。
性能与失败模式
一次表面工具调用可能在内部展开多轮模型与工具操作,成本不能只按外层调用数计算。应记录内部步骤、超时与失败状态,比较它相对普通确定性工具是否确实改善目标,而非只增加一层对话。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。