Tool use kini mendukung streaming berbutir halus untuk nilai parameter. Ini memungkinkan pengembang untuk melakukan streaming parameter tool use tanpa buffering / validasi JSON, mengurangi latensi untuk mulai menerima parameter besar.

Streaming tool berbutir halus adalah fitur beta. Pastikan untuk mengevaluasi respons Anda sebelum menggunakannya dalam produksi.

Silakan gunakan formulir ini untuk memberikan umpan balik tentang kualitas respons model, API itu sendiri, atau kualitas dokumentasi—kami tidak sabar mendengar dari Anda!

Ketika menggunakan streaming tool berbutir halus, Anda berpotensi menerima input JSON yang tidak valid atau parsial. Pastikan untuk memperhitungkan kasus-kasus edge ini dalam kode Anda.

Cara menggunakan streaming tool berbutir halus

Untuk menggunakan fitur beta ini, cukup tambahkan header beta fine-grained-tool-streaming-2025-05-14 ke permintaan tool use dan aktifkan streaming.

Berikut adalah contoh cara menggunakan streaming tool berbutir halus dengan 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" \
  -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'

Dalam contoh ini, streaming tool berbutir halus memungkinkan Claude untuk melakukan streaming baris-baris puisi panjang ke dalam panggilan tool make_file tanpa buffering untuk memvalidasi apakah parameter lines_of_text adalah JSON yang valid. Ini berarti Anda dapat melihat parameter streaming saat tiba, tanpa harus menunggu seluruh parameter untuk buffer dan validasi.

Dengan streaming tool berbutir halus, chunk tool use mulai streaming lebih cepat, dan sering kali lebih panjang dan mengandung lebih sedikit jeda kata. Ini disebabkan oleh perbedaan dalam perilaku chunking.

Contoh:

Tanpa streaming berbutir halus (penundaan 15 detik):

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

Dengan streaming berbutir halus (penundaan 3 detik):

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

Karena streaming berbutir halus mengirim parameter tanpa buffering atau validasi JSON, tidak ada jaminan bahwa stream yang dihasilkan akan selesai dalam string JSON yang valid. Khususnya, jika alasan berhenti max_tokens tercapai, stream mungkin berakhir di tengah-tengah parameter dan mungkin tidak lengkap. Anda umumnya harus menulis dukungan khusus untuk menangani ketika max_tokens tercapai.