您可以將現有代理程式當做工具使用。 這樣一來,有效代理程式就能重複使用其他代理程式的功能,不必將對話轉移給其他代理程式。有效代理可以同步或非同步呼叫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.
限制
限制如下:
- 代理可以平行呼叫多個代理即工具,但不能平行呼叫相同工具。
- 無法將工具指派給工具的根代理程式。