ツール使用と AI エージェント——Function Calling・ReAct・MCP
レッスン7:ツール使用と AI エージェント——Function Calling・ReAct・MCP
このレッスンで学ぶこと
- Function Calling / Tool Use の仕組みを理解する
- ReAct(Yao et al. 2022)パターンを押さえる
- AI エージェントの 5 つの構成要素を整理できる
- Model Context Protocol(MCP)の役割と意義を把握する
- 「自律性のレベル」と運用上の境界を判断できる
前回までのレッスンで、プロンプトエンジニアリングの基本と高度な推論パターンを扱いました。今回は、プロンプトの応用編として、LLM が「外の世界」と相互作用する仕組み——ツール使用と AI エージェント——を学びます。2024 年 11 月に Anthropic が公開した Model Context Protocol(MCP)は、2026 年 6 月時点でこの分野のスタンダードになっています。
なぜ「ツール使用」が必要か
LLM 単体は、強力ですが限界もあります。
- 学習データのカットオフ以降の情報を知らない
- 計算は得意ではない(特に大きな数の計算)
- 外部システム(社内 DB、CRM、カレンダーなど)にアクセスできない
- リアルタイムの情報(株価、天気、ニュース)を取得できない
これらの限界を補うのが「ツール使用(Tool Use)」または「Function Calling」と呼ばれる仕組みです。
💡 ポイント 単体の LLM が「100 点満点で 70 点」だとしたら、ツール使用を組み合わせると「100 点を超える」ことができる場面が増えます。LLM 自身は得意でない計算・検索・操作を、外部ツールに委譲する発想です。
Function Calling / Tool Use の仕組み
主要な LLM API(OpenAI、Anthropic、Google)は、「ツール」を定義してプロンプトと一緒に渡せる API を提供しています。仕組みは次のように動きます。
動作の流れ
- アプリ側で「使えるツール」とその仕様(名前、説明、引数、戻り値の型)を定義
- LLM にプロンプトと一緒にツール定義を渡す
- LLM はプロンプトを読み、「ツールを使うべきか/そのまま答えるべきか」を判断
- ツールを使うと判断した場合、ツール名と引数を JSON で返す
- アプリ側でその指示に従ってツールを実行(API 呼び出し、DB クエリ等)
- ツールの結果を LLM に戻す
- LLM が結果を解釈して最終回答を生成
ツール定義の例
例:天気を取得するツールを定義する
{
"name": "get_weather",
"description": "指定された都市の現在の天気を取得する",
"parameters": {
"city": { "type": "string", "description": "都市名(例:東京)" },
"unit": { "type": "string", "enum": ["celsius", "fahrenheit"] }
}
}
ユーザーが「東京の天気は?」と聞くと、LLM は get_weather(city="東京") を呼ぶように指示し、アプリが実行、結果を LLM に戻す、という流れです。
Function Calling の効用
- LLM が学習データにない情報にもアクセスできる
- 計算・データ操作を外部に任せられ、ハルシネーションが減る
- 構造化された結果を後段で処理できる
⚠️ 注意 Function Calling は便利ですが、「LLM が呼ぶべきでないツールを呼ぶ」「引数を間違える」「結果を誤って解釈する」失敗パターンがあります。レッスン 5 で扱った評価セットと同じ発想で、ツール呼び出しの正しさも評価する運用が必要です。
ReAct(Yao et al. 2022)
ReAct は、Yao らが 2022 年に ICLR で発表した「ReAct: Synergizing Reasoning and Acting in Language Models」で提案された、Reasoning(思考)と Acting(行動)を交互に行うパターンです。
中核の発想
Chain-of-Thought の「思考」だけでなく、「行動」(ツール使用)と「観察」(結果の取得)を交互に挟みながら、複雑なタスクを解く
動作の例
「日本の人口を最新データで教えて、米国の何倍か計算してください」というタスク:
flowchart LR
T1[Thought:<br/>日本の人口を検索] --> A1[Action:<br/>web_search 日本 人口]
A1 --> O1[Observation:<br/>1.24 億人]
O1 --> T2[Thought:<br/>米国の人口も検索]
T2 --> A2[Action:<br/>web_search 米国 人口]
A2 --> O2[Observation:<br/>3.34 億人]
O2 --> T3[Thought:<br/>計算する]
T3 --> A3[Action:<br/>calculate 3.34/1.24]
A3 --> O3[Observation:<br/>2.69]
O3 --> F[Final Answer:<br/>米国は約 2.7 倍]
このパターンは、現代のほぼすべての AI エージェント実装の基礎になっています。
📝 補足 ReAct の重要性は、「LLM 単体ではできないタスクが、ツールとの相互作用でできるようになる」点にあります。一方、思考と行動の往復にトークンと時間を消費するため、コストとレイテンシは大きく上がります。
AI エージェントの 5 つの構成要素
AI エージェントは、ReAct を基盤に、さらに複数の要素を組み合わせた仕組みです。本コースでは次の 5 要素で整理します。
| 要素 | 役割 |
|---|---|
| ①観察(Observation) | 環境からの情報を受け取る(ユーザー入力、ツール結果、外部状態) |
| ②思考(Reasoning) | LLM が次にすべきことを判断 |
| ③行動(Action) | ツール呼び出し、回答生成、状態更新 |
| ④記憶(Memory) | 過去のやり取り・学習を蓄積 |
| ⑤道具(Tools) | 外部システム、関数、API への接続 |
これら 5 つを循環させることで、複数の段階を経るタスクを実行できます。
記憶の種類
- 短期記憶:会話履歴、現在のタスクの進行状況
- 長期記憶:ユーザーの嗜好、過去のタスクから得た学習(Reflexion 的)
- 共有メモリ:チーム全体で参照される知識ベース
行動の段階
- 単純なツール呼び出し
- 複数ツールの組み合わせ
- 人間への問い合わせ(確認、許可取り)
- 状態の保存と再開
💡 ポイント 「エージェント」と一括りに語られますが、実際は単純な ReAct ループから、複数 LLM が役割分担するマルチエージェント、組織的な階層構造まで幅があります。本コースは基本要素を扱い、応用は修了後の学習方向(レッスン 8)で案内します。
Model Context Protocol(MCP)
Model Context Protocol(MCP)は、Anthropic が 2024 年 11 月に公開した、AI エージェントとツール/データソースを接続する標準プロトコルです。2026 年 6 月時点で、AI エージェント開発の事実上の標準になっています。
解決する問題
MCP 登場前の状況:
- 各 LLM ベンダーが独自のツール定義仕様を持つ(OpenAI Function Calling、Claude Tool Use、Gemini 別仕様)
- 同じツールを複数の LLM で使うために、ベンダーごとに別実装が必要
- ツールのエコシステムが分断され、再利用性が低い
MCP はこれを「標準プロトコル」で解決します。
MCP の基本構造
- MCP サーバー:ツールを提供する側(例:GitHub・Slack・Google Drive など)
- MCP クライアント:LLM 側のアプリケーション
- プロトコル:両者の間のメッセージ仕様(JSON-RPC ベース)
MCP サーバーが一度実装されると、対応する任意の MCP クライアント(任意の LLM ベンダーを含む)から使えるようになります。
2026 年 6 月時点の状況
- Anthropic Claude、OpenAI、Google などの主要ベンダーが MCP サポートを表明・実装
- GitHub、Slack、Google Drive、Cloudflare、Notion などの主要サービスが MCP サーバーを公式提供
- 個人・社内開発者も独自の MCP サーバーを実装可能(OSS の SDK が多数)
- AI エージェント・フレームワーク(LangChain・LangGraph・AutoGen・CrewAI など)も MCP を統合
⚠️ 注意 MCP は事実上の標準になっていますが、まだ進化中です。仕様の細部やセキュリティ・認証の部分は今後変わる可能性があります。最新仕様は MCP 公式ドキュメント(modelcontextprotocol.io)を参照する必要があります。
「自律性のレベル」と運用上の境界
AI エージェントを業務に導入するときに最も重要な判断が、「どこまで自律させるか」です。
自律性のレベル(簡易な 4 段階)
| レベル | 内容 | 例 |
|---|---|---|
| L0 | 自律性なし、人手対応 | 既存業務 |
| L1 | 補助(人が確認) | LLM が下書き、人が承認 |
| L2 | 限定的自律(事前承認の範囲内) | LLM が定型業務を自動実行、結果を人に通知 |
| L3 | 自律(重要時のみ人に確認) | LLM が判断・実行、エスカレーション時のみ人 |
| L4 | 完全自律 | LLM がほぼすべてを担う |
業務での適切なレベル選択
- 顧客対応:基本 L1 〜 L2(誤回答が顧客信頼を損なうため)
- データ集計・整形:L2 〜 L3(影響範囲が限定的)
- 重要な意思決定:L0 〜 L1(人が責任を持つ)
- 開発・コーディング補助:L1 〜 L2(人がレビュー)
- 探索的調査:L2 〜 L3(誤りがあっても修正可能)
自律性を上げるときの判断軸
- 可逆性:間違えても元に戻せるか
- 影響範囲:誰に・どれだけ影響するか
- 検証の難度:人手で結果を確認できる難しさ
- 失敗のコスト:金銭・時間・信頼の損失
💡 ポイント 「AI エージェントは完全自律で動くべき」という極論も「常に人が介在すべき」という極論も、実務では両方とも非現実的です。タスクの可逆性・影響範囲・検証の難度・失敗のコストで、適切なレベルを設計するのが運用の中核です。
AI エージェント・フレームワーク
2026 年 6 月時点で、AI エージェントの構築に使える主なフレームワークを紹介します。本コースは特定推奨しませんが、選択肢として知っておくと有用です。
| フレームワーク | 特徴 |
|---|---|
| LangChain | エコシステム最大、汎用性が高い |
| LangGraph | グラフベースのエージェントワークフロー、状態管理に強い |
| AutoGen | Microsoft 系、マルチエージェント・会話型 |
| CrewAI | ロール定義型マルチエージェント |
| LlamaIndex | RAG とエージェントの統合に強い |
| Anthropic Agent SDK | Claude に特化、シンプル |
選択は組織の技術スタック、要件、運用体制によります。
📝 補足 フレームワークは数か月単位で進化と淘汰が進んでいます。「2026 年 6 月時点」と日付を意識して、最新の状況を確認しながら選定するのが安全です。MCP がベースプロトコルとして広がりつつあるため、「MCP 互換」を最低条件にしておくと、フレームワーク変更時の移行が楽になります。
講師の現場メモ:エージェント導入で「自律性を 1 段下げた」話
私(西脇)が独立後に支援した、ある中小企業のカスタマーサポート自動化の話です。最初の構想は「問い合わせを完全自律でエージェントが処理する」(L4)でした。経営陣の期待は「人件費を半分にする」というシンプルなものでした。
私たちは PoC(概念実証)として、L4 の完全自律エージェントを構築しました。Function Calling で社内 DB から顧客情報を取得し、ナレッジから回答を生成し、メールを送信する、という構成です。
評価セット 100 件で測ったところ、
- 完全自動回答できた:80 件
- ハルシネーションあり:8 件
- 業務外問い合わせ:5 件
- 苦情にエスカレ必要:7 件
8 件のハルシネーションには、誤った返金額の通知、存在しない製品仕様の説明、有償サポート契約の存在しない約束、などが含まれていました。これらが顧客に届くと、企業の信頼を直接損ねます。
私は経営陣に、「L4 完全自律は危険すぎる。L2(限定的自律、人が承認)に下げましょう」と提案しました。具体的には、
- 簡単な FAQ(製品仕様、営業時間など):L3(自律で送信、ログのみ確認)
- 個別案件への対応:L2(エージェントが下書き、人が承認して送信)
- 苦情・トラブル:L1(エージェントが状況整理、人がすべて対応)
この設計に変更後、
- ハルシネーション率:8% → 0.3%(人の承認で多くが食い止められる)
- 担当者の処理時間:1 件あたり 10 分 → 3 分(下書きがあるため早い)
- 担当者の人数:当初 5 名 → 3 名で運用可能(半分は実現せず、4 割減)
経営陣は当初の「半減」目標は達成できませんでしたが、信頼を損なうリスクを大幅に下げ、トータルで持続可能な運用になりました。
このときに改めて感じたのが、AI エージェントの「自律性のレベル」は技術的な選択ではなく、ビジネスのリスク管理であるということです。「L4 が最先端」「L1 は遅れている」のような単純な評価ではなく、タスクごとに適切なレベルを選ぶのが運用の中核です。
まとめ
このレッスンでは、以下のことを学びました。
- Function Calling / Tool Use:LLM がツール定義を読み、外部システムへの指示を JSON で返す。LLM の限界(学習データのカットオフ・計算・外部アクセス)を補う
- ReAct(Yao et al. 2022):Reasoning と Acting を交互に挟むパターン。現代の AI エージェントの基盤
- AI エージェントの 5 構成要素:観察・思考・行動・記憶・道具
- Model Context Protocol(MCP、Anthropic 2024 年 11 月):AI エージェントとツール/データソースを接続する標準プロトコル。2026 年 6 月時点で事実上の標準
- 自律性のレベル(L0〜L4):可逆性・影響範囲・検証難度・失敗コストで判断
- AI エージェント・フレームワーク:LangChain/LangGraph/AutoGen/CrewAI/LlamaIndex/Anthropic Agent SDK など複数。MCP 互換を最低条件に
- エージェント導入は技術選択ではなくビジネスのリスク管理
次の最終レッスンでは、業務応用の総仕上げとして、RAG(検索拡張生成)とプロンプト設計の接続、プロンプトインジェクション対策、Constitutional AI、プロンプトのバージョン管理、コース修了後の学習方向を扱います。
確認クイズ
このレッスンの理解度をチェックしましょう。