🤖

プロンプトエンジニアリング - ReActに関して

2025/02/28に公開

背景

LLMマルチエージェントを使ったQAシステムのエージェント設計において、しばしば以下の課題が浮上します。

  • ユーザーとエージェントの会話の履歴を参考にせず、ユーザーの単発の質問に対して回答してしまう
  • 決め打ちのルールやフローに基づいて回答を行わせるため、急に話題が変わった質問や想定外の質問に弱い
  • 計算を間違える
  • ハルシネーション(それっぽい嘘)が発生する
  • ユーザーからの不明瞭、もしくは抽象的な質問に対して、自身で何の情報が足りないか補えない

これらをどうにか解消できないか調べた結果、「ReAct」という手法にたどり着きました。

ReActとは

2022年に発表された論文「ReAct: Synergizing Reasoning and Acting in Language Models」で紹介されている「推論(Reasoning)」と「行動(Acting)」を交互に繰り返して、精度の良い回答を得る方法(プロンプトエンジニアリング)です。

以下実際のプロセスの流れです。

  1. 思考(Thought):LLMが問題について、次に何をすべきか考える
  2. 行動(Action):思考に基づいて、具体的な行動(情報検索、計算などのツール)を実行する
  3. 観察(Observation):行動の結果を観察し、新しい情報を得る
  4. 上記の1.-3.を繰り返す

ReActを利用することで、以下の恩恵が得られます。

  • 複雑な問題を小さな問題に分解できる
  • LLMの思考プロセスを明示するため、人が解釈しやすい

活用事例

こちらのサイトや書籍が参考になりました
https://qiita.com/YutaroOgawa2/items/aca32f8fd7d551596cf8#08-react
https://www.ohmsha.co.jp/book/9784274233166/

所感

実際に試せていないので、試したら別で記事を書こうと思います。

他にもプロンプトエンジニアリング全般でいうと、以下のサイトに色々な手法がありました。
https://www.promptingguide.ai/jp

ヘッドウォータース

Discussion