Function Calling / Tool Use
LLM が外部の関数・API を呼び出して情報取得や処理を行う仕組み「Function Calling / Tool Use」を、小中学生でも分かるレベルに超訳します。AI エージェントの基盤技術として、OpenAI・Anthropic・Google の公式ドキュメントに沿って整理しました。
ざっくり言うと
OpenAI では Function calling、Anthropic では Tool use、Google では Function calling と呼び方が少し違いますが、やっていることはほぼ同じです。AI エージェント(自分で判断して動く AI)の基礎技術にあたります。
イメージ
正確には
OpenAI の公式ドキュメントによると、Function calling は モデルをあなたのコードや外部サービスにつなげるための仕組み と説明されています。具体的には、開発者があらかじめ 使える関数のリスト(名前・説明・引数の形) をモデルに渡しておくと、モデルが「この質問にはこの関数を呼べばいい」と判断し、呼び出すべき関数名と引数を JSON 形式で返してくれる、という流れです。実際に関数を実行するのは LLM ではなく、開発者側のプログラムである点に注意してください。
Anthropic の Claude では同じ機能が Tool use という名前で提供されています。公式ドキュメントでは「クライアント側で定義したツールを Claude に渡し、Claude がそのツールを呼ぶように要求できる」と整理されており、流れは OpenAI とほぼ共通です。
Google の Gemini API でも Function calling という名称で同様の機能が用意されており、公式ドキュメントでは「モデルの能力を外部のツール・API と接続するための仕組み」と説明されています。
大まかな流れ
3社共通で、ざっくり以下のステップになります。
| ステップ | 誰がやる | 内容 |
|---|---|---|
| 1. ツール定義 | 開発者 | 「使える関数」の一覧をモデルに渡す(名前・説明・引数のスキーマ) |
| 2. 判断 | LLM | ユーザーの質問を見て「どの関数をどんな引数で呼ぶか」を決める |
| 3. 実行 | 開発者側のコード | LLM が指定した関数を実際に実行し、結果を受け取る |
| 4. 回答 | LLM | 実行結果を受け取り、人間向けの自然な回答にまとめる |
LLM 単独だと何が弱いのか
Function Calling / Tool Use が必要になる理由は、LLM 単独だと以下の作業が苦手だからです。
- 最新情報の取得: LLM の知識には学習データの締切日(カットオフ)があり、それ以降のニュースや株価は知らない
- 正確な計算: 大きな桁の四則演算や、複雑な数式の処理はミスしやすい
- 外部システム連携: メール送信・カレンダー登録・データベース検索など、世の中のシステムに何か書き込む系の処理は単独ではできない
- 個別データへのアクセス: 社内 DB やユーザーの個人ファイルなど、学習データに含まれていない情報は知らない
これらを 外部の関数・API として用意して LLM に渡せる ようにしたのが Function Calling です。
AI エージェントとの関係
最近よく聞く「AI エージェント」(自分で計画を立てて動く AI)は、この Function Calling / Tool Use を 何度も繰り返して 仕事を進めています。
たとえば「来週の出張の手配をして」と頼まれたエージェントは、内部で「カレンダーで予定を確認 → 航空券検索 API を呼ぶ → ホテル検索 API を呼ぶ → メールを送信」といった具合に、複数のツール呼び出しをつなげて タスクを完遂します。Function Calling はその 一回一回の道具を使う動作 にあたります。
やってみよう
LLM とその外側の世界をつなぐ「橋」が Function Calling / Tool Use です。関連用語として、複数のツールを共通仕様でつなぐ MCP(Model Context Protocol) や、ツール呼び出しを連鎖させる AI エージェント も合わせて押さえておくと、最近の AI 話題がかなり見通しよくなります。
参考ソース
UPDATES
新着用語をLINEでお届け
新しい用語記事やAIの最新ニュース、仕事に役立つヒントをお届けします!
リンク先は、運営元の Nanoha AI Labo 公式LINEです。
