Re Reference AI

エージェント

ツールコーリングとは

Tool Calling / ツール呼び出し

LLMが外部の関数・API・ツールを呼び出し、その実行結果を応答に反映する仕組み

LLMツール連携

ひとことで言うと

AIが外部のプログラムやサービスを呼び出して、その結果を答えに使う仕組み。

概要

Tool Calling(ツールコーリング)とは、LLMが自然言語での応答生成だけでなく、あらかじめ定義された外部の関数・API・ツールの呼び出しが必要と判断した場合、その呼び出し内容(関数名や引数)を構造化形式で出力し実行結果を会話へ反映できるようにする仕組み。 LLM自体はツールを直接実行できないため実際の呼び出しはアプリケーション側が担い、その結果を再びLLMへ渡して応答を生成させる形で連携する。 検索・計算・データベース照会・コード実行など、LLM単体では正確にこなせない処理を外部委譲する手段として、AIエージェントの中核的な構成要素になっている。 ツール呼び出しが必要かどうかの判断・どの引数で呼ぶかの選択自体をLLMが行うため、ツールの説明文(スキーマ)の書き方次第で呼び出し精度が大きく変わる点には注意が必要。

背景

LLMは学習時点の知識をもとにテキストを生成するため、最新情報の取得や正確な計算、外部システムの操作といったタスクを苦手とする。 Tool Callingは、こうした処理を専用のツールへ委譲しその結果をLLMに統合させることで、この弱点を補うために整備された。

歴史

2022年: ReAct論文がLLMに「思考」と「行動(ツール呼び出し)」を交互に出力させる枠組みを提案。 2023年6月: OpenAIがFunction Callingとして構造化されたツール呼び出しのAPIを公開し、業界標準的な実装パターンとして普及。 以降、Anthropic等他のLLMプロバイダも同様のツール呼び出し機能を提供し、より一般的な名称としてTool Callingという呼び方が広まる。

アーキテクチャ

開発者は、呼び出し可能なツールの名前・説明・パラメータのスキーマをLLMへ事前に提示する。 LLMは、ユーザーの入力に対しツールの利用が必要と判断すると、テキストの代わりにツール名と引数を含む構造化データを出力する。 アプリケーション側がこの出力を解釈して実際にツールを実行し、その結果をLLMへ再度入力することで、実行結果を踏まえた最終的な応答を生成させる。

ワークフロー

開発者がツールの名前・説明・引数スキーマを定義しLLMへ提示 → ユーザーの入力をLLMへ送信 → LLMがツール呼び出しの必要性を判断し構造化データを出力 → アプリケーション側が実際にツールを実行 → 実行結果をLLMへ入力し最終的な応答を生成。

コード例

OpenAI APIでツールを定義し呼び出す

from openai import OpenAI

client = OpenAI()

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "指定した都市の現在の天気を取得する",
            "parameters": {
                "type": "object",
                "properties": {"city": {"type": "string"}},
                "required": ["city"],
            },
        },
    }
]

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "東京の天気を教えてください。"}],
    tools=tools,
)

print(response.choices[0].message.tool_calls)

利点

  • LLM単体では困難な、正確な計算・最新情報の取得・外部システムの操作が可能になる
  • ツールの入出力を構造化データとして扱えるため、アプリケーションへの統合がしやすい
  • 主要なLLMプロバイダで共通のパターンとして提供されており、実装の再利用がしやすい

欠点

  • ツールの説明や引数スキーマの設計が不十分だと、LLMが誤ったツールを呼び出すことがある
  • 呼び出せるツールの数が増えるほど、必要なツールの選択を誤りやすくなる
  • 外部データを扱うツールを経由した間接プロンプトインジェクションのリスクがある

比較

  • ファンクションコーリングFunction Callingは、多くの場合Tool Callingと同義に使われる、OpenAIが最初に導入した名称
  • AIエージェントAIエージェントは、Tool Callingを繰り返し活用しながらタスクを遂行するシステム
  • MCPMCPは、Tool Callingで使うツールの提供方法を標準化するプロトコル

関連用語

ファンクションコーリングAIエージェントMCPReActComputer UseStructured OutputCode InterpreterBrowser Use

よくある質問

Tool CallingとFunction Callingは同じ?

ほぼ同義で使われる。 Function CallingはOpenAIが最初に使い始めた名称で、より一般的・業界横断的な呼び方としてTool Callingが定着している。

LLMはツールを直接実行できる?

いいえ。 LLMが行うのはツール名と引数を含む構造化データの出力までで、実際のツール実行はアプリケーション側のコードが担う。

参考文献

関連する年表

MCP(Model Context Protocol)の歴史

AnthropicがLLMアプリケーションと外部ツール・データを接続する標準として公開したMCPが、主要AIベンダーを巻き込んだ業界標準へと広がっていった過程をたどる。

エージェント5件のイベント / 2024 - 2025

関連Zenn記事