投稿者: | 2026年1月5日

「ReAct:言語モデルにおける推論と行動の相乗効果」(Yao et al., 2022)で導入されました。これはプロンプトの構成方法を根本的に変えました。それ以前は、主に以下の2つの極端な例が見られました。

・推論のみ(CoT):モデルは問題を徹底的に考えますが、リアルタイムデータにアクセスできません。事前学習済みの重みのみに依存するため、現在の出来事に関する幻覚に陥ります。

・動作のみ:モデルはツールを呼び出すことができます (また、呼び出すことが許可されています) が、中間ステップが意味を成すかどうかを確認せずに API 呼び出しを連鎖させるなど、盲目的に呼び出します。

ReAct は、シンプルだが重要な変更を提案します。2つをインターリーブします。

トライステートループ
ReAct パターンは、モデルを次の 3 つの特定の状態の連続ループに強制します。

1.思考:エージェントは現在の状態を分析し、今後の行動計画を書き留めます。これは先ほど説明したCoTスクラッチパッドです。

2.アクション:エージェントは、考えに基づいて外部ツール (search_googleまたは) を呼び出すための特定のコマンドを生成します。calc_math

3.観察(クリティカル):モデルが一時停止します。システムはアクション(コードの実行またはAPIへのアクセス)を実行し、出力を観察としてプロンプトにフィードバックします。

このフィードバックループにより、モデルは自己修正を行うことができます。API呼び出しが失敗したり、予期しないデータが返されたりした場合、次の「思考」ステップでエージェントは結果を偽造するのではなく、再試行することができます。


プロンプト: 「Amazon の創設者と Linux の創設者ではどちらが年上ですか?」

・思考: Amazonの創設者を特定し、生年月日を調べる必要があります。行動: Search[“founder of Amazon”] 観察:ジェフ・ベゾスはAmazonの創設者です。

・思考:ジェフ・ベゾスの誕生日を調べたい。行動: Search[“Jeff Bezos date of birth”] 観察: 1964年1月12日。

・思考: Linuxの創始者を特定し、生年月日を調べる必要があります。行動: Search[“founder of Linux”] 観察: Linus TorvaldsはLinuxの創始者です。

・思考:リーナス・トーバルズの誕生日を調べてみよう。行動:Search[“Linus Torvalds birthdate”] 観察:1969年12月28日。

・考え: 1964年は1969年より前なので、ジェフ・ベゾスの方が年上です。行動: Finish[“Jeff Bezos is older”]

ここで何が起こったか:モデルは事前に答えを知らず、最初に誰を探すべきかも知りませんでした。最初のステップで得た観察情報を基に、2番目のステップの思考を導き出しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です