基本ループ:知覚→思考→行動→観察(ReAct)
エージェントの心臓部は「ループ」です。結論から言うと、多くのエージェントは**ReAct(Reasoning + Acting、推論しながら行動する)**という考え方にもとづき、「思考→行動→観察」を繰り返して目標へ近づきます。ReAct は 2022 年の論文「ReAct: Synergizing Reasoning and Acting in Language Models」で提案されたアプローチです。
ReAct の発想
それまでのLLMは「考えるだけ(推論)」か「行動するだけ」に偏りがちでした。ReAct はこの2つを交互に組み合わせる点が新しいところです。論文では、推論の記録(reasoning trace)が行動の計画を立てたり例外に対処したりするのを助け、行動(action)が外部の情報源とやりとりするのを可能にする、と説明されています。たとえば質問応答では外部APIに問い合わせることで、事実でない答え(ハルシネーション)を減らせるとされます。
ループの4ステップ
- 知覚(入力を受け取る): ユーザーの依頼や、前回の観察結果を読む。
- 思考(Reasoning): 「次に何をすべきか」を言葉で考える。
- 行動(Acting): ツールを呼ぶ(例: 検索する、計算する)。
- 観察(Observation): ツールの結果を受け取り、次のループの入力に加える。
この1〜4を、目標が達成されるまで回します。観察を毎回コンテキストに足していくのがポイントで、モデルは「これまで何をして何が分かったか」を踏まえて次を決められます。
擬似的な流れ
思考: 東京の人口を知りたい。検索しよう。
行動: search("東京 人口")
観察: 約1400万人(出典サイト)
思考: 数値が得られた。これで回答できる。
行動: finish("東京の人口は約1400万人です")
止めどきを決める(停止条件)
ループは放っておくと延々と続きかねません。そこで停止条件が要ります。代表例は、モデルが「完了」を宣言したとき、最大ステップ数に達したとき、同じ行動を繰り返して進まなくなったときなどです。Anthropic も、エージェントは停止条件や上限を設けて暴走を防ぐべきだとしています。詳しくはレッスン9で扱います。
まとめ
ReAct は「思考と行動を交互に行い、観察を取り込んで収束させる」基本ループです。これがエージェントの動作の核であり、ここに計画やメモリを足していくのが以降のレッスンです。