AI エージェントに少し込み入った調べ物を頼むと、途中で見当違いの方向へ進んだまま戻ってこないことがあります。
原因のひとつは、頭の中だけで筋道を立てて、外の情報で答え合わせをしないまま結論まで走ってしまうこと。
その弱点に「考える」と「動く」を交互に挟むことで対処したのが、ReAct(リアクト)と呼ばれる型です。
2022 年に発表され ICLR 2023 で採択された論文が出どころで、いまのエージェント実装の土台にもなっている考え方。
ReAct を知ると、エージェントのログの読み方が変わります。
推論だけでも、行動だけでも足りない
まず、ReAct が何と何を組み合わせたのかを整理しましょう。
ひとつは推論(Reasoning)で、代表例が思考の連鎖(CoT)です。
手順を言葉にしながら答えを組み立てる手法ですが、途中の思い込みを訂正する材料が外から入ってこないという限界があります。
もうひとつが行動(Acting)で、検索したり API を呼んだりして外の世界に触れる部分。
こちらは情報を取ってこられる代わりに、なぜその行動を選んだのかという判断の跡が残りません。
ReAct はこの 2 つを、Thought(考える)→ Action(動く)→ Observation(結果を見る)という 1 サイクルに畳んで繰り返します。
論文の言い方を借りると、推論の跡が行動計画の立て直しや例外処理を助け、行動が外部の知識源から情報を運んでくる、という相互作用。
つまり片方の弱点をもう片方が埋める構造になっているわけです。
論文が測った差は、思ったより大きい
効果はベンチマークで測られています。
質問応答の HotpotQA と事実検証の Fever では、シンプルな Wikipedia の API とやり取りさせるだけで、思考の連鎖に見られたハルシネーションと誤りの伝播が抑えられたと報告されました。
対話的な意思決定のベンチマークである ALFWorld と WebShop の結果はもっと分かりやすく、模倣学習や強化学習の手法に対して成功率で絶対値 34% と 10% を上回ったとあります。
しかも、与えたお手本は文脈内の 1〜2 例だけ。
学習し直したモデルではなく、プロンプトの組み方を変えただけでこの差が出た点は押さえておきたいところ。
ただ、数字以上に実務で効くのは別の性質だと感じました。
途中経過が人間の読める軌跡として残るので、あとから「どこで間違えたか」を追える。
エージェントを本番に置くとき、この解釈しやすさは信頼性の話に直結します。
いまのエージェントに残っているもの
ReAct の論文はプロンプトの工夫として書かれていますが、ループの形そのものは現在の実装にもそのまま残りました。
Action の部分を構造化して、モデルに関数名と引数を出力させる仕組みがファンクションコーリングでした。
そして Observation を次のサイクルへ持ち越すには、どこまでを文脈に残すかという設計が要ります。
運用でつまずきやすいのは、同じ検索を延々と繰り返してループが止まらないパターン。
対策としては、反復回数に上限を置く、観測結果を要約してから次に渡す、同じ行動の連続を検知して打ち切る、といった歯止めが一般的です。
もうひとつ意識しておきたいのが、Thought はモデルが生成した文章にすぎないという点。
もっともらしい理由付けが後から書かれることもあるので、監査したいときは Thought ではなく Action と Observation の実ログを見るほうが確実でしょう。
最後に
ReAct は、考える・動く・見るの 3 つを小さく回すという、言われてみれば当たり前の型でした。
当たり前に見えるのに効果が大きかったのは、それまで推論と行動が別々の研究テーマとして扱われていたから。
エージェントのログを眺めるときに「いまどのフェーズか」を意識するだけでも、挙動の読み方は変わってきます。
うまくいかないときは、Thought の質を疑う前に、Observation が十分な情報を返しているかを先に確かめたいですね。
参考: ReAct: Synergizing Reasoning and Acting in Language Models(arXiv) / Google Research Blog – ReAct
以上です。












コメントを残す