Loading...
    • 開發者指南
    • API 參考
    • MCP
    • 資源
    • 發行說明
    Search...
    ⌘K
    入門
    Claude 簡介快速開始
    模型與定價
    模型概覽選擇模型Claude 4.6 新功能遷移指南模型棄用定價
    使用 Claude 構建
    功能概覽使用 Messages API處理停止原因提示詞最佳實踐
    上下文管理
    上下文視窗壓縮上下文編輯
    功能
    提示詞快取延伸思考自適應思考思考力度串流訊息批次處理引用多語言支援Token 計數嵌入視覺PDF 支援Files API搜尋結果結構化輸出
    工具
    概覽如何實作工具使用細粒度工具串流Bash 工具程式碼執行工具程式化工具呼叫電腦使用工具文字編輯器工具網頁擷取工具網頁搜尋工具記憶工具工具搜尋工具
    Agent Skills
    概覽快速開始最佳實踐企業級 Skills透過 API 使用 Skills
    Agent SDK
    概覽快速開始TypeScript SDKTypeScript V2(預覽版)Python SDK遷移指南
    API 中的 MCP
    MCP 連接器遠端 MCP 伺服器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示詞工程
    概覽提示詞產生器使用提示詞範本提示詞改進器清晰直接使用範例(多範例提示)讓 Claude 思考(CoT)使用 XML 標籤賦予 Claude 角色(系統提示詞)串聯複雜提示詞長上下文技巧延伸思考技巧
    測試與評估
    定義成功標準開發測試案例使用評估工具降低延遲
    強化防護機制
    減少幻覺提高輸出一致性防範越獄攻擊串流拒絕減少提示詞洩漏讓 Claude 保持角色
    管理與監控
    Admin API 概覽資料駐留工作區用量與成本 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
    工具

    細粒度工具串流

    了解如何使用細粒度工具串流來減少接收大型參數的延遲。

    細粒度工具串流已在所有模型和所有平台上正式可用,無需 beta 標頭。它能夠在不進行緩衝或 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 能夠將長詩的各行串流到工具呼叫 make_file 中,而無需緩衝來驗證 lines_of_text 參數是否為有效的 JSON。這意味著您可以在參數串流到達時即時查看,而無需等待整個參數緩衝和驗證完成。

    使用細粒度工具串流時,工具使用區塊開始串流的速度更快,且通常更長並包含更少的斷詞。這是由於分塊行為的差異所致。

    範例:

    不使用細粒度串流(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