エージェント・RAG

Function Calling(ツール呼び出し)

モデルに使えるツールの定義を渡し、必要なときに構造化された呼び出しを返させる仕組み。実行はプログラム側が行う。

Function Calling(ツール呼び出し)とは

Function Calling(ツール呼び出し)は、モデルに使えるツールの一覧を渡しておき、必要なときに「どのツールを、どんな引数で呼ぶか」を構造化データで返させる仕組みです。ツールの一覧には、名前・説明・引数の形を書きます。

モデル自身はツールを実行しません。モデルが返した呼び出し内容を受けて、プログラムが実際に処理を行い、その結果をモデルに戻します。モデルは結果を読んで、回答を作るか、次のツールを呼ぶかを判断します。

この仕組みで、モデルは最新の在庫数を調べる、予定を登録する、計算を正確に行う、といった自分だけではできない処理を扱えます。AIエージェントの土台となる機能です。

品質を決めるのはツールの設計です。名前と説明が具体的で、引数が少なく、失敗したときのエラー内容が分かりやすいほど、モデルは正しく使えます。与える権限は必要最小限にします。

具体例

在庫照会のチャット

営業担当が「品番A-100の在庫は?」と尋ねると、モデルは在庫照会ツールを品番つきで呼び出します。プログラムが基幹システムから在庫数を取得して返し、モデルが「倉庫に120個あります」と答えます。数値はシステムの値なので、推測で答えることがありません。

ツールの説明文の書き方

モデルはツールの説明文を読んで、いつ使うかを判断します。説明が曖昧だと、呼ぶべき場面で呼ばなかったり、誤った引数を渡したりします。

悪い例

名前:search 説明:検索する 引数:q

良い例

名前:search_inventory 説明:品番を指定して、倉庫ごとの在庫数を返す。品番が分からない場合は呼ばずに、利用者に品番を尋ねる。 引数:product_code(例:A-100。英大文字・ハイフン・数字)

よくある誤解

Function Calling を使うと、モデルが勝手にシステムを操作してしまう。

実行するかどうかを決めるのはプログラム側です。モデルは呼び出し内容を提案するだけなので、実行前に内容を検査したり、人の承認を挟んだりできます。安全のための設計を入れる場所がここにあります。

ツールは多く渡すほど便利になる。

ツールが多いほど、モデルが選び間違える可能性が高まり、定義の分だけ読み込む情報も増えます。作業に必要なものに絞り、似た機能のツールは統合します。

ツール利用

ツール利用は、モデルが自分では行えない処理を外部の機能に任せることです。最新情報の検索、正確な計算、社内システムの操作、ファイルの読み書きなどが当たります。Function Calling はこの「ツールを使う」を実現するための仕組みで、モデルが呼び出し内容を返し、プログラムが実行して結果を戻します。つまり、ツール利用が目的、Function Calling がその手段という関係です。ツールの結果は必ずしも正しいとは限らないため、失敗時の扱いも決めておきます。

PEP検定での位置づけ

この用語は PEP検定 シラバス第6章「AIエージェントとコンテキストエンジニアリング」の範囲です。

章の学習ページを読む →
Next Step

用語を「使える力」にする

PEP検定は、こうした用語を実務のプロンプト設計と評価に結びつける力を測ります。練習問題で確かめてみてください。