Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
独立メディア
いかなるプロジェクトとも無提携
暗号資産のAIエージェントを解剖する:仕組み・リスク・経済モデル
aiagent-bible.com
最新
ガス抽象化は無料ではない:あなたのエージェントシステムが実際に支払う手数料をどう計算するか  ·  なぜエージェントはタスクの途中で突然、先に伝えたルールを「忘れて」しまうのか?  ·  サポートエージェントの記憶アーキテクチャ設計:まずどのタイプを記憶するか決め、それから保護方法を決める  ·  なぜAIエージェント決済製品はほぼどれもパスワードを使わせなくなったのか  ·  信頼しているMCPツールの内容がひそかに差し替えられたことを、どう知ればよいのか  ·  「二者択一の法則」を自分のエージェントアーキテクチャに適用する:3つの実装方式のトレードオフ
用語解説 · ツール利用とMCP

Function Calling

Function Calling(関数呼び出し)
ツール利用とMCP 新手

詳しく読む +
01 · これは何?

Function Callingの4つのステップは何ですか?LLM自体は実際にツールを実行しますか?

Function Callingには完全な4ステップのフローがあります——この4ステップを理解することがAIエージェントの動作原理を理解する鍵です。

ステップ1、LLMにどのツールが利用可能かを伝える:LLMのAPIを呼び出す際、各ツールの名前・機能・パラメータフォーマットを説明するツールリストを同時に渡します(例:「get_eth_price:ETHの現在価格を取得、パラメータ:currency(文字列、'USD'または'EUR')」)。LLMはこのリストを読み取り、どのツールが利用可能かを知ります。

ステップ2、LLMがツール呼び出しリクエストを出力する:LLMが推論中にツールが必要と判断した場合、直接実行するのではなく、応答に構造化されたJSONフォーマットのリクエストを出力します:{"tool": "get_eth_price", "parameters": {"currency": "USD"}}。

ステップ3、バックエンドコードが実際に実行する:あなたのアプリケーション(LLMではなく)がこのJSONリクエストを読み取り、実際のget_eth_price関数を呼び出し、CoinGecko APIから実際のETH現在価格を取得します。

ステップ4、結果をLLMに返す:関数の実行結果をLLMに返し、LLMはこの結果に基づいて推論を継続して最終応答を生成します。

重要な認識:LLM自体はツールを実行しません。「何を呼び出したいか」を言うだけで、実際の実行は常にバックエンドコードです。

02 · なぜ存在する?

Function CallingはMCPと同じものですか?ドキュメントで両方の用語を見かけますが、何が違いますか?

同じものではありませんが、密接に関連しており混同しやすいです。

Function Calling / Tool UseはLLMとツール間の「通信メカニズム」です——LLMがツールを呼び出したいと「言う」方法(構造化JSONを出力)と、ツールの結果をLLMに返す方法を定義します。これはGPTとClaudeの両方がサポートするLLM APIレベルの標準です。

MCP(Model Context Protocol)はFunction Callingの上に構築された「ツール標準化パッケージ層」です——ツールがどのように記述・発見・異なるLLMとフレームワーク間で再利用されるかを定義します。シンプルな比喩:Function Callingは「HTTPプロトコル」のようなもので通信方法を定義し;MCPは「REST API仕様」のようなもので、HTTP上でリソースと操作をどのように整理するかを定義します。MCPがあれば、ツールを一度書くだけで、MCP対応のすべてのシステム(Claude・GPT・LangChain・ElizaOS)で使用できます。

初心者への実際的なアドバイス:単にAgentにツールを呼び出させたいだけなら、フレームワーク(LangChainの@toolデコレータ・ElizaOSのActionプラグイン)を使えば十分で、自分でMCPを実装する必要はありません。

03 · 意思決定にどう影響する?

LLMに「いつツールを呼び出すべきか、いつ直接答えるべきか」をどうやって知らせますか?

答えはツールの「説明文」にあります——LLMは各ツールに書いた説明に基づいていつ呼び出すかを判断します。LLMに正確な判断をさせるためのいくつかの設計原則:

第一、ツールの説明は「適用シナリオ」を指定する:ツールが何をするかだけでなく、いつ使うべきかを明確にします。良い説明:「ETHの現在のUSD価格を照会する。ユーザーが暗号資産の現在価格・最新見積もりについて質問したとき、またはこのツールを価格比較に使う必要があるときに呼び出す。」悪い説明:「ETHの価格を取得する。」

第二、LLMにいつツールを呼び出さないかを知らせる:AgentにSystem Promptで各ツールの使用境界を明確にします。例:「リアルタイムデータが必要なときだけツールを呼び出す;質問が概念説明に関するものであれば(例:「DeFiとは何か」)、ツールを呼び出さずに直接答える。」

第三、ツールが多すぎないように:LLMに渡すツールが多ければ多いほど、読むべきツールの説明が増え(トークンを消費)、大量のツールから正しいものを選ぶのが難しくなります。第四、LLMの実際の選択を観察する:開発段階ではverboseモードを有効にして、どのような状況でどのツールを選択するかを観察します。

04 · どうすればいい?

Function Callingのセキュリティ設計の基本原則は何ですか?特にクリプトAgentシナリオでは

LLM自体はツールを実行しないため(実行はバックエンドで行われる)、セキュリティ設計の核心はバックエンドの「実行層」にあります。クリプトAgentのためのいくつかの基本的なセキュリティ原則:

第一、読み取りツールと書き込みツールを厳格に分類する:ツールを2つのカテゴリに分けます——読み取り専用ツール(データ照会・オンチェーン状態の読み取り;エラーの結果は情報誤り)と書き込みツール(トランザクション署名・資金移動;エラーの結果は資産損失)。バックエンド実行層での2つのカテゴリの認可要件が異なり、混在させてはなりません。

第二、書き込みツールにはパラメータ検証が必須:バックエンドで書き込みツールを実行する前に、LLMが渡したパラメータが合理的かを検証します——金額は設定上限内か?アドレスはホワイトリストにあるか?操作タイプは許可されているか?

第三、大額操作には人工確認が必要:閾値を超えた書き込み操作には、バックエンドに人工確認ステップを追加します。

第四、すべてのツール呼び出しを記録する:各ツール呼び出しの完全な記録をログに書き込みます。

具体例 +

Function Callingの最小動作例:AgentにETH現在価格を照会させる

以下はLangChain(Python)でのFunction Callingの実装の最もシンプルな例で、ツール定義からAgent実行までの完全なフローを示します。

まず、ツールを定義する:@toolデコレータでPython関数をマークし——関数のdocstringがツールの説明で、LLMはいつ呼び出すかを決定するためにこの説明を読みます。関数自体はCoinGecko APIを呼び出してETHの実際の現在価格を取得し、フォーマットされた結果文字列を返します。

次に、Agentを初期化する:ツールリストとLLM(例:Claude Sonnet)をLangChainのAgentに渡し、最大イテレーション回数を設定し、AgentのロールをSystem Promptで定義します。

最後に、タスクを実行する:ユーザーが「ETHの現在価格はいくらですか?」と入力すると、AgentのThoughtステップが「get_eth_priceツールを呼び出す必要がある」と判断 → ツール呼び出しJSONを出力 → バックエンドがPython関数を実行 → 結果がLLMに返される → LLMが自然言語の応答を生成:「ETHの現在価格は$3,420.50です。」

この例はFunction Callingの完全なループを示しています:LLMは「何を呼び出すかを決定する」ことのみを担当し、バックエンドが「実際に実行」し、結果はLLMに返されて最終応答が生成されます。

図解
Function Calling: 4-Step Flow from LLM Request to ExecutionFunction Calling 四步流程圖:工具定義傳入 LLM → LLM 輸出 JSON 工具調用請求 → 後端執行工具 → 結果回傳 LLM 繼續推理。清楚標示 LLM 邊界(思考)和後端邊界(執行)。Function Calling: 4-Step FlowLLM Side (Reasoning Only)① Tool List Provided to LLMName · Description · Parameters · When to call② LLM Outputs JSON Request{"tool": "get_eth_price", "params": {"currency": "USD"}}LLM does NOT execute the toolIt only outputs structured JSON text④ LLM continues reasoningReceives result → generates final response'ETH current price is $3,420.50'Backend Side (Actual Execution)③ Backend Reads JSON → Executes ToolCalls CoinGecko API → gets real price $3,420.50Security validation happens HEREAmount cap · Address whitelistHuman confirmation for write opsResult returned to LLM{"price": 3420.50, "currency": "USD"}↑ This is what the LLM seesNot the API call itselfAI Agent Bible · aiagent-bible.com
スクリーンショット歓迎。転載時は出典を明記してください。
よくある誤解 +
✕ 誤解 1
× 誤解1:Function CallingはLLMが「実際にコードを実行したりAPIを呼び出したりしている」ことを意味する。LLM自体はコードを実行したり外部APIを呼び出したりする能力がまったくありません——テキストを生成するだけで、そのテキストがたまたま「ツールXをパラメータYで呼び出したい」という構造化されたJSONフォーマットになっています。実際の実行は常にバックエンドコードにあります。この誤解は、LLMがインターネットやデータベースに直接接続されていると思わせますが、バックエンドコードなしでは、LLMのツール呼び出しリクエストは効果のないJSONテキストに過ぎません。
✕ 誤解 2
× 誤解2:Function CallingはOpenAIのGPTのみがサポートしており、Claudeはこれができない。Function Calling(AnthropicではTool Useと呼ばれる)は、Claude・GPT-4・Gemini・Mistral・各種オープンソースモデルを含む、ほぼすべての主流LLMがサポートする標準的な能力です。AnthropicはただTool Useという異なる用語を使っているだけで、メカニズムは同じです。LangChainでChatOpenAIからChatAnthropicに切り替えても、ツール定義は一切変更不要です。
The Missing Link +
直接的な影響

Function Callingの核心的なトレードオフは「柔軟性 vs 予測可能性」です。LLMが自律的にいつツールを呼び出すかを決定することで、Agentが様々な予期しない状況に対処できますが、LLMがツールを呼び出すべきでないときに呼び出したり(例:概念説明の質問にはツールが不要ですが、LLMは依然として呼び出そうとする)、ツールを使うべきときに記憶から答えたりする可能性もあります(学習データの古くなった可能性のある数字を使用)。もう一つのトレードオフは「ツール数 vs 選択精度」:より多くのツールを提供するとAgentの能力が高まりますが、より多くのオプションから正しいツールを選択するLLMの精度が低下し、トークンも多く消費します。

質問する
10文字以上入力してください
関連記事
Tool Use完全メカニズム解説:AIエージェントはどのように「行動」するか、そしてなぜこの設計が信頼できるかどうかを決定するのか
fundamentals · 06月17日
関連トピック
スケジュールタスクとClaude Codeを組み合わせる:毎日の反復作業を省く簡単なワークフロー
Claude Me
スケジュール化する価値のあるタスクには共通の特徴がある。チェックのロジックは毎日同じで、チェック対象だけが変わるという点だ。
#claude-code#automation
週報はもう苦痛じゃない:Claudeで再現可能な週報システムを構築する
Claude Me
週報が書きにくいのは何をしたか分からないからではなく、情報が散在して読者のニーズが違うからです。Claudeは雑然とした素材を構造に変える摩擦を取り除きます——内容を考えるのは代わりにやってくれません。
#automation#claude-code
MCPと直接Claude APIの違いは何か?どちらをいつ使うべきか
Claude Me
直接APIは最大の柔軟性を提供しますが、ツールロジックは各アプリにバインドされます。MCPはツールに共通言語を与えます——一度書いてどこでも使えます。どちらを選ぶかは、ツールが「このアプリ専用」か「複数の場所で共用」かによります。
#automation#claude-code
Claude Code vs Cursor vs GitHub Copilot:どのAIコーディングツールを使うべきか?
Claude Me
AIコーディングツール選びは『機能の多さ』ではなく『普段どう書くか』から。Copilotは次の行を補完、Cursorは横断編集、Claude Codeは業務一式を引き受ける——今週の実タスクで各々試し、レビューより実測を信じよう。
#automation#claude-code