AIエージェントとツール使用 — 考えて、道具を使い、確かめる

単体の LLM は「一発で答える」だけ。しかし目標を与えて、自分で計画し、電卓や検索などのツールを呼び、結果を見てまた考えるループを回すと、ぐっと賢く振る舞います。この「観察→思考→行動」を繰り返す仕組み(ReAct)と、途中の誤りを自分で正す自己反省を、動かしながら理解します。

1. エージェントの正体 — 回り続ける「思考→行動→観察」

ふつうの LLM は質問に一度で返事をします。エージェントはそうではなく、思考(次の一手を計画)→ 行動(ツールを呼ぶ)→ 観察(結果を読む)という短いループを、目標に届くまで何周も回します。この推論と行動を交互に行う型を ReAct(Reasoning + Acting)と呼びます。

下のリングで、エージェントがどの段階にいるかが光ります。速度を変えたり1ステップずつ進めたりして、ループが回り続ける様子を見てください。

ReAct ループ — 目標に届くまで回り続ける
中央が LLM 本体。周囲を巡る光が今の段階です。思考で計画し、行動でツールを呼び、観察で結果を読む。中央の緑リングが一周ぶんの進みで、満ちると「目標達成」でループを抜けます。
POINT — ReAct = 推論と行動の交互 推論だけだと「もっともらしいが間違った答え」を作りがち。行動だけだと闇雲。考えてから道具を使い、その結果をまた考えることで、計算・検索・実行といった「自分にできないこと」を外部に委ねつつ、確かめながら前に進める。

2. 道具を選んで呼ぶ — ツール使用(function calling)

LLM は文章の続きを予測するのは得意でも、正確な計算・最新情報の取得・コードの実行は苦手です。そこで用途ごとのツールを用意し、エージェントが「どの道具を・どんな引数で呼ぶか」を選びます。呼び出した結果(観察)が次の思考の材料になります。

下で例を切り替えると、要求に応じて選ばれる道具が変わります。呼び出しの往復(要求を送り、結果が返る)を目で追ってください。

ツール選択 — 要求に合う道具へ委ねる
中央のエージェントが要求を読み、4つの道具(🔍検索/🧮計算機/🌐API/💻コード実行)から適したものを選んで呼びます。要求が飛び、道具が働き、結果が戻る往復を繰り返します。
注意 — ツールは「万能の外部脳」ではない 検索は誤情報を、コード実行は例外を返すこともある。返ってきた観察を鵜呑みにせず、次の思考で妥当性を吟味するのがエージェント設計の肝。道具に権限を与えるほど(ファイル操作・送金など)、安全側の確認が重要になる。

3. 推論と行動が積み上がる — ReAct トレース

実際の課題を解く様子を見てみましょう。「48 と 33 の合計の平方根は?」— LLM は暗算を間違えがちですが、エージェントなら計算機を2回呼んで確実に解けます。各ステップはそれまでの履歴すべてを踏まえて次の一手を決めます。

課題を選び、1ステップずつトレースが伸びる様子を追ってください。

思考・行動・観察のトレースが伸びていく
思考=計画、行動=ツール呼び出し、観察=返ってきた結果、回答=最終出力。1行ずつ積み上がり、最後の観察がそろった瞬間に答えが出ます。
at = LLM( 目標 ⊕ (思考, 行動, 観察)1..t−1 ) t 回目の行動 at は、目標とそれまでの全トレースを条件に決まる。だから履歴が伸びるほど文脈(コンテキスト)を消費し、誤った観察もそのまま蓄積される。

4. 自己反省で誤りを正す — Reflection

エージェントは間違えます。強力なのは、自分の出力や観察を振り返って誤りに気づき、やり直す点です。これを自己反省(Reflection / Reflexion)と呼びます。

下は「√(50 + 31) は?」(正解 9)。最初にエージェントは「31 を足し忘れて √50 を計算する」ミスをします。自己反省をオンにすると、そのミスに気づいて軌道修正し、正解にたどり着きます。オフだと誤答のまま終わります。

自己反省あり/なし — 誤答からの立て直し
自己反省の行が入ると、直前のミス(31 の足し忘れ)に気づいて計画を立て直します。オフのままだと 誤答 7.07 で終了。オンなら √81 = 9 に到達します。

5. まとめ — 自律的に動く LLM の骨格

一歩先へ — エージェントの発展形 複数のエージェントが役割分担して協調するマルチエージェント、まず全体計画を立ててから実行するPlan-and-Execute、外部ツールを標準化して接続するツール連携プロトコル(MCP など)へと広がっている。強力になるほど「どこまでの権限を与え、どう安全に監督するか」が中心課題になる。