AIのツール呼び出しとは?Function Callingで検索・計算を頼む仕組み

30秒でわかる答え

AIのツール呼び出しは、モデルがツール名と入力値を指定し、外部の機能に処理を依頼する仕組みです。実行側が入力や権限を確かめて処理し、その結果をモデルへ返します。呼び出しを出しただけでは、処理の完了にはなりません。

「計算します」と返事が来た。でも、計算の答えはまだ届いていない。AIが道具を使う場面では、この途中経過を分けて見ると、何が起きたかを追いやすくなります。

ツール呼び出しとは、AIが外部機能へ処理を依頼すること

ツール呼び出しは、AIモデルが使いたい機能と入力値を指定して、実行を依頼する仕組みです。 検索や計算、資料の読み取りなどが対象になります。Function Calling(ファンクション・コーリング)とも呼ばれます。

モデルが「計算します」と文章を作るだけでは、計算ツールは動きません。実行側が受け取れる形で依頼を出し、処理した結果が返ってくる必要があります。この記事では、アプリ側が用意した計算機能を呼ぶ例で、その一往復を見ます。サービス提供側で実行されるツールもありますが、依頼を作る役と実行する役を区別する点は同じです。

では、モデルはどの道具を、どんな形で頼めばよいと分かるのでしょうか。

漫画:頼んだあとに、もう一往復 全4ページ

ユイは計算を頼む青い票を見て、もう答えが出たかと思う。ピコとアプリが入力を受け取り計算する仕事を分け、架空の入場料の結果が緑の票で戻るところをたどる。最後は依頼と結果を並べ、結果が返ったことまで確かめる。

画像を押すと拡大できます。+/−で大きさを変え、拡大中はドラッグして読めます。

1 / 4頼んだところで、答え?

展示会の料金を計算する模型で、ユイが青い依頼票を見る。結果の置き場所はまだ空。

1ページ目:頼んだところで、答え?
計算を頼むことと計算結果を得ることを区別する入口。

1ページ目のセリフ

  • 青い票「依頼」
  • ユイ「頼んだら、もう答えですか?」

2 / 4名前と人数を、実行側へ

青い票に計算という機能と大人2人・子ども1人を入れ、アプリの模型へ渡す。

2ページ目:名前と人数を、実行側へ
実行側が受け取る依頼には機能と必要な入力が含まれる。

2ページ目のセリフ

  • 青い依頼票「計算」「大人2」「子ども1」
  • 実行する側「アプリ」

3 / 4実行して、結果が戻る

アプリ側の模型に800×2と400×1の計算札を置き、緑の結果票2,000円を受け取る。

3ページ目:実行して、結果が戻る
名前と人数を出した依頼の後に、実際の処理と結果がある。

3ページ目のセリフ

  • 教材の計算「800×2」「400×1」
  • 緑の票「結果」「2,000円」

4 / 4返った結果まで確かめる

ユイは青い依頼票と緑の結果票を並べ、依頼だけで終わっていないことを確かめる。緑の票をAIの模型へ戻す。

4ページ目:返った結果まで確かめる
依頼と実行、結果の受け取りを分けて追うと、どこまで進んだか分かる。

4ページ目のセリフ

  • 青い票「依頼」、緑の票「結果」「2,000円」
  • 結果を戻す先「AI」
  • ユイ「結果も、確かめるんですね。」

横にスワイプして次のページへ。画像を押すと拡大できます。

紙の票と機器は、この記事で使うアプリ実行型の一往復の模型です。実際にはプログラム間で決められた形式のデータを渡し、提供側がツールを実行する場合もあります。大人800円・子ども400円は割引のない架空の教材料金で、実在施設の価格ではありません。結果が返っても、入力やAIの読み取りを含む回答全体の正しさが保証されるわけではありません。

本文の解説へ ↓

100%

拡大中はマウスや指でドラッグできます。100%では左右スワイプ・左右キーでページ送り。

ツール名と引数には何が入る?入場料を計算する例

最初に、アプリが使える機能の説明をモデルへ渡します。「何をする道具か」「呼ぶときの名前」「必要な入力項目」を含む、この道具の説明がツール定義です。

ラボの教材で、架空の展示会の入場料を計算してみます。料金は大人800円、子ども400円で固定。割引はありません。実在する施設の料金ではありません。

定義に含めるものこの教材の例
名前calculate_admission(入場料を計算する)
説明大人と子どもの人数から合計料金を返す
必要な入力大人の人数 adults、子どもの人数 children
入力の条件どちらも0以上の整数。両方の項目が必要

「大人2人と子ども1人なら?」と聞かれたとき、モデルはこの名前と、人数を指定した依頼を作れます。引数(ひきすう)は、機能へ渡す入力値のことです。ここでは2人と1人に当たります。

{
  "name": "calculate_admission",
  "arguments": { "adults": 2, "children": 1 }
}

これは説明用に簡略化した呼び出しデータです。実際の項目名や包み方はサービスで異なります。モデルがどんなプログラムでも自由に呼べるわけではなく、アプリが用意して利用を許した機能が入口になります。

依頼票には人数が入りました。でも、この段階にはまだ合計金額がありません。

依頼をアプリが実行し、結果を回答へ戻す

この例では、アプリが呼び出しを受け取り、入力の条件を確かめてから計算します。大人2人分の1,600円と、子ども1人分の400円を足すと、合計は2,000円です。

  1. モデル:計算を依頼する

    モデルを表す青い機器から、計算を担当するアプリ側へ依頼票を渡す模式図

    calculate_admissionへ、大人2人・子ども1人という入力で実行を依頼する

  2. アプリ側:入力を確かめ、計算する

    アプリ側が依頼票の入力を確認して計算する模式図

    項目と値、利用できる範囲を確かめ、800×2+400×1を計算する

  3. 実行処理からモデルへ:結果を返す

    計算を終えたアプリ側からモデルへ結果票を返す模式図

    合計2,000円という結果を返す

  4. モデル:結果をもとに答える

    結果票を受け取ったモデルが、利用者の画面へ回答を返す模式図

    結果をもとに「合計は2,000円です」と利用者へ答える

青い票は入力を指定した依頼、緑の票は処理後の結果を表します。機器と紙は役割のたとえで、実際にはプログラム間でデータを渡します。チェック印はこの計算例が成功した状態を示し、AIの回答全体の正しさを保証するものではありません。

ユイ

名前と人数が出た時点で、もう計算できたのかと思ってた

ピコ

そこは依頼ができたところ。2,000円の結果が返ってきたか、もう一つ先を見てね

機能によっては、外部サービスのAPIへ問い合わせます。今回のような計算をアプリ内で済ませることもあり、すべてのツール呼び出しがインターネットへの通信になるわけではありません。

ツールを使えば、モデルだけでは持っていない最新データや、計算プログラムの結果を回答に使えます。ただし、入力を間違えれば違う結果になり、モデルが結果を読み違える可能性も残ります。「ツールを使った」という表示だけで、回答全体の正しさは決まりません。

正しく往復した例を見たので、途中で止まった場合も、どこまで進んだかを分けてみましょう。

入力不足・実行失敗・応答なしは、どこで確かめる?

「大人2人と子ども」で子どもの人数が抜けていたら、この計算に必要な条件がそろいません。勝手に1人と決めて計算するより、人数を確かめる必要があります。

子どもの人数がない依頼を、そのまま計算したら?

この教材では両方の人数を必須にしています。実行側は入力不足として扱い、計算を進めません。子どもを0人として1,600円を返してしまうと、「人数が不明」と「子どもはいない」を取り違えます。足りない条件を確認してから、正しい入力で依頼を出し直します。

入力がそろっていても、別の理由で止まることがあります。

確認できた状態まだ分からないこと・次に見る場所
必須の引数がないどの項目が不足しているか。利用者への確認などで補えるか
操作が権限不足で拒否された任された範囲で使えるか。入力の言い換えだけで解決する問題ではない
実行側からエラーが返った何が失敗したか。条件の修正や時間を置いた確認が必要か
応答が返らない実行されなかったのか、実行後の返事が届かなかったのか

最後の二つは同じではありません。とくに予約・送信・保存のように状態を変える操作は、応答なしを失敗と決めつけて繰り返すと重複するおそれがあります。結果を確認してから、再試行するかを判断する必要があります。

道具を選べることと、使ってよいことも別です。モデルへの説明に加え、実行側で利用範囲を制限します。仕事全体の権限や停止条件はAIエージェントの解説で扱います。

ツール呼び出し・API・AIエージェントの違い

三つは同じものの別名ではなく、見ている範囲が違います。

用語担当する問い入場料の例で見る場所
ツール呼び出しモデルはどの機能へ何を頼み、結果をどう受け取る?計算を頼んで結果を返す一往復
APIプログラム同士はどのような取り決めで機能やデータを利用する?ツールの裏側で使われることがある接点
AIエージェント目標へ向けて次の手をどう選び、いつ止まる?人数を確かめる、計算する、結果を確認する、といった行動の選択

ツールを一回使っただけで、必ずAIエージェントになるわけではありません。検索して一度回答する使い方にも、決められた処理の途中にも、ツール呼び出しは組み込めます。

「頼んだ」と「できた」の間を見る

次にAIが道具を使う場面を見たら、何を入力したか、誰が実行したか、どんな結果が返ったかを分けてみてください。入場料の例なら、人数の指定と2,000円の結果は別の段階にあります。

計算、ノート検索、予定表と道具が増えたら、接続方法は一つずつ作るのでしょうか。MCPの仕組みでは、異なる機能とのやり取りを共通の形式でつなぐ考え方を確かめられます。

この記事について

TERM PRIMER

AIのツール呼び出し|この記事で使った言葉

ツール
AIが情報取得や操作のために呼び出す、検索、計算、ファイル操作、外部サービスなどの機能です。
API
アプリやサービス同士が決まった形でデータをやり取りするための入口です。
AIエージェント
目標に向けて次の行動を選び、ツールの結果を観測しながら作業を進めるAIシステムです。

LAB WHITEBOARD

AIのツール呼び出しを一文で説明してみよう

「ツールの依頼と実行を分け、入力不足・実行失敗・結果の受け取りを見分けられる。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。