Die Tool-Nutzung unterstützt jetzt feinkörniges Streaming für Parameterwerte. Dies ermöglicht es Entwicklern, Tool-Nutzungsparameter ohne Pufferung / JSON-Validierung zu streamen, wodurch die Latenz für den Beginn des Empfangs großer Parameter reduziert wird.

Feinkörniges Tool-Streaming ist eine Beta-Funktion. Bitte stellen Sie sicher, dass Sie Ihre Antworten bewerten, bevor Sie sie in der Produktion verwenden.

Bitte verwenden Sie dieses Formular, um Feedback zur Qualität der Modellantworten, der API selbst oder der Qualität der Dokumentation zu geben—wir können es kaum erwarten, von Ihnen zu hören!

Bei der Verwendung von feinkörnigem Tool-Streaming können Sie möglicherweise ungültige oder unvollständige JSON-Eingaben erhalten. Bitte stellen Sie sicher, dass Sie diese Grenzfälle in Ihrem Code berücksichtigen.

Wie man feinkörniges Tool-Streaming verwendet

Um diese Beta-Funktion zu verwenden, fügen Sie einfach den Beta-Header fine-grained-tool-streaming-2025-05-14 zu einer Tool-Nutzungsanfrage hinzu und aktivieren Sie das Streaming.

Hier ist ein Beispiel, wie man feinkörniges Tool-Streaming mit der API verwendet:

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" \
  -H "anthropic-beta: fine-grained-tool-streaming-2025-05-14" \
  -d '{
    "model": "claude-sonnet-4-20250514",
    "max_tokens": 65536,
    "tools": [
      {
        "name": "make_file",
        "description": "Write text to a file",
        "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'

In diesem Beispiel ermöglicht feinkörniges Tool-Streaming Claude, die Zeilen eines langen Gedichts in den Tool-Aufruf make_file zu streamen, ohne zu puffern, um zu validieren, ob der Parameter lines_of_text gültiges JSON ist. Das bedeutet, Sie können den Parameter-Stream sehen, während er ankommt, ohne warten zu müssen, bis der gesamte Parameter gepuffert und validiert ist.

Mit feinkörnigem Tool-Streaming beginnen Tool-Nutzungs-Chunks schneller zu streamen und sind oft länger und enthalten weniger Wortumbrüche. Dies liegt an Unterschieden im Chunking-Verhalten.

Beispiel:

Ohne feinkörniges Streaming (15s Verzögerung):

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'
...

Mit feinkörnigem Streaming (3s Verzögerung):

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

Da feinkörniges Streaming Parameter ohne Pufferung oder JSON-Validierung sendet, gibt es keine Garantie, dass der resultierende Stream in einem gültigen JSON-String abgeschlossen wird. Insbesondere, wenn der Stopp-Grund max_tokens erreicht wird, kann der Stream mitten in einem Parameter enden und unvollständig sein. Sie müssen im Allgemeinen spezifische Unterstützung schreiben, um zu handhaben, wenn max_tokens erreicht wird.