関数呼び出しFunction Calling

モデルが必要な道具を決まった書式で呼び出すこと

ポイント
  • 関数呼び出しは、モデルが自分ではできないことを外部のプログラムに依頼書として渡す方式です。
  • モデルが直接道具を動かすわけではありません。何をどんな値で呼ぶかを書き出すだけです。
  • だから道具ごとに名前と必要な値をあらかじめ教えておかないと、モデルは選んで使えません。
  • 実行結果が戻ってくると、モデルは**その値を読んで答えの続きを書きます。**一度に何往復もすることもあります。
  • 見当違いの道具を呼んだり値を作り出したりもするので、実行前の確認装置が必要です。
目次

1たとえで理解する

診察室で医師は自分で血を採って顕微鏡をのぞいたりしません。代わりに検査依頼書を一枚書きます。どの検査をどの部位で、どんな条件で行うかを欄に合わせて記入し、検査室に回します。機械を動かすのは検査室の役目で、しばらくすると結果表が戻ってきます。医師はその数値を受け取ってから、次の話を続けます。

モデルの関数呼び出しもこの依頼書一枚です。今日の為替や桁数の多い計算のように自分では手に負えないことが出てくると、モデルは答えをでっち上げる代わりに、どの道具をどんな値で呼んでほしいかという依頼書を書き出します。実行するのは外部のプログラムで、戻ってきた結果を見てから答えの続きを書きます。

欄をでたらめに埋めた依頼書は検査室で突き返されます。依頼書の書式があらかじめ決まっているのも同じ理由です。

2くわしく

モデルがすることは依頼書を書くところまでです

言語モデルは文章をつなげていく機械なので、インターネットにつないだりファイルを保存したりする手を持っていません。関数呼び出しはこの手を付ける方法ではなく、手を持つプログラムに使いを頼む方法です。

モデルが作り出すのは相変わらず文章です。ただしユーザーに見せる文の代わりに、道具の名前と値が欄に合わせて入った短い依頼書を出します。この依頼書を受け取って本当に実行するのは、モデルを包んでいるプログラムのほうです。

だから何をさせるか、何を止めるかはすべてプログラム側で決めます。モデルがどれほどそれらしく依頼書を書いても、プログラムがその道具を渡していなければ何も起こりません。

道具の説明書を先に渡しておきます

モデルは世の中にどんな道具があるか自分では知りません。だから会話を始めるときに道具の一覧を一緒に入れておきます。道具の名前、何をする道具か、どんな値が必要でどんな値は要らないかを書いた短い説明書です。

この説明がそのまま使い方になります。「都市名を入れるとその都市の今日の天気を返します」と書いておけば、モデルは天気の質問が出たときにこの道具を思い出します。説明があいまいだと見当違いの場面で呼び、値の形式が書かれていなければ勝手に埋めてしまいます。道具をうまく使わせる作業の半分は、この説明を整えることです。

値の形も決めておくことが大事です。日付をどんな順序で書くか、都市名はどの言語で入れるかを決めておかなければ、プログラムが受け取っても読み取れません。

結果を受け取ってまた書き続けます

プログラムが道具を動かして得た結果は、会話の中に再び組み込まれます。モデルからすると、たった今新しい情報が一つ届いたことになります。その値を読んで答えを続けたり、必要ならまた別の依頼書を書いたりします。

一度で終わらない仕事も多いです。まず検索の道具を呼んで候補を探し、その中の一つを選んで詳細照会の道具をもう一度呼び、最後にまとめて答える、という具合です。こうして依頼と結果が何度もやり取りされながら仕事を終える方式が、AIエージェントの骨組みになります。

呼び間違えることもあります

モデルはどの道具を呼ぶかを確率で選ぶので、失敗もします。呼ぶ必要がないのに呼んだり、必要なのに呼ばなかったり、値を間違って入れたりします。会話の中に道具の名前と似た言葉が混じっていると、そちらに引きずられることもあります。

だから値が形式に合っているかをプログラムがもう一度確認し、間違っていれば差し戻して書き直させます。メール送信や決済、削除のように取り返しのつかない道具は、実行前に人に確認を求めるようにします。文書やウェブページの中に隠された文がモデルをそそのかして見当違いの道具を呼ばせる攻撃もあるので、危険な道具ほど権限を狭く与えるほうが安全です。

3もう少し正確に

関数呼び出しでモデルが出すのは、道具の名前と値が入った短い構造化データです。どんな道具が使えるかはあらかじめ決まった形式の一覧としてモデルに渡され、実行と結果の受け渡しはすべて外部のプログラムの役目です。

たとえがずれる点もあります。医師は検査室が実際に存在すると知って依頼書を書きますが、モデルは一覧に書かれた説明だけを見て判断します。一覧にない道具を思い描いて呼ぶこともあれば、結果がおかしくてもそのまま信じて答えに移すこともあります。結果を検証する目が別にあるわけではないということです。もう一つ、道具を選ぶ判断も人のような慎重な吟味を経るわけではありません。ここまでの会話を見て次に来そうな文章として依頼書を作り出しているに近いのです。だから同じ質問でもあるときは道具を呼び、あるときはそのまま答えてしまうという揺れが残ります。道具の説明をはっきり書き、いつ呼ぶべきかの指針も一緒に与えるほうが、結果をずっと揃ったものにします。

4やってみる

5よくある誤解

  • 関数呼び出しをつけるとAIが直接プログラムを実行すると思われがちですが、実際には依頼書を書き出すだけで、実行は外部のプログラムが行います。

  • 道具を付ければ間違った答えがなくなると見なされがちですが、実際には道具を呼ばなかったり結果を読み間違えたりしてそのまま間違う場合が残ります。

  • 道具をたくさん付けるほどよいと思われがちですが、実際には説明が長くなるほど選ぶのが難しくなり、見当違いの選択が増えます。

7ひとこと要約

つまり関数呼び出しは、モデルができないことを決まった書式の依頼書で外部のプログラムに渡し、戻ってきた結果を受け取って答えを書き続ける方式です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02