ToolNavs 便利なAIツールを発見
ツール投稿 ログイン
戻るAI百科事典
Function Callingとは?MCPやプラグイン呼び出しとの本当の違い

Function Callingとは?MCPやプラグイン呼び出しとの本当の違い

AI百科事典 Admin 2 回閲覧

Function Calling は、大規模言語モデルが外部の機能を利用するための最も一般的な仕組みです。開発者はまず JSON Schema で「どんな関数があり、引数はどのような形か」を記述しておき、モデルは会話の途中でデータ取得や操作が必要になると、構造化された呼び出し要求を出力します。プログラムが実際の関数を実行し、その結果をモデルに戻すことで回答が続けられます。要点は一言で言えばこうです。モデルが決めるのは「何を呼び出すか、引数に何を入れるか」だけであり、実際にコードを実行するのは常にあなたのプログラムです。

何の問題を解決するのか

モデルは本来テキストを出力することしかできません。天気の確認、データベースの読み取り、注文といった「手を動かす」ことはできません。Function Calling はその間に橋を架けます。モデルは自然言語で要求を理解し、「どの関数を、どの引数で呼び出したいか」を構造化された形式で表現し、実行はプログラムに任せます。これこそツール呼び出しが成り立つ土台です。

Function Calling の一連の流れ

  1. 定義:リクエストに tools 配列を含め、各関数の名前、説明、引数の構造(JSON Schema)を記述します。
  2. 判断:モデルは外部機能が必要だと判断すると、直接回答せずに tool_calls(関数名+引数の JSON)を返します。
  3. 実行:あなたのプログラムが tool_calls を解釈し、実際の関数を呼び出します。API の呼び出し、データベースの読み取り、スクリプトの実行などです。
  4. 返却:実行結果を tool メッセージとして会話に戻し、モデルはそれをもとに最終回答を作ります。

主な構成要素

  • tools 定義:モデル向けの「関数マニュアル」。説明が明確なほど、引数の精度が上がります。description は人ではなくモデルに向けて書くものです。
  • tool_choice:モデルがある関数を「必ず呼ぶ/呼んでもよい/呼ばない」のどれにするかを制御します。auto、none、関数名の指定が一般的です。
  • 並列呼び出し:一度に複数の tool_calls を返し、一巡で複数の独立した用事を済ませられます。
  • 構造の制約:引数は正当な JSON でなければならず、型が間違っているとプログラム側でエラーになります。Schema の制約は厳格です。

ツール呼び出し・MCP・プラグイン呼び出しとの本当の違い

観点Function Callingツール呼び出しMCPプラグイン呼び出し
本質呼び出しの仕組み総称接続プロトコル機能の配布形態
ツールの定義者リクエスト内で開発者が定義場合によるMCP server が公開プラットフォームが提供
解決する問題モデルがどう呼び出しを始めるかモデルが外部機能をどう使うかツールをどう見つけ、統一的につなぐか機能をユーザーにどう届けるか

Function Calling は 2023 年に OpenAI が広め、現在は主要なモデルが互換実装を備えています。ツール呼び出しはもっと大きな枠で、Function Calling、コード実行、MCP ツールなどを内包します。覚えておくべきは一言です。MCPは「どうつなぐか」、プラグインは「どう配るか」、Function Calling は「どう呼び出し始めるか」を担います。三者は連鎖の関係であり、置き換え合うものではありません。プラグイン呼び出しとの境界も同じ考え方で整理できます。

境界と制限

  • 引数のハルシネーション:モデルは存在しない引数名をでっち上げたり、型を間違えたりします。プログラム側での検証は必須です。
  • トークンと遅延:呼び出しごとに会話が一往復増え、tools 定義自体もコンテキストを消費します。ツールが増えるほど高く、遅くなります。
  • 安全のレッドライン:データベースの削除、送金、一斉メール送信のような不可逆な操作をモデルに直接させてはいけません。重要な操作には人の確認を挟みます。
  • 対応度の差:Function Calling への対応の成熟度はモデルによって異なり、小さなモデルは「話すだけで呼ばない」ことや、形式を間違えることがよくあります。

よくある誤解

  • 「モデルが実際にコードを実行している」——違います。モデルが出力するのは呼び出し要求だけで、実行はあなたのプログラムの中で行われます。
  • 「Function Calling は MCP と同じ」——違います。MCP はプロトコル層であり、MCP が公開するツールも Function Calling のような仕組みを経由してモデルに使わせることができます。
  • 「Function Calling があればプラグインは不要」——プラグインはユーザーへの配布形態、Function Calling は開発者向けの仕組みであり、層が違います。
  • 「定義すればモデルは必ず呼ぶ」——デフォルトは auto で、モデルが必要ないと判断すれば呼びません。強制したい場合は関数名を明示します。

FAQ

Q:Function Calling は各社の API のツール引数と同じものですか?

A:同系統です。「モデルが構造化呼び出しを出力し、プログラムが実行する」という考え方は共通で、違うのはフィールド名やパッケージングです。移行時は主に定義の書き換えになります。

Q:すでに MCP を使っていますが、Function Calling も気にする必要がありますか?

A:必要です。MCP はツールをどうつなぐかを解決し、Function Calling はモデルがどう呼び出し始めるかを解決します。上流と下流の関係であり、二者択一ではありません。

Q:Function Calling でローカルスクリプトを呼べますか?

A:呼べます。関数はあなたのプログラムの入口にすぎず、裏側が API 呼び出しでもスクリプト実行でもデータベース参照でも、モデルは関知しません。モデルが言うのは「どれを、どの引数で」だけです。

関連記事

AI翻訳イヤホンは買う価値がある?まず海外利用と日常利用を分けて考えよう

AI翻訳イヤホンは買う価値がある?まず海外利用と日常利用を分けて考えよう

結論から言う:海外によく行き、外国人と接する機会が多い人には、専用のAI翻訳イヤホンは真剣に検討する価値がある。一年に一度も海外に行かず、単語調べや動画視聴程度の需要しかない人には、スマホアプリで十分...

ChatGPT Plus の期限切れで更新しないと、チャット履歴や GPT はどうなる?

ChatGPT Plus の期限切れで更新しないと、チャット履歴や GPT はどうなる?

Plus の期限が切れて更新しなければ、アカウントは無料プランに戻るだけです。チャット履歴はすべて残り、そのまま閲覧できます。自分で作った GPT も削除されませんが、ダウングレード後は新規作成や編集...

GraphRAGとは何ですか? なぜ文書全体にわたる問いに答えるのが得意なのか

GraphRAGとは何ですか? なぜ文書全体にわたる問いに答えるのが得意なのか

GraphRAGは、知識グラフと検索拡張生成を組み合わせた手法です。 まずドキュメントの集合からエンティティ、関係性、イベントを抽出して接続可能なグラフを形成し、その後グラフ内のコミュニティや階層別に...

AIガードレールとは何か?なぜセキュリティガードレールはシステムプロンプトだけに頼れないのか

AIガードレールとは何か?なぜセキュリティガードレールはシステムプロンプトだけに頼れないのか

AIガードレール(一般的にAIガードレールと訳される)は、モデルの入力、コンテキスト、ツール呼び出し、出力の周囲に設けられた制約や検出メカニズムを指します。これらは禁止品に対するシステムのプロンプトと...

おすすめツール

もっと見る