Loading...
  • Bangun
  • Admin
  • Model & harga
  • Client SDK
  • Referensi API
Search...
⌘K
Log in
Tangani panggilan alat
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
  • 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
  • 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
Bangun/Alat

Menangani pemanggilan alat

Mengurai blok tool_use, memformat respons tool_result, dan menangani kesalahan dengan is_error.

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.

Menangani hasil dari alat klien

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:

  1. Ekstrak name, id, dan input dari blok tool_use.
  2. Jalankan alat sebenarnya di basis kode Anda yang sesuai dengan nama alat tersebut, meneruskan input alat.
  3. Lanjutkan percakapan dengan mengirim pesan baru dengan 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:

  • Blok hasil alat harus segera mengikuti blok penggunaan alat yang sesuai dalam riwayat pesan. Anda tidak dapat menyertakan pesan apa pun antara pesan penggunaan alat asisten dan pesan hasil alat pengguna.
  • Dalam pesan pengguna yang berisi hasil alat, blok tool_result harus datang PERTAMA dalam array konten. Teks apa pun harus datang SETELAH semua hasil alat.

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.

Menangani hasil dari alat server

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.

Menangani kesalahan dengan is_error

Ada beberapa jenis kesalahan berbeda yang dapat terjadi saat menggunakan alat dengan Claude:

Langkah berikutnya

  • Untuk menjalankan beberapa alat dalam satu putaran, lihat Parallel tool use.
  • Untuk abstraksi SDK yang mengotomatisasi loop ini, lihat Tool Runner.
  • Untuk alur kerja tool-use lengkap, lihat Define tools.

Was this page helpful?

  • Menangani hasil dari alat klien
  • Menangani hasil dari alat server
  • Menangani kesalahan dengan is_error
  • Langkah berikutnya
"content": "15 degrees"
"content": [{"type": "text", "text": "15 degrees"}]
"content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}]
text
image
document
  • is_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.