代理即工具

您可以將現有代理程式當做工具使用。 這樣一來,有效代理程式就能重複使用其他代理程式的功能,不必將對話轉移給其他代理程式。有效代理可以同步或非同步呼叫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.

限制

限制如下:

  • 代理可以平行呼叫多個代理即工具,但不能平行呼叫相同工具。
  • 無法將工具指派給工具的根代理程式。