Loading...
    • 開発者ガイド
    • API リファレンス
    • MCP
    • リソース
    • リリースノート
    Search...
    ⌘K
    はじめに
    Claude の紹介クイックスタート
    モデルと料金
    モデル概要モデルの選び方Claude 4.6 の新機能移行ガイドモデルの廃止料金
    Claude で構築する
    機能概要Messages API の使用停止理由の処理プロンプトのベストプラクティス
    コンテキスト管理
    コンテキストウィンドウコンパクションコンテキスト編集
    機能
    プロンプトキャッシング拡張思考適応型思考エフォートメッセージのストリーミングバッチ処理引用多言語サポートトークンカウントエンベディングビジョンPDF サポートFiles API検索結果構造化出力
    ツール
    概要ツール使用の実装方法きめ細かいツールストリーミングBash ツールコード実行ツールプログラムによるツール呼び出しコンピュータ使用ツールテキストエディタツールWeb フェッチツールWeb 検索ツールメモリツールツール検索ツール
    Agent Skills
    概要クイックスタートベストプラクティスエンタープライズ向け SkillsAPI での Skills の使用
    Agent SDK
    概要クイックスタートTypeScript SDKTypeScript V2(プレビュー)Python SDK移行ガイド
    API での MCP
    MCP コネクタリモート MCP サーバー
    サードパーティプラットフォームの Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    プロンプトエンジニアリング
    概要プロンプトジェネレータープロンプトテンプレートの使用プロンプト改善ツール明確かつ直接的に例を使う(マルチショットプロンプティング)Claude に考えさせる(CoT)XML タグを使うClaude に役割を与える(システムプロンプト)複雑なプロンプトを連鎖させる長文コンテキストのヒント拡張思考のヒント
    テストと評価
    成功基準の定義テストケースの開発評価ツールの使用レイテンシの削減
    ガードレールの強化
    ハルシネーションの削減出力の一貫性を高めるジェイルブレイクの軽減ストリーミング拒否プロンプト漏洩の防止Claude をキャラクターに保つ
    管理とモニタリング
    Admin API 概要データレジデンシーワークスペースUsage and Cost APIClaude Code Analytics APIゼロデータリテンション
    Console
    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
    • 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
    ツール

    きめ細かいツールストリーミング

    きめ細かいツールストリーミングにより、バッファリングやJSON検証なしでツール使用パラメータ値のストリーミングが可能になり、大きなパラメータの受信開始までのレイテンシーが削減されます。

    きめ細かいツールストリーミングは、すべてのモデルとすべてのプラットフォームで一般提供されており、ベータヘッダーは不要です。バッファリングやJSON検証なしでツール使用パラメータ値のストリーミングを可能にし、大きなパラメータの受信開始までのレイテンシーを削減します。

    きめ細かいツールストリーミングを使用する場合、無効または部分的なJSON入力を受信する可能性があります。コード内でこれらのエッジケースを考慮するようにしてください。

    きめ細かいツールストリーミングの使い方

    きめ細かいツールストリーミングは、すべてのモデルとすべてのプラットフォーム(Claude API、Amazon Bedrock、Google Vertex AI、Microsoft Foundry)で利用可能です。使用するには、きめ細かいストリーミングを有効にしたいツールで eager_input_streaming を true に設定し、リクエストでストリーミングを有効にします。

    APIできめ細かいツールストリーミングを使用する方法の例を以下に示します:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-opus-4-6",
        "max_tokens": 65536,
        "tools": [
          {
            "name": "make_file",
            "description": "Write text to a file",
            "eager_input_streaming": true,
            "input_schema": {
              "type": "object",
              "properties": {
                "filename": {
                  "type": "string",
                  "description": "The filename to write text to"
                },
                "lines_of_text": {
                  "type": "array",
                  "description": "An array of lines of text to write to the file"
                }
              },
              "required": ["filename", "lines_of_text"]
            }
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Can you write a long poem and make a file called poem.txt?"
          }
        ],
        "stream": true
      }' | jq '.usage'

    この例では、きめ細かいツールストリーミングにより、Claudeは lines_of_text パラメータが有効なJSONかどうかを検証するためのバッファリングなしで、長い詩の行をツール呼び出し make_file にストリーミングできます。これにより、パラメータ全体がバッファリングされて検証されるのを待つことなく、パラメータストリームが到着するたびに確認できます。

    きめ細かいツールストリーミングでは、ツール使用チャンクのストリーミングがより速く開始され、多くの場合、チャンクが長くなり、単語の区切りが少なくなります。これはチャンキング動作の違いによるものです。

    例:

    きめ細かいストリーミングなし(15秒の遅延):

    Chunk 1: '{"'
    Chunk 2: 'query": "Ty'
    Chunk 3: 'peScri'
    Chunk 4: 'pt 5.0 5.1 '
    Chunk 5: '5.2 5'
    Chunk 6: '.3'
    Chunk 8: ' new f'
    Chunk 9: 'eatur'
    ...

    きめ細かいストリーミングあり(3秒の遅延):

    Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3'
    Chunk 2: ' new features comparison'

    きめ細かいストリーミングはバッファリングやJSON検証なしでパラメータを送信するため、結果のストリームが有効なJSON文字列で完了する保証はありません。 特に、停止理由 max_tokens に達した場合、ストリームはパラメータの途中で終了し、不完全になる可能性があります。一般的に、max_tokens に達した場合の処理を行うための特別なサポートを記述する必要があります。

    ツールレスポンスにおける無効なJSONの処理

    きめ細かいツールストリーミングを使用する場合、モデルから無効または不完全なJSONを受信する可能性があります。この無効なJSONをエラーレスポンスブロックでモデルに返す必要がある場合、適切な処理を確保するためにJSONオブジェクトでラップすることができます(適切なキーを使用して)。例:

    {
      "INVALID_JSON": "<your invalid json string>"
    }

    このアプローチにより、モデルはコンテンツが無効なJSONであることを理解しつつ、デバッグ目的で元の不正なデータを保持できます。

    無効なJSONをラップする際は、ラッパーオブジェクトで有効なJSON構造を維持するために、無効なJSON文字列内の引用符や特殊文字を適切にエスケープしてください。

    Was this page helpful?

    • ツールレスポンスにおける無効なJSONの処理