Get Started

推論・行動 (ReAct) ノードの使い方

推論・行動 (ReAct) ノードの使い方

推論・行動 (ReAct) ノードの使い方

応用ガイドのチュートリアルでは、Agentria(エージェントリア)で構築できる、より多様なワークフローの構築手順を扱います。

本チュートリアルでは ReAct ノードを使用してエージェント(Agent)を構成し、チャットテスト(Chat Test)を実行します。

このチュートリアルを通じて、自ら判断して実行する ReAct エージェントのワークフローを作成してみましょう。


ReAct ノード


ReAct ノードは、言語モデルにおける「推論(Reasoning)」と「行動(Acting)」の研究に基づいて実装されたノードです。

ReAct ノードは、接続された ReAct ツール(Tools)の中から適切なノードを選択し、自ら判断して実行します。


研究論文は次のリンクの PDF を参照してください。


事前準備


開始するには、Agentria でプロジェクト(Project)を作成したあと、エージェントキャンバス(Canvas)へ進みます。

キャンバスへの入り方は、🔗3ステップコアガイド のステップ1(プロジェクト作成とコンポーザー選択)を参照してください。


本チュートリアルを完了すると、次の作業ができるようになります。

  1. ReAct ノードを使う

  2. 2つ以上のノードを接続する

  3. ReAct ツールノードを接続する

  4. エージェントワークフローを構成する

  5. チャットテストでワークフローの実行結果を検証する


ステップ1:入力変数



Agentria のキャンバスには、基本的に スタートノード(Start Node)エンドノード(End Node) がそれぞれ1つずつ配置されています。

  • スタートノードは全体のフローを開始します。

  • エンドノードは全体のフローを終了します。



エージェントのスタートノードには、チャットテスト用の入力変数がデフォルトで設定されています。

スタートノードをダブルクリックするとノードエディターが開き、そこで型と説明を確認できます。

キャンバスに戻ります。


ステップ2:ドラッグ&ドロップでノードを追加する



自ら判断して実行するノードを追加します。

ReAct ノードは、与えられた目標を達成するために、接続されたツール(Tools)の中から適切なものを自ら選択し、推論と行動を繰り返しながら実行します。

キャンバス下部の +ノード追加(Add Node) ボタンをクリックし、AI Agent カテゴリーから ReAct エージェント ノードをドラッグ&ドロップで配置します。


ステップ3:エッジでノードを接続する


1)基本構造



スタートノードで入力された変数を ReAct ノードで使用するには、2つのノードを接続する必要があります。

この接続線を エッジ(Edge) と呼びます。

スタートノード右側の アウトピン(Out-Pin) を ReAct ノード左側の インピン(In-Pin) にエッジで接続すると、スタートノードの入力値が ReAct ノードへ渡されます。


2)ReAct の構造



ReAct ノードの右側には、アウトピン(Out-Pin)の下にツールピン(Tool-Pin)があります。

アウトピン(Out-Pin) は処理結果を次のノードに渡すときに使用します。

ツールピン(Tool-Pin)ツールノード(tool_nodes) を接続するときに使用します。

ReAct にツールノードを接続すると、命令を実行するときに接続されたツールノードの中から適切なツールを探して活用できるようになります。


本チュートリアルでは、次の3つのノードをツールノードとして使用します。

  • Web Tools:DuckDuckGo Web Search ノード

  • Ability

  • AI Agent:長期記憶メモリ(Long-term Memory Reader)ノード


このとき、ツールノードは単一ノードのみ可能です。

複数ステップの流れをツール化したい場合は、アビリティとして作成してノードを単一化する必要があります。


アビリティノードは、あらかじめ作成したアビリティを 🔗API でデプロイ したあとに呼び出して使用できます。

本チュートリアルでは 🔗AI ノード活用(LLM) のワークフローを使用します。


ツールノードとして使用するノードをキャンバスに配置し、ツールピン(Tool-Pin) と各ツールノードの インピン(In-Pin) を接続します。


ステップ4:ツールノードを設定する


ReAct ノードは、ツールノードの名前と説明をもとに使用可否を判断します。

そのため、ノードの名前と説明を詳しく明確に書くほど、高い性能が期待できます。



ノードにマウスを合わせて編集アイコンをクリックすると、ノードのタイトルと説明を編集できます。

各ノードに適切な名前と説明を追加してください。

例:

  • DuckDuckGo Web Search Node

  • Today’s Fortune Ability Node

  • Retrieve Long-term Memory


ステップ5:ReAct ノードの変数をバインドする



Agentria では別途コードを書かなくても、ドラッグ&ドロップで変数を簡単に接続できます。

  • user_input:input_message

  • chat_histories:input_files


ステップ6:ツールノードの変数をバインドする


各ノードのアダプター変数に入力変数を接続します。


1)DuckDuckGo Web Search ノード


  • search_query:input_message


2)アビリティノード(AI ノード活用)


  • Name:input_message

  • BirthDay:input_message


3)長期記憶メモリノード


  • embedding_model:input_message

  • query:input_message


ステップ7:エンドノードを接続する



生成された ReAct の出力をエンドノードへ渡します。

キャンバスに戻り、ReAct ノードとエンドノードをエッジで接続します。

エンドノードをダブルクリックしてノードエディターを開くと、デフォルトで String 型の output_message アダプター変数を確認できます。

ここに ReAct ノードで生成した final_answer 変数を選択、またはドラッグ&ドロップで接続します。

これで「ReAct ノードを活用した判断型エージェント」ワークフローが完成です。


ステップ8:チャットテストでワークフローを点検する



キャンバス右下の CHAT TEST ボタンをクリックして、完成したワークフロー全体を実行できます。

エージェントテストは会話形式で進行します。

スムーズにやり取りできているかを確認しながらノードを修正し、機能を向上できます。


「今日の運勢」を確認するためにメッセージを送信します。

例:

私の名前は山田太郎で、誕生日は1999年10月10日です。私の名前と誕生日をもとに今日の運勢を教えてください。

運勢の定義を検索して。


ステップ9:会話生成プロセスを確認する



エージェントのチャットテストでは、エージェントの会話生成ロジックを確認できます。

エージェントの回答をクリックすると、右側に回答生成過程が含まれたノード別ロジックが表示されます。

この機能は、エージェントの詳細な性能改善作業に活用できます。


ReAct ノード > 出力変数 > reasonings で、ReAct ノードが自ら考えて判断していることを確認できます。


1)アビリティノードを使用



ReAct ノードがユーザーメッセージを「今日の運勢を生成してほしい」というリクエストとして認識します。

推論と行動のプロセスとしてアビリティノードを使用し、1つ目のメッセージに対する作業を実行します。


2)Web Search ノードを使用



ReAct ノードがユーザーメッセージを「運勢の定義を検索してほしい」というリクエストとして認識します。

推論と行動のプロセスとして Web Search ノードを使用し、2つ目のメッセージに対する作業を実行します。


次のステップ



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

チャットテストでさまざまなメッセージを入力して結果を確認し、ノードを修正しながらワークフローの性能を改善してみてください。


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

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