Skip to main content
实验性功能此功能目前处于实验阶段,API 可能会发生变化。如果您在使用过程中遇到问题,欢迎通过 GitHub Issues 反馈。

概述

Agent as Tool 允许将一个智能体注册为工具,供其他智能体调用。这种模式适用于构建层级式或协作式的多智能体系统:
  • 专家分工:主智能体根据任务类型调用不同的专家智能体
  • 任务委托:将复杂子任务委托给专门的智能体处理
  • 多轮对话:子智能体可以维护对话状态,支持连续交互

工作原理

当父智能体调用子智能体工具时,系统会:
  1. 创建子智能体实例:通过 Provider 工厂创建新的智能体实例
  2. 恢复对话状态:如果提供了 session_id,从 Session 中恢复之前的状态
  3. 执行对话:子智能体处理消息并生成回复
  4. 保存状态:将子智能体的状态保存到 Session,供后续调用恢复
  5. 返回结果:将回复和 session_id 返回给父智能体

快速开始

配置选项

通过 SubAgentConfig 自定义子智能体工具的行为:

多轮对话

子智能体支持多轮对话,通过 session_id 参数维护对话状态:
子智能体工具暴露两个参数:
  • message(必填):发送给子智能体的消息
  • session_id(可选):会话 ID,省略则开始新会话,提供则继续已有会话

持久化会话

默认使用内存存储(InMemorySession),进程重启后状态丢失。使用 JsonSession 可将状态持久化到文件:

工具组支持

子智能体工具可以像普通工具一样加入工具组: