AI・機械学習
中級

ReAct(Reasoning + Acting)(リアクトリーズニングアクティング)

LLMが推論(Reasoning)と行動(Acting)を交互に繰り返すことで、ツール使用や外部情報取得を伴うタスクを解くフレームワーク。

0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
LLM
エージェント
ツール使用
推論
AI

ReAct(Reasoning + Acting)とは

ReActは2022年にYao et al.が提案したLLMフレームワークで、「推論(Reasoning)と行動(Acting)を統合する」という考え方が名前の由来。LLMが外部ツール(検索エンジン・計算機・コードインタープリタ等)を使いながらタスクを解くための標準的な設計パターンとなっている。

LangChainやLangGraphのエージェント実装の根幹として採用されており、実用的なLLMアプリケーション開発において最も重要な推論フレームワークの一つ。

基本サイクル:Thought → Action → Observation

ReActの核心はThink-Act-Observeの繰り返しループ。

例: 「エッフェル塔の高さを調べてPythonで表示して」

  • Thought 1: 正確な高さを確認する必要がある
  • Action 1: Search["エッフェル塔 高さ"]
  • Observation 1: エッフェル塔の高さは330m
  • Thought 2: コードを書いて実行する
  • Action 2: PythonREPL["print(330)"]
  • Observation 2: 330
  • Final Answer: エッフェル塔の高さ330mを表示しました

LangChainでの実装

LangChainではcreate_react_agentでReActエージェントを構築できる。ツールリスト(DuckDuckGoSearch、PythonREPL等)とReActプロンプトテンプレート(hub.pull("hwchase17/react"))、AgentExecutorを組み合わせて使用する。max_iterations(デフォルト15)で無限ループを防止する。

ReActのプロンプト構造

ReActは特定のフォーマットでLLMに出力させる。Thought行で推論を記述し、Action行でツール名と入力を指定し、Observation行でツール結果を受け取る。最終的にFinal Answerで回答を出力する。

Chain of ThoughtとReActの比較

Chain of Thoughtは外部ツールを使用せず静的な内部推論のみ。ReActは外部ツールで動的に情報取得・計算でき、最新情報や複雑な計算が必要なタスクに対応できる。

重要な課題と対策

幻覚(Hallucination): 存在しないツールを呼び出したり、Observationを捏造する問題。→ 厳格なパース検証で緩和。ループ回避: 同じAction-Observationを繰り返す無限ループ。→ max_iterationsで防止。

ReAct vs. Function Calling

OpenAIのFunction Calling(Tool Use)はReActの考え方をAPIレベルで実装したもの。ReActがプロンプトエンジニアリングで実現するのに対し、Function Callingはモデルが構造化JSON形式でツール呼び出しを出力する。現代的なエージェント設計では両方を組み合わせて使用するケースが多い。

採用実績

LangChain AgentExecutor、Google Bard(初期実装)、Fixie.ai、AutoGPT、MetaGPTなど多数のLLMエージェントフレームワークがReActを基盤として採用している。2023年〜2024年にかけてLLMエージェントの事実上の標準設計パターンとなった。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/7