Loading...
    0
    • 開発者ガイド
    • APIリファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    最初のステップ
    Claude入門クイックスタート
    モデルと価格
    モデル概要モデルの選択Claude 4.5の新機能Claude 4.5への移行モデルの廃止予定価格
    Claudeで構築
    機能概要Messages APIの使用コンテキストウィンドウプロンプトのベストプラクティス
    機能
    プロンプトキャッシングコンテキスト編集拡張思考エフォートストリーミングメッセージバッチ処理引用多言語対応トークンカウントエンベディングビジョンPDF対応Files API検索結果構造化出力Google Sheetsアドオン
    ツール
    概要ツール使用の実装方法トークン効率的なツール使用細粒度ツールストリーミングBashツールコード実行ツールプログラマティックツール呼び出しコンピュータ使用ツールテキストエディタツールWebフェッチツールWeb検索ツールメモリツールツール検索ツール
    エージェントスキル
    概要クイックスタートベストプラクティスAPIでスキルを使用
    エージェントSDK
    概要TypeScript SDKPython SDK移行ガイド
    ガイド
    ストリーミング入力権限の処理セッション管理SDKの構造化出力エージェントSDKのホスティングシステムプロンプトの変更SDKのMCPカスタムツールSDKのサブエージェントSDKのスラッシュコマンドSDKのエージェントスキルコストと使用状況の追跡TodoリストSDKのプラグイン
    APIのMCP
    MCPコネクタリモートMCPサーバー
    サードパーティプラットフォームのClaude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータプロンプトテンプレートの使用プロンプト改善ツール明確で直接的に例を使用する(マルチショットプロンプティング)Claudeに考えさせる(CoT)XMLタグを使用Claudeに役割を与える(システムプロンプト)Claudeの応答を事前入力複雑なプロンプトをチェーン長いコンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を向上ジェイルブレイクの軽減ストリーミング拒否プロンプト漏洩の削減Claudeをキャラクターのままに
    管理とモニタリング
    Admin API概要使用状況とコストAPIClaude Code Analytics API
    Console
    ツール

    ツール検索ツール

    Claudeが数百または数千のツールを動的に検出して読み込むことで、大規模なツールライブラリを効率的に管理できるツール検索ツールについて説明します。

    ツール検索ツールにより、Claudeは数百または数千のツールを動的に検出して読み込むことで、これらのツールを効率的に操作できます。すべてのツール定義をあらかじめコンテキストウィンドウに読み込む代わりに、Claudeはツールカタログ(ツール名、説明、引数名、引数説明を含む)を検索し、必要なツールのみを読み込みます。

    このアプローチは、ツールライブラリが拡大する際の2つの重大な課題を解決します。

    • コンテキスト効率: ツール定義は、コンテキストウィンドウの大部分を消費する可能性があります(50個のツール ≈ 10-20Kトークン)。これにより、実際の作業用のスペースが減少します
    • ツール選択精度: Claudeのツール選択能力は、従来利用可能な30~50個を超えるツールでは大幅に低下します

    これはサーバー側のツールとして提供されていますが、独自のクライアント側ツール検索機能を実装することもできます。詳細については、カスタムツール検索実装を参照してください。

    ツール検索ツールは現在パブリックベータ版です。

    この機能を使用するには、"advanced-tool-use-2025-11-20" ベータヘッダーをAPIリクエストに追加してください。

    ツール検索ツールの使用経験を共有するには、フィードバックフォームからお問い合わせください。

    プラットフォームとモデルのサポート

    プラットフォームサポートされているモデル
    Claude APIClaude Opus 4.5、Claude Sonnet 4.5
    Microsoft FoundryClaude Opus 4.5、Claude Sonnet 4.5
    Google Cloud Vertex AIClaude Opus 4.5、Claude Sonnet 4.5
    Amazon BedrockClaude Opus 4.5

    Amazon Bedrockでは、サーバー側のツール検索はinvoke API経由でのみ利用可能で、converse APIでは利用できません。

    クライアント側ツール検索を実装することもできます。これは、独自の検索実装からtool_referenceブロックを返すことで実現できます。

    ツール検索の仕組み

    ツール検索には2つのバリアントがあります。

    • Regex (tool_search_tool_regex_20251119): Claudeは正規表現パターンを構築してツールを検索します
    • BM25 (tool_search_tool_bm25_20251119): Claudeは自然言語クエリを使用してツールを検索します

    ツール検索ツールを有効にすると:

    1. ツール検索ツール(例:tool_search_tool_regex_20251119またはtool_search_tool_bm25_20251119)をツールリストに含めます
    2. すぐに読み込まれるべきではないツールに対して、defer_loading: trueを指定してすべてのツール定義を提供します
    3. Claudeは最初、ツール検索ツールと遅延されていないツールのみを認識します
    4. Claudeが追加のツールが必要な場合、ツール検索ツールを使用して検索します
    5. APIは3~5個の最も関連性の高いtool_referenceブロックを返します
    6. これらの参照は自動的に完全なツール定義に展開されます
    7. Claudeは検出されたツールから選択して、それらを呼び出します

    これにより、コンテキストウィンドウを効率的に保ちながら、高いツール選択精度を維持できます。

    クイックスタート

    遅延ツールを使用した簡単な例を次に示します。

    curl https://api.anthropic.com/v1/messages \
        --header "x-api-key: $ANTHROPIC_API_KEY" \
        --header "anthropic-version: 2023-06-01" \
        --header "anthropic-beta: advanced-tool-use-2025-11-20" \
        --header "content-type: application/json" \
        --data '{
            "model": "claude-sonnet-4-5-20250929",
            "max_tokens": 2048,
            "messages": [
                {
                    "role": "user",
                    "content": "What is the weather in San Francisco?"
                }
            ],
            "tools": [
                {
                    "type": "tool_search_tool_regex_20251119",
                    "name": "tool_search_tool_regex"
                },
                {
                    "name": "get_weather",
                    "description": "Get the weather at a specific location",
                    "input_schema": {
                        "type": "object",
                        "properties": {
                            "location": {"type": "string"},
                            "unit": {
                                "type": "string",
                                "enum": ["celsius", "fahrenheit"]
                            }
                        },
                        "required": ["location"]
                    },
                    "defer_loading": true
                },
                {
                    "name": "search_files",
                    "description": "Search through files in the workspace",
                    "input_schema": {
                        "type": "object",
                        "properties": {
                            "query": {"type": "string"},
                            "file_types": {
                                "type": "array",
                                "items": {"type": "string"}
                            }
                        },
                        "required": ["query"]
                    },
                    "defer_loading": true
                }
            ]
        }'

    ツール定義

    ツール検索ツールには2つのバリアントがあります。

    JSON
    {
      "type": "tool_search_tool_regex_20251119",
      "name": "tool_search_tool_regex"
    }
    JSON
    {
      "type": "tool_search_tool_bm25_20251119",
      "name": "tool_search_tool_bm25"
    }

    Regexバリアントクエリ形式: 自然言語ではなくPython正規表現

    tool_search_tool_regex_20251119を使用する場合、Claudeは自然言語クエリではなく、Pythonのre.search()構文を使用して正規表現パターンを構築します。一般的なパターン:

    • "weather" - 「weather」を含むツール名/説明にマッチします
    • "get_.*_data" - get_user_data、get_weather_dataなどのツールにマッチします
    • "database.*query|query.*database" - 柔軟性のためのORパターン
    • "(?i)slack" - 大文字小文字を区別しない検索

    最大クエリ長: 200文字

    BM25バリアントクエリ形式: 自然言語

    tool_search_tool_bm25_20251119を使用する場合、Claudeは自然言語クエリを使用してツールを検索します。

    遅延ツール読み込み

    defer_loading: trueを追加することで、ツールをオンデマンド読み込み用にマークします。

    JSON
    {
      "name": "get_weather",
      "description": "Get current weather for a location",
      "input_schema": {
        "type": "object",
        "properties": {
          "location": { "type": "string" },
          "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] }
        },
        "required": ["location"]
      },
      "defer_loading": true
    }

    重要なポイント:

    • defer_loadingがないツールはコンテキストに即座に読み込まれます
    • defer_loading: trueを持つツールは、Claudeが検索経由で検出した場合にのみ読み込まれます
    • ツール検索ツール自体は決して defer_loading: trueを持つべきではありません
    • 最適なパフォーマンスのために、最も頻繁に使用される3~5個のツールを遅延されていないものとして保ちます

    両方のツール検索バリアント(regexとbm25)は、ツール名、説明、引数名、および引数説明を検索します。

    レスポンス形式

    Claudeがツール検索ツールを使用する場合、レスポンスには新しいブロックタイプが含まれます。

    JSON
    {
      "role": "assistant",
      "content": [
        {
          "type": "text",
          "text": "I'll search for tools to help with the weather information."
        },
        {
          "type": "server_tool_use",
          "id": "srvtoolu_01ABC123",
          "name": "tool_search_tool_regex",
          "input": {
            "query": "weather"
          }
        },
        {
          "type": "tool_result",
          "tool_use_id": "srvtoolu_01ABC123",
          "content": [{ "type": "tool_reference", "tool_name": "get_weather" }]
        },
        {
          "type": "text",
          "text": "I found a weather tool. Let me get the weather for San Francisco."
        },
        {
          "type": "tool_use",
          "id": "toolu_01XYZ789",
          "name": "get_weather",
          "input": { "location": "San Francisco", "unit": "fahrenheit" }
        }
      ],
      "stop_reason": "tool_use"
    }

    レスポンスの理解

    • server_tool_use: Claudeがツール検索ツールを呼び出していることを示します
    • tool_result with tool_reference: 検出されたツールへの参照を含む検索結果
    • tool_use: Claudeが検出されたツールを呼び出しています

    tool_referenceブロックは、Claudeに表示される前に自動的に完全なツール定義に展開されます。この展開を自分で処理する必要はありません。toolsパラメータにすべての一致するツール定義を提供する限り、APIで自動的に発生します。

    MCP統合

    ツール検索ツールはMCPサーバーと連携します。"mcp-client-2025-11-20" ベータヘッダーをAPIリクエストに追加してから、mcp_tool_setをdefault_configsと共に使用してMCPツールの読み込みを遅延させます。

    curl https://api.anthropic.com/v1/messages \
      --header "x-api-key: $ANTHROPIC_API_KEY" \
      --header "anthropic-version: 2023-06-01" \
      --header "anthropic-beta: advanced-tool-use-2025-11-20,mcp-client-2025-11-20" \
      --header "content-type: application/json" \
      --data '{
        "model": "claude-sonnet-4-5-20250929",
        "max_tokens": 2048,
        "mcp_servers": [
          {
            "type": "url",
            "name": "database-server",
            "url": "https://mcp-db.example.com"
          }
        ],
        "tools": [
          {
            "type": "tool_search_tool_regex_20251119",
            "name": "tool_search_tool_regex"
          },
          {
            "type": "mcp_tool_set",
            "mcp_server_name": "database-server",
            "default_configs": {
              "defer_loading": true
            },
            "configs": {
              "search_events": {
                "defer_loading": false
              }
            }
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "What events are in my database?"
          }
        ]
      }'

    MCP設定オプション:

    • default_configs.defer_loading: MCPサーバーからのすべてのツールのデフォルトを設定します
    • configs: 名前で特定のツールのデフォルトをオーバーライドします
    • 複数のMCPサーバーをツール検索と組み合わせて、大規模なツールライブラリを実現します

    カスタムツール検索実装

    カスタムツール(例:埋め込みやセマンティック検索を使用)からtool_referenceブロックを返すことで、独自のツール検索ロジックを実装できます。

    JSON
    {
      "type": "tool_result",
      "tool_use_id": "toolu_custom_search",
      "content": [{ "type": "tool_reference", "tool_name": "discovered_tool_name" }]
    }

    参照されるすべてのツールは、トップレベルのtoolsパラメータにdefer_loading: trueを指定した対応するツール定義を持つ必要があります。このアプローチにより、ツール検索システムとの互換性を維持しながら、より高度な検索アルゴリズムを使用できます。

    埋め込みを使用した完全な例については、埋め込みを使用したツール検索クックブックを参照してください。

    エラーハンドリング

    ツール検索ツールはツール使用例と互換性がありません。 ツール使用の例を提供する必要がある場合は、ツール検索なしの標準ツール呼び出しを使用してください。

    HTTPエラー(400ステータス)

    これらのエラーはリクエストが処理されるのを防ぎます。

    すべてのツールが遅延されている:

    {
      "type": "error",
      "error": {
        "type": "invalid_request_error",
        "message": "All tools have defer_loading set. At least one tool must be non-deferred."
      }
    }

    ツール定義がない:

    {
      "type": "error",
      "error": {
        "type": "invalid_request_error",
        "message": "Tool reference 'unknown_tool' has no corresponding tool definition"
      }
    }

    ツール結果エラー(200ステータス)

    ツール実行中のエラーは、200レスポンスとボディ内のエラー情報を返します。

    JSON
    {
      "type": "tool_result",
      "tool_use_id": "srvtoolu_01ABC123",
      "content": {
        "type": "tool_search_tool_result_error",
        "error_code": "invalid_pattern"
      }
    }

    エラーコード:

    • too_many_requests: ツール検索操作のレート制限を超過しました
    • invalid_pattern: 不正な形式の正規表現パターン
    • pattern_too_long: パターンが200文字制限を超えています
    • unavailable: ツール検索サービスが一時的に利用できません

    一般的な間違い

    プロンプトキャッシング

    ツール検索はプロンプトキャッシングと連携します。マルチターン会話を最適化するためにcache_controlブレークポイントを追加します。

    Python
    import anthropic
    
    client = anthropic.Anthropic()
    
    # ツール検索を使用した最初のリクエスト
    messages = [
        {
            "role": "user",
            "content": "What's the weather in Seattle?"
        }
    ]
    
    response1 = client.beta.messages.create(
        model="claude-sonnet-4-5-20250929",
        betas=["advanced-tool-use-2025-11-20"],
        max_tokens=2048,
        messages=messages,
        tools=[
            {
                "type": "tool_search_tool_regex_20251119",
                "name": "tool_search_tool_regex"
            },
            {
                "name": "get_weather",
                "description": "Get weather for a location",
                "input_schema": {
                    "type": "object",
                    "properties": {
                        "location": {"type": "string"}
                    },
                    "required": ["location"]
                },
                "defer_loading": True
            }
        ]
    )
    
    # Claudeのレスポンスを会話に追加します
    messages.append({
        "role": "assistant",
        "content": response1.content
    })
    
    # キャッシュブレークポイント付きの2番目のリクエスト
    messages.append({
        "role": "user",
        "content": "What about New York?",
        "cache_control": {"type": "ephemeral"}
    })
    
    response2 = client.beta.messages.create(
        model="claude-sonnet-4-5-20250929",
        betas=["advanced-tool-use-2025-11-20"],
        max_tokens=2048,
        messages=messages,
        tools=[
            {
                "type": "tool_search_tool_regex_20251119",
                "name": "tool_search_tool_regex"
            },
            {
                "name": "get_weather",
                "description": "Get weather for a location",
                "input_schema": {
                    "type": "object",
                    "properties": {
                        "location": {"type": "string"}
                    },
                    "required": ["location"]
                },
                "defer_loading": True
            }
        ]
    )
    
    print(f"Cache read tokens: {response2.usage.get('cache_read_input_tokens', 0)}")

    システムは会話履歴全体を通じてtool_referenceブロックを自動的に展開するため、Claudeは後続のターンで再検索することなく、検出されたツールを再利用できます。

    ストリーミング

    ストリーミングが有効な場合、ストリームの一部としてツール検索イベントを受け取ります。

    event: content_block_start
    data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "tool_search_tool_regex"}}
    
    // 検索クエリがストリーミングされます
    event: content_block_delta
    data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"query\":\"weather\"}"}}
    
    // 検索実行中に一時停止
    
    // 検索結果がストリーミングされます
    event: content_block_start
    data: {"type": "content_block_start", "index": 2, "content_block": {"type": "tool_result", "tool_use_id": "srvtoolu_xyz789", "content": [{"type": "tool_reference", "tool_name": "get_weather"}]}}
    
    // Claudeが検出されたツールで続行します

    バッチリクエスト

    メッセージバッチAPIにツール検索ツールを含めることができます。メッセージバッチAPIを通じたツール検索操作は、通常のメッセージAPIリクエストと同じ価格で課金されます。

    制限とベストプラクティス

    制限

    • 最大ツール数: カタログ内に10,000個のツール
    • 検索結果: 検索ごとに3~5個の最も関連性の高いツールを返します
    • パターン長: 正規表現パターンの最大200文字
    • モデルサポート: Sonnet 4.0以上、Opus 4.0以上のみ(Haikuなし)

    ツール検索を使用する場合

    適切なユースケース:

    • システムで10個以上のツールが利用可能
    • ツール定義が>10Kトークンを消費している
    • 大規模なツールセットでツール選択精度の問題が発生している
    • MCPで駆動されるシステムを構築している(複数のサーバー、200個以上のツール)
    • ツールライブラリが時間とともに成長している

    従来のツール呼び出しがより良い場合:

    • 合計10個未満のツール
    • すべてのツールがすべてのリクエストで頻繁に使用される
    • 非常に小さなツール定義(合計<100トークン)

    最適化のヒント

    • 最も頻繁に使用される3~5個のツールを遅延されていないものとして保ちます
    • 明確で説明的なツール名と説明を書きます
    • ユーザーがタスクを説明する方法と一致するセマンティックキーワードを説明に使用します
    • 利用可能なツールカテゴリを説明するシステムプロンプトセクションを追加します: 「Slack、GitHub、Jiraと相互作用するツールを検索できます」
    • Claudeが検出するツールを監視して、説明を改善します

    使用状況と価格

    ツール検索ツールの使用状況はレスポンス使用状況オブジェクトで追跡されます。

    JSON
    {
      "usage": {
        "input_tokens": 1024,
        "output_tokens": 256,
        "server_tool_use": {
          "tool_search_requests": 2
        }
      }
    }

    現在の価格情報については、価格ページを参照してください。

    • MCP統合
    • HTTPエラー(400ステータス)
    • ツール結果エラー(200ステータス)

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy