Tabel gejala-ke-perbaikan untuk kesalahan penggunaan alat yang paling umum. Setiap perbaikan merujuk silang ke halaman yang memiliki fitur tersebut.
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
| Claude memanggil alat A padahal Anda menginginkan alat B | Ambiguitas deskripsi | Pertajam deskripsi. Bedakan alat berdasarkan KAPAN menggunakannya, bukan hanya APA yang dilakukannya. Lihat Mendefinisikan alat. |
| Claude tidak pernah memanggil alat Anda | Tabrakan nama alat atau skema yang terlalu generik | Periksa nama duplikat di seluruh daftar alat Anda. Tambahkan input_examples untuk membuat penggunaan yang dimaksud menjadi konkret. |
| Claude memanggil dengan tipe parameter yang salah | Model menebak-nebak pada skema yang ambigu | Tambahkan strict: true (jika skema Anda berada dalam subset yang didukung) atau tambahkan input_examples. |
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
| Parameter yang tidak ada dalam skema Anda | Model menghasilkan berlebihan tanpa mode strict | Tambahkan strict: true jika skema Anda berada dalam subset yang didukung. |
| Nilai parameter di luar enum Anda | Mode strict tidak ada atau enum terlalu besar | Perkecil enum atau tambahkan input_examples yang menunjukkan pilihan yang valid. |
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
| Claude memanggil alat secara berurutan padahal paralel akan lebih baik | Pemformatan riwayat pesan | Kirim beberapa blok tool_result dalam SATU pesan user, bukan satu per giliran. Lihat Penggunaan alat paralel. |
disable_parallel_tool_use tampaknya diabaikan | Diatur terlalu terlambat dalam percakapan | Harus diatur pada permintaan yang mengembalikan tool_use. Mengaturnya pada permintaan berikutnya tidak berpengaruh pada pemanggilan alat sebelumnya. |
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
| Setiap permintaan adalah cache miss | tool_choice bervariasi antar permintaan | Jaga tool_choice tetap stabil atau tempatkan breakpoint cache_control sebelum titik variasi. Lihat Penggunaan alat dengan caching prompt. |
| Menambahkan alat di tengah percakapan merusak cache | Alat ditambahkan di awal array tools | Gunakan defer_loading: true dengan pencarian alat untuk menambahkan alat secara inline alih-alih memodifikasi bagian awal array. |
| Kesalahan | Penyebab | Perbaikan |
|---|---|---|
tool_use ids were found without tool_result blocks immediately after | tool_result tidak ada untuk beberapa id tool_use, atau tool_result bukan blok konten pertama dalam pesan user | Kembalikan satu tool_result untuk setiap blok tool_use dalam respons assistant. Letakkan blok tool_result sebelum teks apa pun. Lihat Menangani pemanggilan alat dan Penggunaan alat paralel. |
was found without a corresponding <name>_tool_result block | Giliran assistant sebelumnya memiliki blok server_tool_use tanpa blok hasil (paling sering, Claude memanggilnya bersamaan dengan alat klien), dan pesan user Anda berikutnya mengakhiri giliran tersebut (misalnya, dengan teks setelah blok tool_result) atau permintaan lanjutan tidak lagi mendefinisikan alat server tersebut (pesan kemudian diakhiri dengan but no <name> tool was provided) | Kirim pesan user yang hanya berisi blok tool_result untuk id tool_use klien dan pertahankan array tools yang sama. Lihat Alasan berhenti dan fallback. |
Input schema is not compatible with strict mode: string patterns are not supported | Menggunakan pattern dengan strict: true | Hapus pattern atau hilangkan strict: true. Kata kunci pattern belum termasuk dalam subset JSON Schema yang didukung. |
All tools have defer_loading: true | Tidak ada alat yang terlihat oleh model | Setidaknya satu alat harus dimuat segera. Alat pencarian alat itu sendiri tidak boleh memiliki defer_loading: true. |
Jika permintaan gagal dengan 400 invalid_request_error yang pesannya berisi `thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified saat melanjutkan percakapan setelah pemanggilan alat, aplikasi Anda mengubah blok thinking milik assistant sebelum mengirimkannya kembali. Kirim kembali seluruh pesan assistant tanpa perubahan, lalu tambahkan tool_result Anda.
Lihat Blok thinking tidak dapat dimodifikasi untuk kesalahan lengkap dan langkah-langkah perbaikan.
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
| Claude menolak untuk bertindak berdasarkan hasil alat, atau meminta pengguna untuk mengonfirmasi instruksi yang berasal darinya | Instruksi Anda sendiri dikirimkan di dalam konten tool_result | Claude dilatih untuk memperlakukan instruksi di dalam hasil alat sebagai konten pihak ketiga yang berpotensi tidak tepercaya. Pindahkan instruksi Anda keluar dari hasil alat: kirim instruksi tersebut dalam giliran user setelah blok tool_result, atau (pada Claude Opus 4.8 dan yang lebih baru) dalam pesan sistem di tengah percakapan. Batasi hasil alat hanya pada datanya saja. Lihat Memitigasi jailbreak dan prompt injection. |
| Gejala | Penyebab | Perbaikan |
|---|---|---|
| Perbandingan string pada input alat gagal dengan model yang lebih baru | Escaping Unicode dan forward-slash berbeda antar versi model | Parse dengan json.loads() atau JSON.parse(). Jangan pernah melakukan pencocokan string mentah pada input yang diserialisasi. |
Tulis skema dan deskripsi yang mengarahkan Claude ke alat yang tepat.
Jalankan alat dan kembalikan hasil dalam format pesan yang diperlukan.
Direktori lengkap alat skema Anthropic dan string versinya.
Was this page helpful?