ReAct Prompting
自律型AIエージェントを構築するためのReActプロンプトを探索しましょう。推論と行動が、LLMやUltralytics YOLO26のようなビジョンツールといかに連携するかを学びます。
ReAct(Reasoning and Acting)プロンプティングは、大規模言語モデル(LLMs)がステップバイステップの推論トレースとタスク固有のアクションを動的に組み合わせることを可能にする、高度なプロンプトエンジニアリングのパラダイムです。2022年の影響力のある学術論文"ReAct: Synergizing Reasoning and Acting in Language Models"で導入されたこの技術は、静的な言語モデルをインタラクティブなAIエージェントへと変換します。問題に関する思考を明示的に生成し、外部情報を取得するためのアクションを実行することで、ReActフレームワークは複雑な人工知能ワークフローにおける事実の正確性と意思決定能力を大幅に向上させます。
推論と行動のメカニズム#
従来のインタラクションでは、モデルは完全にその内部知識に基づいて応答を生成するため、LLMにおけるハルシネーションを引き起こすことがよくあります。ReActアーキテクチャは、思考(Thoughts)、アクション(Actions)、観察(Observations)の継続的なループを使用してAIを外部環境に接地(グラウンディング)させることで、この問題を解決します。
クエリに直面した際、モデルはまず戦略の概要を示す「Thought(思考)」を生成します。次に、検索クエリの実行、データベースとの対話、あるいは関数呼び出し(ファンクションコーリング)として知られる概念を通じたビジョンAPIの呼び出しなどの「Action(アクション)」をトリガーします。環境は事実データを提供する「Observation(観察)」を返します。モデルはこの新しい情報を評価し、推論を更新し、最終的な答えにたどり着くまでこのサイクルを繰り返します。ReActに関するプロンプトエンジニアリングガイドで詳しく解説されているこの手法は、人間の問題解決を模倣し、非常に透明性が高く制御可能なエージェントの振る舞いを確立します。
実社会での応用#
ReActプロンプティングは、反復的な問題解決と多段階のツール使用を必要とするシナリオで優れた性能を発揮し、現代のエージェント型AIシステムの基礎となります。
- 自動カスタマーサポートエージェント: エンタープライズ環境において、ITヘルプデスクのエージェントはユーザーの問題を解決するためにReActを使用します。ユーザーがネットワークの障害を報告した場合、エージェントはサーバーの状態を確認する必要があると推論します。診断APIを ping することでアクションを実行し、その結果を観測(観察)し、取得した事実に基づいてチケットのエスカレーションを行うか、トラブルシューティングガイドを提供することで、従来の検索拡張生成(RAG)パイプラインを合理化します。
- 動的ビジュアル分析: コンピュータビジョンシステムは、複雑な視覚的質問応答(VQA)にReActを活用します。在庫管理を任されたロボットエージェントは、棚を観察し、特定のアイテムを数える必要があると推論し、物体検出モデルを呼び出すことでアクションを実行し、返されたバウンディングボックスデータを使用してカウントを完了させます。この相乗効果により、テキストベースの推論と空間理解のギャップが埋められます。
コンピュータビジョンによるReActの実装#
Pythonを利用する開発者にとって、ReActエージェントは物理世界と対話するために知覚モデルをオーケストレーションすることがよくあります。以下の概念的なコードは、ReActの推論ループが、環境を観察して報告するための外部ツールとしてUltralytics YOLO26モデルをどのようにシームレスに展開できるかを示しています。
from ultralytics import YOLO
def vision_tool(image_path: str) -> str:
"""Action tool for a ReAct agent to detect objects in an image."""
model = YOLO("yolo26n.pt") # Load highly efficient YOLO26 nano model
results = model(image_path)
# Format the observation for the LLM's reasoning loop
detected_classes = [model.names[int(c)] for c in results[0].boxes.cls]
return f"Observation: Found {len(detected_classes)} objects: {', '.join(detected_classes)}"
# Simulated ReAct agent executing an action
agent_observation = vision_tool("https://ultralytics.com/images/bus.jpg")
print(agent_observation)これらビジョンツールのためのデータセット管理や実験追跡は、モダンなAIデプロイメントに向けた包括的なソリューションを提供するUltralytics プラットフォームを使用して完全に効率化できます。ゼロからこれらのエージェントを構築することに興味がある方は、公式のReActリポジトリにある基礎ロジックを学習することもできます。
関連概念の区別#
最近の学術的アライメント研究で探求されているような、ロバストなマルチモーダルアーキテクチャを設計するためには、ReActを関連するエンジニアリングパターンから区別することが極めて重要です。
- vs. 思考連鎖(Chain-of-Thought)プロンプティング: 思考連鎖(CoT)はモデルにステップバイステップで思考することを促しますが、完全に静的で内部的な知識に依存しています。ReActは、推論プロセス中に最新の外部観察を集める動的な「アクション」を注入することで、CoTを拡張します。
- vs. プロンプトチェイニング: プロンプトチェイニングには、あるステップの出力が次のステップに自動的に渡される、個別のLLM呼び出しのシーケンスをハードコーディングすることが含まれます。一方、ReActは、厳密に連鎖されたスクリプトに従うのではなく、単一のエージェントが進行中の観察に基づいてどのツールまたは順次アクションを取るべきかを動的に決定する、より自律的なパラダイムです。
論理的演繹と、マルチモーダルモデルのような特殊な外部ツールの実行を統合することにより、ReActプロンプティングは、高度な能力を持つ汎用AIシステムの開発を可能にします。






