LLMが外部ツール(API・データベース・計算機・コード実行環境等)を自律的に選択・実行する能力の総称。Function Callingを包含するより広い概念で、エージェント型AIの基盤技術。
Tool Use(ツール使用)は、LLMが自然言語の指示を理解し、事前に定義されたツール群から適切なものを選択・実行する能力の総称である。Function Callingが単一のAPI呼び出しに焦点を当てるのに対し、Tool Useはコード実行、ファイル操作、Web検索、データベースクエリなど幅広い外部ツールとの対話を包含する概念である。
| 概念 | 範囲 | 代表例 |
|---|---|---|
| Function Calling | 定義された関数をJSON引数で呼び出す | OpenAI tools API |
| Tool Use | 関数+コード実行+ファイル操作等の総称 | Anthropic tool_use, Claude Code |
| Agent | Tool Useを反復的に活用し自律的にタスク遂行 | AutoGPT, Claude Code, Devin |
Function Callingは Tool Use のサブセットであり、Tool UseはAgent の基盤技術として位置づけられる。
| ツール | 用途 | リスクレベル |
|---|---|---|
| Web検索 | リアルタイム情報の取得 | 低 |
| データベースクエリ | 構造化データの読み取り | 中(SQLインジェクション注意) |
| ファイル読み取り | ローカルファイルの内容取得 | 中(パス制限必要) |
| API呼び出し | 外部サービスのデータ取得 | 低〜中 |
| ツール | 用途 | リスクレベル |
|---|---|---|
| コード実行 | Python/JS等のコード実行 | 高(サンドボックス必須) |
| ファイル書き込み | ファイルの作成・編集 | 高(パス制限必要) |
| メール送信 | 外部へのメッセージ送信 | 高(確認ステップ必須) |
| API書き込み | 外部サービスの状態変更 | 高(認可確認必要) |
Anthropicは「tool_use」という名称で、Claude APIのtoolsパラメータを通じてツール呼び出しを提供。特徴的なのはcomputer useツール(画面操作)やbash tool(コマンド実行)など、従来のAPI呼び出しを超えた物理的な操作ツールも公式サポートしている点。
「Function Calling」として2023年6月に導入。Assistants APIではCode Interpreter(コード実行)、File Search(RAG)、Function Callingの3種のツールを統合。2024年以降はStructured Outputsとの統合で型安全性が向上。
function_declarationsとして実装。Google検索、コード実行(Gemini Code Execution)、Google Workspace連携等のビルトインツールに加え、カスタム関数を定義可能。
Tool Useでは「モデルが何をできるか」の境界設計が最重要。
最小権限原則: 必要最小限のツールのみをモデルに公開する。全ツールを無条件に渡すと、意図しない操作(データ削除、機密情報送信等)のリスクが高まる。
確認ステップ: 破壊的操作(削除、送信、決済等)は人間の確認を挟むHuman-in-the-Loop設計が標準。Claude Codeでは「承認境界」として自動OK/1回確認/事前確認/禁止の4段階を設定している。
サンドボックス: コード実行ツールはDockerコンテナやWASM等のサンドボックス環境で隔離実行する。ファイルシステムやネットワークへのアクセスを制限する。
A: GPT-4oやClaude 4クラスのモデルでは、適切に設計されたツール定義に対して95%以上の正確な呼び出しが可能。ただし複雑なマルチツールシナリオでは精度が下がるため、クリティカルな操作には必ずバリデーションを入れること。
A: RAGは「検索→取得→生成」の固定パイプラインだが、Tool Useはモデルが「いつ・何のツールを使うか」を動的に判断する。RAGをTool Useの1ツールとして組み込むことで、必要な時だけ検索を実行する柔軟な設計が可能になる。
A: まずは読み取り専用の情報取得ツール(社内FAQ検索、在庫確認等)から始めるのが安全。書き込み系ツールは確認ステップを必ず挟む設計で段階的に追加する。