Halaman ini mencakup siklus hidup pemanggilan alat: membaca blok tool_use dari respons Claude, memformat blok tool_result dalam balasan Anda, dan menandakan kesalahan. Untuk abstraksi SDK yang menangani ini secara otomatis, lihat Tool Runner.
Lebih Sederhana dengan Tool Runner: Penanganan alat manual yang dijelaskan di halaman ini dikelola secara otomatis oleh Tool Runner. Gunakan halaman ini ketika Anda memerlukan kontrol khusus atas eksekusi alat.
Respons Claude berbeda tergantung pada apakah menggunakan alat klien atau server.
Respons akan memiliki stop_reason dari tool_use dan satu atau lebih blok konten tool_use yang mencakup:
id: Pengenal unik untuk blok penggunaan alat tertentu ini. Ini akan digunakan untuk mencocokkan hasil alat nanti.name: Nama alat yang digunakan.input: Objek yang berisi input yang diteruskan ke alat, sesuai dengan input_schema alat.Ketika Anda menerima respons penggunaan alat untuk alat klien, Anda harus:
name, id, dan input dari blok tool_use.input alat.role dari user, dan blok content yang berisi tipe tool_result dan informasi berikut:
tool_use_id: id dari permintaan penggunaan alat ini adalah hasil untuk.content: Hasil alat, sebagai string (misalnya, ), daftar blok konten bersarang (misalnya, ), atau daftar blok dokumen (misalnya, ). Blok konten ini dapat menggunakan tipe , , atau .Persyaratan pemformatan penting:
Misalnya, ini akan menyebabkan kesalahan 400:
{
"role": "user",
"content": [
{ "type": "text", "text": "Here are the results:" }, // ❌ Text before tool_result
{ "type": "tool_result", "tool_use_id": "toolu_01" /* ... */ }
]
}Setelah menerima hasil alat, Claude akan menggunakan informasi tersebut untuk terus menghasilkan respons terhadap prompt pengguna asli.
Claude menjalankan alat secara internal dan menggabungkan hasilnya langsung ke dalam responsnya tanpa memerlukan interaksi pengguna tambahan.
Perbedaan dari API lain
Tidak seperti API yang memisahkan penggunaan alat atau menggunakan peran khusus seperti tool atau function, API Claude mengintegrasikan alat langsung ke dalam struktur pesan user dan assistant.
Pesan berisi array blok text, image, tool_use, dan tool_result. Pesan user mencakup konten klien dan tool_result, sementara pesan assistant berisi konten yang dihasilkan AI dan tool_use.
Ada beberapa jenis kesalahan berbeda yang dapat terjadi saat menggunakan alat dengan Claude:
Was this page helpful?
"content": "15 degrees""content": [{"type": "text", "text": "15 degrees"}]"content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}]textimagedocumentis_error (opsional): Atur ke true jika eksekusi alat menghasilkan kesalahan.Ini benar:
{
"role": "user",
"content": [
{ "type": "tool_result", "tool_use_id": "toolu_01" /* ... */ },
{ "type": "text", "text": "What should I do next?" } // ✅ Text after tool_result
]
}Jika Anda menerima kesalahan seperti "tool_use ids were found without tool_result blocks immediately after", periksa bahwa hasil alat Anda diformat dengan benar.