智能体即工具

您可以使用现有代理作为工具。 这样一来,活跃代理就可以重用另一代理的功能,而无需将对话交给另一代理。agent-as-a-tool可由活动代理同步或异步调用。

当作为工具的代理因多次 LLM 和工具调用而涉及明显的延迟时,请使用异步行为。活跃的代理可以调用作为工具的代理,并且会在后台执行其工作。 在代理即工具生成回答期间,有效代理可以继续与最终用户对话。工作完成后,作为工具的代理会完成任务,而活跃的代理可以为用户总结发现。

如果您只是想重用现有的代理行为,而不想将对话转交给其他代理,请使用同步行为。

配置

您可以使用代理构建器右侧的常规工具创建按钮,也可以使用特定代理标题栏中的将代理创建为工具上下文菜单,将代理配置为工具。

该工具需要以下配置项:

  • 代理:此工具的目标代理。
  • 名称:工具名称。
  • 说明:可选的工具说明。
  • 高级 > 异步:启用此选项(默认)后,当工具在后台运行时,有效代理将继续会话。

建议在代理应用使用音频模型时,为用作工具的代理指定文本模型

  • 这样一来,由于能够使用更大、更慢的模型,同时让活跃代理使用更小、更快的模型,因此可以实现更复杂的工作流。
  • 音频代理应用不允许您替换代理的模型,除非代理用作工具。

说明

在为异步工具调用编写指令时,请考虑以下事项:

  • 异步工具可以在开始工作时立即发送“待处理”响应。最好让活跃的代理在指令中处理此响应。
  • 指示智能体告知用户它正在生成回答,这很有帮助。
  • 指示代理在等待时避免调用同一工具。
  • 作为工具的智能体可能会向用户索要更多信息。

指令示例:

* You MUST acknowledge the user's request with a short, conversational
  word or phrase (e.g., 'Okay', 'Got it', 'One second') prior to
  calling asynchronous tools.
* For tools that execute asynchronously, ignore 'pending' results
  and continue conversing with the user while waiting for the complete result.
* NEVER notify the user that a function result is 'pending'.
* Do NOT call the same tool again while waiting for a complete result
  from a previous call of that same tool.
* If {@TOOL: your_agent_tool} has follow up questions for the user,
  be sure to relay the answers back to the tool.

限制

存在以下限制:

  • 一个智能体可以并行调用多个智能体即工具,但不能并行调用同一工具。
  • 无法将工具分配给工具的根代理。