エージェントループノード

AI Agentノードの使い方(Agent Loop)

AI Agentノードの使い方(Agent Loop)

AI Agentノードの使い方(Agent Loop)

ノードの使い方を学ぶ - エージェントループノード

エージェントループ(Agent Loop)ノードは、ユーザーのリクエストを理解し、接続されたツール(Tool)の中から今必要なものを自ら判断して呼び出し、必要な瞬間に最終回答を生成するエージェントの中核ノードです。アビリティ(Ability)ではなく、エージェント(Agent)コンポーザーでのみ使用できます。

このチュートリアルでは、Web検索ツールとスリップボックス質問ツールをエージェントループノードにあわせて接続し、最新のWeb情報とスリップボックスに保存された社内文書の両方を活用して回答するチャットボットワークフローを作成し、チャットテスト(CHAT TEST)で実際に会話しながら結果を確認します。

事前準備

このチュートリアルを始める前に、プロジェクトでエージェント(Agent)を作成し、キャンバス(Canvas)に入る必要があります。キャンバスへの入り方は、🔗3ステップで始めるコアガイドをご参照ください。

また、このチュートリアルはスリップボックスに質問するツールもあわせて使用するため、プロジェクトにスリップボックスがあらかじめ構築されている必要があります。スリップボックスの構築方法は、🔗スリップボックスガイドをご参照ください。

このチュートリアルを完了すると、以下のことができるようになります。

  1. エージェントループノードに複数のツール(Tool)を接続し、エージェントが状況に応じたツールを自ら選択できるようにできます。

  2. LLM ModelFallback LLM Model接続ポイントにLLMノードを接続する方法を理解できます。

  3. チャットテスト(CHAT TEST)でエージェントと直接会話しながら動作を確認できます。

  4. デバッガーで、エージェントがどのツールを何回呼び出したか、実行過程を追跡できます。

ワークフロー概要




このチュートリアルの核心はエージェントループノードです。

エージェントループノードは、ユーザー入力(user_input)を受け取り、Toolsに接続されたツールの説明を読み取って、今必要なツールを自ら選択して呼び出します。ツールの呼び出し結果をもとに、必要であれば別のツールを追加で呼び出し、十分だと判断すれば最終回答(final_answer)を生成します。

ToolsLLM ModelFallback LLM Modelは値を入力する通常の入力欄ではなく、他のノードをエッジで接続するための専用の接続ポイントです。Toolsにはツールとして使うノードを、LLM Modelにはエージェントの判断に使うLLMノードを接続します。

あわせて登場するツールノードは、それぞれ次のような役割を担います。詳しい使い方は各ドキュメントをご参照ください。

  • DuckDuckGo Web Search:リアルタイムのWeb検索を実行するツールノードです。

  • スリップクエリノード:スリップボックスから関連文書を検索し、回答に活用するツールノードです。詳しくは🔗スリップクエリノードのドキュメントをご参照ください。

  • LLMノード:エージェントループノードとスリップクエリノードが内部的に使用するモデルを指定します。詳しくは🔗LLMノードのドキュメントをご参照ください。

エージェントループノード基本情報

エージェントループノードは以下の基本入力を提供します。

入力

必須

説明

user_input

必須

エージェントにリクエストするユーザー入力テキストです。

最大ステップ数

任意

エージェントループの最大反復回数です(デフォルト:10)。

最大実行時間

任意

最大実行時間(秒)です(デフォルト:120)。

最大過去会話数

任意

コンテキストに含める過去の会話の最大数です(デフォルト:10)。

最大観測文字数

任意

ツール結果ごとの最大文字数です。超過すると切り詰められます(デフォルト:8000)。

プロンプト内最大ツール数

任意

プロンプトに含める最大ツール数です。超過分は自動的に遅延読み込みされ、tool_searchで検索できます(デフォルト:10)。

変数追加ボタンをクリックすると、以下の任意入力を追加で接続できます。

任意入力

説明

chat_histories

エージェントとユーザーの過去の会話リストです。古い会話から新しい順で並び、渡さない場合はRoom Memoryから自動的に取得されます。

input_files

エージェントがアクセスするファイルです。file_id・S3 URL・data URL・HTTPS URLなどを受け取り、内部でdata URLに正規化されます。

agent_persona

エージェントの役割と性格を定義します。

agent_instructions

エージェントの行動ルールと指針です。空の場合はデフォルトの指針が適用されます。

response_guidelines

応答の形式とトーンに関するガイドラインです。

model_supports_vision

接続されたLLMモデルが画像入力に対応しているかどうかです。モデルが対応していないのにtrueに設定すると、プロバイダーAPIエラーが発生するため、モデルの公式ドキュメントで確認してから設定してください。

model_supports_audio

接続されたLLMモデルが音声入力に対応しているかどうかです。

model_supports_video

接続されたLLMモデルが動画入力に対応しているかどうかです。

エージェントループノードは以下の項目を出力します。

出力

説明

final_answer

エージェントが生成した最終回答です。

reasoning_steps

エージェントが判断しツールを呼び出した過程のデータです。

tool_calls

実際に呼び出されたツールの一覧です。

metrics

実行に関する指標です。

このチュートリアルではuser_inputのみを接続し、残りの基本入力はデフォルト値のまま使用し、任意入力は追加しません。

ステップ1:エージェントの作成

新しいエージェントを作成します。名前エージェントループノード説明自ら判断して行動するエージェントを入力します。

Deskエージェントに設定トグルは、クライアントアプリのDeskモードで実行され、Deskツールを使用できるようにする機能で、これによりエージェントがデスクトップ環境を制御できるようになります。このチュートリアルではオフのままにします。

ステップ2:スタートノード(Agent Input)の確認

Agent Inputノードをダブルクリックしてノードエディターを開きます。input_messageinput_filesmetadatasession_idの4つの入力変数が固定されており、直接追加・変更することはできません。

このチュートリアルでは、ユーザーがチャットで入力したメッセージが格納されるinput_messageをそのまま使用します。

ステップ3:エージェントループノードの追加

+ノード追加(Add Node)エージェントループノードをキャンバスに配置します。

ステップ4:ツールノードの追加(DuckDuckGo Web Search、スリップクエリ)

+ノード追加DuckDuckGo Web Searchノードとスリップクエリノードをそれぞれキャンバスに配置します。どちらもエージェントループノードの下に配置しておくと、この後のツール接続がしやすくなります。

スリップクエリノードをダブルクリックしてノードエディターを開き、スリップボックス公開UUIDで質問先のスリップボックスを選択します。このチュートリアルではAgentria Docsスリップボックスを選択します。

どちらのノードも、querysearch_queryのような実行時に埋められる入力変数は、あらかじめバインドしておく必要はありません。ノードをエージェントループのツールとして接続するだけで、エージェントが状況に応じた値を自ら埋めて呼び出します。

ステップ5:LLMノードの追加とモデルの選択

+ノード追加でLLMノードをキャンバスに配置します。LLMモデルAnthropic-claude-4.5-sonnet V1を選択します。残りの項目(最大トークン数、Sampling Temperatureなど)はデフォルト値を使用します。

ステップ6:ツールをエージェントループノードに接続

エージェントループノード下部のTools接続ポイントから、DuckDuckGo Web Searchノードのインピン(In-Pin)にエッジを接続します。同じ方法で、Toolsからスリップクエリノードにもエッジを接続します。

Toolsには複数のツールを接続でき、エージェントはユーザーのリクエスト内容に応じて、その中から適切なツールを自動的に選択して呼び出します。

ステップ7:LLMノードをエージェントループ・スリップクエリノードに接続

LLMノードをエージェントループノードのLLM Model接続ポイントに接続します。同じLLMノードをスリップクエリノードのLLM Model接続ポイントにも接続します。スリップクエリノードは関連するスリップを見つける過程で内部的にLLMを使用するため、エージェントループノードとは別にモデルの接続が必要です。

Fallback LLM Modelは、このチュートリアルでは接続しません。

ステップ8:エンドノード(Agent Output)の設定

Agent Outputノードをダブルクリックしてノードエディターを開きます。エージェントループノードのfinal_answeroutput_message出力変数にドラッグ&ドロップでバインドします。output_event_dataにはreasoning_stepsをバインドします。

ステップ9:チャットテストでワークフローを実行

チャットテスト(CHAT TEST)ボタンをクリックし、チャット入力欄に以下のメッセージを入力して実行します。

エージェントがWeb検索とスリップクエリの結果を組み合わせて「Agentriaとは?」で始まる回答を生成すれば、正常に動作しています。

右側のデバッガーパネルでは、エージェントが実行した過程を順番に確認できます。この例では、DuckDuckGo Web Searchを2回呼び出してWeb情報を検索した後、スリップクエリを1回呼び出してスリップボックスに保存された文書を参照し、その結果をまとめて最終回答を生成しました。

次のステップ

🎉 おめでとうございます!Agentriaを使って「エージェントループ」ワークフローを完成させました。

Toolsにさらに多くのツールを接続すれば、1つのエージェントが検索・文書照会・ファイル作成など、より多様な作業を状況に応じて自ら処理できるように拡張できます。

Agentriaは、アイデアを現実に変える可能性の空間です。

あなたのアイデア次第で、ワークフローは無限に広がります。

  • 他のノード活用例が気になる方は 🔗ノードの使い方 ページをご確認ください。

よくある質問

エージェントループノードは何をするノードですか?

エージェントループノードは、ユーザーのリクエストを理解し、接続されたツールの中から今必要なツールを自ら判断して呼び出し、十分な情報が集まると最終回答を生成するエージェントの中核ノードです。アビリティではなく、エージェントコンポーザーでのみ使用できます。

エージェントループノードにはツールをいくつまで接続できますか?

決まった数の制限はありません。ただし、プロンプト内最大ツール数(デフォルト10)を超えるツールを接続すると、超過分は自動的に遅延読み込みされ、tool_searchで検索して使用する方式で処理されます。

LLM ModelとFallback LLM Modelはどう違いますか?

LLM Modelは、エージェントが基本的に使用するモデルを接続する場所です。Fallback LLM Modelは、基本モデルの呼び出しに失敗した場合に代わりに使用する予備モデルを接続する場所で、必ず接続する必要はありません。

スリップクエリノードにもLLMノードを別途接続する必要がありますか?

はい、必要です。スリップクエリノードは、質問内容をもとに関連するスリップを見つける過程で内部的にLLMを使用するため、エージェントループノードとは別にLLM Model接続ポイントにLLMノードを接続する必要があります。同じLLMノードを複数の場所にあわせて接続してもかまいません。

チャットテストとノードテストはどう違いますか?

ノードテストは、ノード1つを単独で実行して入力と出力を確認する方法です。チャットテストは、エージェントワークフロー全体を実際の会話形式で実行する方法で、複数ターンにわたる会話の流れとツール呼び出しの過程を一度に確認できます。