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
最新
オンチェーンAgentの最悪ケース防御設計:Agentが完全に侵害された場合、損失を許容範囲内に抑える方法  ·  クリプトAIエージェントサービスの選び方:マーケティングの罠に騙されないための5つの評価フレームワーク  ·  クリプトAgentローンチ前セキュリティチェックリスト:テストネットからメインネットまでの12の必須項目  ·  Agentウォレットの設計方法:4つのアーキテクチャの完全なリスクとコストの比較  ·  AutoGen vs LangChain vs ElizaOS:どれを選ぶか——クリプトAIエージェント開発者のための完全な意思決定ガイド  ·  エージェントメモリシステム設計:短期・長期・意味検索の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日
関連トピック
1つの原稿が5つのフォーマットに:Claudeでコンテンツ再利用ワークフローを構築し、書く言葉を最大限に活用する
Claude Cowork Me
3時間かけて研究した洞察が3人にしか見られない——最も一般的な職場の時間の無駄です。Claudeを使って同じ分析を5つのフォーマットに変換し、上司・クライアント・同僚・業界コミュニティに届けましょう。影響力5倍、時間は20%増加だけです。
#automation#claude-code
毎日ブリーフィング自動化:仕事を始める前にClaudeが今日の最重要情報をまとめておく
Claude Cowork Me
職場での効率が低い人は、努力が足りないのではなく、毎日何が最も重要かわからないまま始めることが多いです。毎日3分のブリーフィング習慣で、タスクの山ではなく明確な方向性を持って一日を始められます。
#automation#claude-code
週次報告自動化ワークフロー:毎週最も辛い30分を、貼り付けるだけの3分に変える
Claude Cowork Me
週次報告で最も辛いのは何を書くか分からないことではなく、毎週同じフォーマット作業を繰り返すことです。「記録」と「報告書作成」を分離しましょう——あなたが記録し、Claudeがフォーマット化する。30分が3分になります。
#automation#claude-code
週報はもう苦痛じゃない:Claudeで再現可能な週報システムを構築する
Claude Me
週報が書きにくいのは何をしたか分からないからではなく、情報が散在して読者のニーズが違うからです。Claudeは雑然とした素材を構造に変える摩擦を取り除きます——内容を考えるのは代わりにやってくれません。
#automation#claude-code