A
AIエージェントの仕組み
ch6-s2 · ReAct Pattern

ReAct パターン

約 15 分

この回のゴール

1. 背景: なぜ「考えさせる」と精度が上がるか

Chain-of-Thought (CoT) の発見 (Wei et al., 2022):

通常のプロンプト:

Q: 太郎は 3 個のリンゴを持っている。そこに花子が 7 個くれた。合計は?
A: 10 個

CoT プロンプト:

Q: 太郎は 3 個のリンゴを持っている。そこに花子が 7 個くれた。合計は?
A: 太郎は最初に 3 個持っていた。花子から 7 個もらったので、3 + 7 = 10。答えは 10 個。

CoT の方が精度が高い。特に数学・論理問題で顕著。理由: - LLM は 一度生成した文脈に続いて 次を生成する - 途中の推論を書き出す ことで「次の 1 手」が決めやすくなる - 人間でも 紙に書きながら考えると間違えにくい のと同じ

2. ReAct — CoT を行動と組み合わせる (Yao et al., 2022)

CoT は「思考だけ」。ReAct は:

Thought:    「太郎が持ってる数を知る必要がある」
Action:     lookup_person(name="太郎")
Observation: "太郎: リンゴ 3 個"
Thought:    「次は花子がくれた数」    ← 観測を踏まえて次の思考
Action:     lookup_transaction(...)
Observation: "花子 → 太郎: 7 個"
Thought:    「これで計算できる」
Action:     calculator(expression="3+7")
Observation: "10"
Thought:    「答えは 10 個」
Answer:     10 個

つまり:

Thought(考える) → Action(道具を使う) → Observation(結果を見る) を繰り返し、 最後に Answer を出す。

これが ReAct(\"Reasoning + Acting\")。

3. なぜ有効?

実験では、CoT(思考のみ) や Act-only より ReAct が 大幅に精度向上 しました。

4. Claude での実装

方法 A: プロンプトで促す

system プロンプトに:

回答する前に必ず以下の手順で進めてください:

1. <thought> タグで何を考えているか書く
2. 必要なら tool を使う
3. 結果を踏まえて <thought> で次を考える
4. 十分な情報が揃ったら <answer> で答える

これだけで Claude は ReAct 的に振る舞います。

方法 B: thinking block(Claude 4 系の機能)

Claude 4.5 以降、Extended Thinking(拡張思考) が搭載されました:

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={"type": "enabled", "budget_tokens": 4000},   # 👈
    messages=[...],
    tools=[...],
)

for block in response.content:
    if block.type == "thinking":
        print("思考:", block.thinking)   # 👈 内部思考が見える
    elif block.type == "tool_use":
        print("アクション:", block.name)

これは モデル内蔵の ReAct とも言えます。

5. 2 つの方式の比較

観点 プロンプト ReAct thinking block
対応モデル どれでも Claude 4.5+ (Opus/Sonnet)
思考の可視性 出力テキストに混在 専用の block で分離
出力制御 やや複雑 シンプル
精度 十分高い さらに高い
トークンコスト 出力に含まれる 別途課金

6. 思考はユーザーに見せる?


まとめ

この回の限界(次への動機)

ReAct で「賢く動く」ようにはなった。でもループが 無限に続いたら? トークン予算は? タイムアウトは? 👉 次回「状態管理と停止条件」で、暴走を防ぐガードレールを学びます。

参考文献

A
本家 Claude Academy で手を動かす
この回に対応する Anthropic 公式のレッスンです。ここは「なぜそう動くか」、向こうは「どう書くか」。サインインなしで読めます。
📝 理解度クイズ (3 問) 💡 ログインすると進捗が保存されます

💬 このサブステップの Q&A

まだ質問はありません。最初の質問を投稿してみましょう。

質問の投稿にはログインが必要です。