既存のエージェントをツールとして使用できます。これにより、アクティブなエージェントは、会話を他のエージェントに引き継ぐことなく、他のエージェントの機能を利用できます。agent-as-a-tool場合、アクティブなエージェントは同期または非同期で呼び出すことができます。
複数の LLM とツールの呼び出しにより、エージェントがツールとして使用される際に顕著なレイテンシが発生する場合は、非同期動作を使用します。アクティブなエージェントはエージェントをツールとして呼び出すことができ、バックグラウンドで作業を実行します。アクティブなエージェントは、エージェントがツールとしてレスポンスを処理している間、エンドユーザーとの会話を続けることができます。作業が完了すると、エージェントがツールとして完了し、アクティブなエージェントがユーザー向けに調査結果を要約できます。
会話を別のエージェントに引き継ぐことなく、既存のエージェントの動作を再利用したい場合は、同期動作を使用します。
構成
エージェントをツールとして構成するには、エージェント ビルダーの右側にある通常のツール作成ボタンを使用するか、特定のエージェントのタイトルバーにある [エージェントをツールとして作成] コンテキスト メニューを使用します。
このツールには、次の構成項目が必要です。
- エージェント: このツールの対象エージェント。
- 名前: ツールの名前。
- 説明: ツールの説明(省略可)。
- [Advanced] > [Asynchronous]: 有効(デフォルト)の場合、ツールがバックグラウンドで実行されている間、アクティブなエージェントはセッションを継続します。
エージェント アプリケーションで音声モデルを使用する場合は、ツールとして使用するエージェントのテキストモデルを指定することをおすすめします。
- これにより、アクティブなエージェントがより小さく高速なモデルを使用している間に、より大きく低速なモデルを使用できるため、より複雑なワークフローが可能になります。
- 音声エージェント アプリケーションでは、エージェントがツールとして使用される場合を除き、エージェントのモデルをオーバーライドできません。
手順
非同期ツール呼び出しの手順を記述する場合は、次の点を考慮してください。
- 非同期ツールは、作業の開始時に「保留中」のレスポンスをすぐに送信できます。手順の中で、アクティブなエージェントにこの対応を処理してもらうとよいでしょう。
- エージェントに、回答の準備中であることをユーザーに伝えるよう指示するとよいでしょう。
- 待機中に同じツールを呼び出さないようにエージェントに指示します。
- エージェントがツールとしてユーザーに追加情報をリクエストすることがあります。
手順の例:
* 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.
制限事項
次の制限が適用されます。
- エージェントは複数のエージェント アズ ア ツールを並行して呼び出すことができますが、同じツールを並行して呼び出すことはできません。
- ツールをツールのルート エージェントに割り当てることはできません。