Loading...
  • ビルド
  • 管理
  • モデルと料金
  • クライアントSDK
  • APIリファレンス
Search...
⌘K
Log in
サーバーツール
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

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

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • 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
  • 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
ビルド/ツール

サーバーツール

Anthropic実行ツールの操作:server_tool_useブロック、pause_turn継続、およびドメインフィルタリング。

このページでは、サーバー実行ツールの共有メカニクスについて説明します:server_tool_useブロック、pause_turn継続、ZDRの考慮事項、およびドメインフィルタリングです。個別のツールについては、ツールリファレンスを参照してください。

server_tool_useブロック

server_tool_useブロックは、サーバー実行ツールが実行されるとClaudeの応答に表示されます。そのidフィールドはsrvtoolu_プレフィックスを使用して、クライアントツール呼び出しと区別します:

{
  "type": "server_tool_use",
  "id": "srvtoolu_01A2B3C4D5E6F7G8H9",
  "name": "web_search",
  "input": { "query": "latest quantum computing breakthroughs" }
}

APIはツールを内部で実行します。呼び出しとその結果は応答に表示されますが、実行を処理する必要はありません。クライアントtool_useブロックとは異なり、tool_resultで応答する必要はありません。結果ブロックは同じアシスタントターン内のserver_tool_useブロックの直後に表示されます。

サーバー側ループとpause_turn

ウェブ検索などのサーバーツールを使用する場合、APIはpause_turn停止理由を返す可能性があり、これはAPIが長時間実行されるターンを一時停止したことを示します。

pause_turn停止理由を処理する方法は次のとおりです:

# Initial request with web search
response = client.messages.create(
    model="claude-opus-4-7",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": "Search for comprehensive information about quantum computing breakthroughs in 2025",
        }
    ],
    tools=[{"type": "web_search_20250305", "name": "web_search", "max_uses": 10}],
)

# Check if the response has pause_turn stop reason
if response.stop_reason == "pause_turn":
    # Continue the conversation with the paused content
    messages = [
        {
            "role": "user",
            "content": "Search for comprehensive information about quantum computing breakthroughs in 2025",
        },
        {"role": "assistant", "content": response.content},
    ]

    # Send the continuation request
    continuation = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=1024,
        messages=messages,
        tools=[{"type": "web_search_20250305", "name": "web_search", "max_uses": 10}],
    )

    print(continuation)
else:
    print(response)

pause_turnを処理する場合:

  • 会話を続ける: 一時停止された応答をそのまま後続のリクエストで渡して、Claudeがターンを続行できるようにします
  • 必要に応じて変更: 会話を中断またはリダイレクトしたい場合は、オプションで続行前にコンテンツを変更できます
  • ツール状態を保持: 機能を維持するために、継続リクエストに同じツールを含めます

ZDRとallowed_callers

ウェブ検索の基本バージョン(web_search_20250305)とウェブフェッチ(web_fetch_20250910)は、Zero Data Retention(ZDR)の対象です。

動的フィルタリング付きの_20260209バージョンは、動的フィルタリングが内部でコード実行に依存しているため、デフォルトではZDR対象ではありません。

_20260209サーバーツールをZDRで使用するには、ツールで"allowed_callers": ["direct"]を設定して動的フィルタリングを無効にします:

{
  "type": "web_search_20260209",
  "name": "web_search",
  "allowed_callers": ["direct"]
}

これにより、ツールは直接呼び出しのみに制限され、内部コード実行ステップをバイパスします。

ウェブフェッチツール自体はZDR対象ですが、Claudeがサイトからコンテンツをフェッチする場合、ウェブサイトパブリッシャーはURLに渡されたパラメータを保持する可能性があります。

ドメインフィルタリング

ウェブにアクセスするサーバーツールは、allowed_domainsおよびblocked_domainsパラメータを受け入れて、Claudeが到達できるドメインを制御します。

ドメインフィルタを使用する場合:

  • ドメインはHTTP/HTTPSスキームを含めないでください(https://example.comの代わりにexample.comを使用)
  • サブドメインは自動的に含まれます(example.comはdocs.example.comをカバー)
  • 特定のサブドメインは結果をそのサブドメインのみに制限します(docs.example.comはexample.comまたはapi.example.comからではなく、そのサブドメインからのみ結果を返す)
  • サブパスはサポートされており、パスの後のすべてにマッチします(example.com/blogはexample.com/blog/post-1にマッチ)
  • allowed_domainsまたはblocked_domainsのいずれかを使用できますが、同じリクエストで両方を使用することはできません

ワイルドカードサポート:

  • ドメインエントリごとに1つのワイルドカード(*)のみが許可され、ドメイン部分の後(パス内)に表示される必要があります
  • 有効:example.com/*、example.com/*/articles
  • 無効:*.example.com、ex*.com、example.com/*/news/*

無効なドメイン形式はinvalid_tool_inputツールエラーを返します。

リクエストレベルのドメイン制限は、Consoleで設定された組織レベルのドメイン制限と互換性がある必要があります。リクエストレベルのドメインは、組織レベルのリストを上書きまたは拡張するのではなく、ドメインをさらに制限することのみができます。リクエストに組織設定と競合するドメインが含まれている場合、APIは検証エラーを返します。

ドメイン名のUnicode文字は、異なるスクリプトの視覚的に類似した文字がドメインフィルタをバイパスできるホモグラフ攻撃を通じて、セキュリティの脆弱性を作成する可能性があることに注意してください。たとえば、аmazon.com(キリル文字の「а」を使用)はamazon.comと同じに見えるかもしれませんが、異なるドメインを表します。

ドメイン許可/ブロックリストを設定する場合:

  • 可能な限りASCIーのみのドメイン名を使用してください
  • URLパーサーがUnicode正規化を異なる方法で処理する可能性があることを考慮してください
  • 潜在的なホモグラフバリエーションでドメインフィルタをテストしてください
  • 疑わしいUnicode文字がないか定期的にドメイン設定を監査してください

コード実行による動的フィルタリング

ウェブ検索とウェブフェッチの_20260209バージョンは、検索結果に対して動的フィルタを適用するために内部でコード実行を使用します。

スタンドアロンcode_executionツールを_20260209バージョンのウェブツールと一緒に含めると、2つの実行環境が作成され、モデルを混乱させる可能性があります。一方を使用するか、両方を同じバージョンにピンしてください。

サーバーツールイベントのストリーミング

サーバーツールイベントは通常のSSEフローの一部としてストリーミングされます。server_tool_useブロックとその結果は、テキストとクライアントツール呼び出しと同じ方法でcontent_block_startおよびcontent_block_deltaイベントとして到着します。

完全なイベントリファレンスについては、ストリーミングを参照してください。個別のツールページは、異なる場合はツール固有のイベント名を文書化します。

バッチリクエスト

すべてのサーバーツールはバッチ処理をサポートしています。バッチ処理を参照してください。

次のステップ

ウェブ検索

ウェブを検索して結果を引用します。

ウェブフェッチ

特定のURLからコンテンツを取得します。

コード実行

サンドボックスコンテナでPythonを実行します。

ツール検索

オンデマンドでツールを検出してロードします。

Was this page helpful?

  • server_tool_useブロック
  • サーバー側ループとpause_turn
  • ZDRとallowed_callers