子智能体是由父智能体调用来处理独立子任务的下级智能体。子智能体在自己的上下文窗口中运行,并使用自身附带的工具,然后将精简后的结果返回给父智能体。父智能体永远不会看到子智能体的中间步骤——只会看到最终答案。
使用子智能体可以让父智能体保持专注。对于耗时较长的研究、多工具探索以及专项审查步骤,如果将消耗大量标记的中间状态留在父智能体的上下文之外,效果会更好。
启用子智能体
在智能体构建器中,打开 高级设置 并开启 子智能体。这时会出现另外两个选项:
- 允许自我派生 - 开启后,智能体可以派生出自身的副本来并行工作。适用于扇出模式 (一个父智能体,多个相同的工作智能体) 。
- 附加子智能体 - 选择此父智能体可委派给的其他特定智能体。父智能体会在运行时根据任务决定调用哪个子智能体 (如果有) 。
保存。智能体运行时,会新增一个用于调用子智能体的工具。
子智能体有帮助的场景
- 研究类子任务 - 父智能体将复杂问题拆解后,把其中一部分交给专门处理该部分的子智能体,再综合各方回复。
- 工具密集型流程 - code interpreter 会话、多步骤网页搜索循环,或任何会因中间工具输出而占用父智能体上下文的工作。
- 专项审查 - 一个智能体负责生成,另一个负责审查,审查者的完整推理会保留在其自己的上下文窗口中。
不要为琐碎调用使用子智能体。交接会增加延迟并消耗更多标记。
子智能体与智能体链
子智能体是一种运行时委派机制——由父智能体根据实际情况动态决定。智能体链则是预先定义好的智能体图,并按固定顺序运行。路由是动态的时,适合使用子智能体;路由是固定的时,则适合使用智能体链。
限制
- 每个父智能体最多可列出 10 个子智能体。
- 从根智能体起,最大深度为 5 跳。
- 单次运行最多可加载 50 个唯一的子智能体目标。
- 每个请求最多可展开 100 个子智能体配置。
你引用的子智能体必须对运行父智能体的用户可见。无法解析到可访问智能体或已删除智能体的引用会被静默跳过——请将父智能体设计为能够妥善处理子智能体缺失的情况。