AIエージェント活用実践編単一エージェント実装 — ReAct ループの基本

ReAct ループとは何か

無料公開レッスン / 読了目安 6


学習のねらい

前章では、LLM を活用したシステム設計のパターンを学びました。特に「自律エージェント」は、LLM 自身が状況判断して動的に行動を決定する、人間のような振る舞いを特徴とします。 この自律エージェントの基盤となるのが、ReAct (Reason+Act) ループ です。 本レッスンでは、ReAct ループの基本的な仕組みを理解し、LLM がどのように「思考 (Thought) → 行動 (Action) → 観察 (Observation)」を繰り返してタスクを遂行するのかを学びましょう。

ReAct ループの概要

ReAct ループは、LLM が複雑なタスクをこなすための強力なフレームワークです。 人間が問題解決する過程に似ており、具体的には以下の3つのステップを繰り返します。

  1. Thought (思考): LLM が現在の状況を分析し、次に何をすべきかを考えます。タスクの目標達成に向けて、どのような情報が必要か、どのツールを使うべきか、といった推論を行います。
  2. Action (行動): Thought で決定した内容に基づき、LLM が具体的な行動を起こします。これは、外部のツール (例: 検索エンジン、API、計算機など) を呼び出すことを指します。
  3. Observation (観察): Action の結果、ツールから返ってきた情報や、行動によって生じた変化を LLM が受け取ります。この観察結果が、次の Thought の入力となり、ループが続きます。

この「Thought → Action → Observation」のサイクルを繰り返すことで、LLM は与えられたタスクを段階的に解決していきます。

ReAct ループの例

例えば、「今日の東京の天気予報を教えて」というタスクがあった場合、ReAct ループは以下のように進行するでしょう。

  1. Thought: 「今日の東京の天気予報を知る必要がある。そのためには、天気予報ツールを使うのが適切だろう。」
  2. Action: 天気予報ツールを呼び出す。引数として「東京」を渡す。
  3. Observation: 天気予報ツールから「今日の東京の天気は晴れ、最高気温25度です」という結果が返ってくる。
  4. Thought: 「天気予報ツールから情報が得られた。この情報をユーザーに伝えればタスク完了だ。」
  5. Action: ユーザーに「今日の東京の天気は晴れ、最高気温25度です」と伝える (内部的な最終回答アクション)。
  6. Observation: (ユーザーに伝えた結果、タスクが完了したことを確認)

このように、LLM は外部ツールと対話しながら、自律的に情報を収集し、問題を解決していくことができます。

なぜ ReAct ループが必要なのか

LLM は非常に強力ですが、いくつかの限界があります。

  • 最新情報の欠如: LLM の学習データは過去のものであり、リアルタイムの情報 (例: 今日の天気、最新ニュース) を直接知ることはできません。
  • 計算能力の限界: 複雑な計算や厳密な論理推論は苦手です。
  • 幻覚 (Hallucination): 事実に基づかない情報を生成してしまうことがあります。

ReAct ループは、これらの LLM の限界を補うために、Tool Use (ツール利用) の仕組みと組み合わせて使われます。 LLM は「思考」を通じてこれらの限界を認識し、適切な「行動」として外部ツールを呼び出し、その「観察」結果を元に次の思考を進めることで、より正確で最新の情報を扱えるようになります。

ループ終了条件の設計

ReAct ループは、無限に続くわけではありません。タスクが完了したと判断できる条件が必要です。 一般的な終了条件としては、以下のようなものが考えられます。

  • 最終回答の生成: LLM がユーザーへの最終的な回答を生成したと判断したとき。
  • 最大イテレーション (繰り返し) 回数の到達: 無限ループを防ぐため、あらかじめ設定した Thought-Action-Observation の最大繰り返し回数に達したとき。
  • 特定のツールの呼び出し: 例えば、タスク完了を宣言する特別なツールを呼び出したとき。
  • エラーの発生: ツールが繰り返し失敗したり、回復不能なエラーが発生したりした場合。

これらの終了条件を適切に設計することで、エージェントは効率的かつ安全にタスクを完了できるようになります。

まとめ

ReAct ループは、LLM が「Thought (思考) → Action (行動) → Observation (観察)」のサイクルを繰り返すことで、複雑なタスクを自律的に解決するためのフレームワークです。 LLM の限界を補い、外部ツールと連携することで、より高度なエージェントを構築する基盤となります。 次のレッスンでは、この Action の核となる「Tool 定義」について詳しく見ていきましょう。

参考リンク


ReAct ループとは何か | AIエージェント活用実践編 第1章 - AI研修