本文へスキップ
スキルアップカレッジ

ツール使用と 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 を提供しています。仕組みは次のように動きます。

動作の流れ

  1. アプリ側で「使えるツール」とその仕様(名前、説明、引数、戻り値の型)を定義
  2. LLM にプロンプトと一緒にツール定義を渡す
  3. LLM はプロンプトを読み、「ツールを使うべきか/そのまま答えるべきか」を判断
  4. ツールを使うと判断した場合、ツール名と引数を JSON で返す
  5. アプリ側でその指示に従ってツールを実行(API 呼び出し、DB クエリ等)
  6. ツールの結果を LLM に戻す
  7. 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、プロンプトのバージョン管理、コース修了後の学習方向を扱います。


確認クイズ

このレッスンの理解度をチェックしましょう。