ツールとしてのエージェント

既存のエージェントをツールとして使用できます。これにより、アクティブなエージェントは、会話を他のエージェントに引き継ぐことなく、他のエージェントの機能を利用できます。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.

制限事項

次の制限が適用されます。

  • エージェントは複数のエージェント アズ ア ツールを並行して呼び出すことができますが、同じツールを並行して呼び出すことはできません。
  • ツールをツールのルート エージェントに割り当てることはできません。