View a markdown version of this page

Penggunaan alat Claude Anthropic - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penggunaan alat Claude Anthropic

Awas

Beberapa fungsi di bawah ini ditawarkan dalam versi beta seperti yang ditunjukkan. Fitur-fitur ini disediakan untuk Anda sebagai “Layanan Beta” sebagaimana didefinisikan dalam Ket AWS entuan Layanan. Ini tunduk pada Perjanjian Anda dengan AWS dan Ketentuan AWS Layanan, dan model EULA yang berlaku.

Dengan Anthropic Claude model, Anda dapat menentukan alat yang dapat digunakan model untuk menjawab pesan. Misalnya, Anda dapat menentukan alat yang mendapatkan lagu paling populer di stasiun radio. Jika pengguna meneruskan pesan Apa lagu paling populer di WZPZ? , model menentukan bahwa alat yang Anda tentukan dapat membantu menjawab pertanyaan. Dalam tanggapannya, model meminta Anda menjalankan alat atas namanya. Anda kemudian menjalankan alat dan meneruskan hasil alat ke model, yang kemudian menghasilkan respons untuk pesan asli. Untuk informasi selengkapnya, lihat Penggunaan alat (pemanggilan fungsi) dalam Anthropic Claude dokumentasi.

Tip

Kami menyarankan Anda menggunakan Responses API atau Messages API untuk mengintegrasikan penggunaan alat ke dalam aplikasi Anda. Untuk informasi selengkapnya, lihat Menggunakan alat untuk menyelesaikan respons model Amazon Bedrock.

penting

Claude Sonnet 4.5 sekarang mempertahankan pemformatan yang disengaja dalam parameter string panggilan alat. Sebelumnya, baris baru yang tertinggal dalam parameter string terkadang salah dilucuti. Perbaikan ini memastikan bahwa alat yang membutuhkan pemformatan yang tepat (seperti editor teks) menerima parameter persis seperti yang dimaksudkan. Ini adalah peningkatan di balik layar tanpa perlu perubahan API. Namun, alat dengan parameter string sekarang dapat menerima nilai dengan baris baru yang sebelumnya dilucuti.

catatan

Claude Sonnet 4.5 menyertakan pengoptimalan otomatis untuk meningkatkan kinerja model. Pengoptimalan ini dapat menambahkan sejumlah kecil token ke permintaan, tetapi Anda tidak ditagih untuk token yang ditambahkan sistem ini.

Anda menentukan alat yang ingin Anda sediakan untuk model di tools lapangan. Contoh berikut adalah untuk alat yang mendapatkan lagu paling populer di stasiun radio.

[ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "input_schema": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } ]

Ketika model membutuhkan alat untuk menghasilkan respons terhadap pesan, ia mengembalikan informasi tentang alat yang diminta, dan input ke alat, di content bidang pesan. Ini juga menetapkan alasan berhenti untuk respons terhadaptool_use.

{ "id": "msg_bdrk_01USsY5m3XRUF4FCppHP8KBx", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "stop_sequence": null, "usage": { "input_tokens": 375, "output_tokens": 36 }, "content": [ { "type": "tool_use", "id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "name": "top_song", "input": { "sign": "WZPZ" } } ], "stop_reason": "tool_use" }

Dalam kode Anda, Anda memanggil alat atas nama alat. Anda kemudian meneruskan hasil alat (tool_result) dalam pesan pengguna ke model.

{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "content": "Elemental Hotel" } ] }

Dalam tanggapannya, model menggunakan hasil alat untuk menghasilkan respons untuk pesan asli.

{ "id": "msg_bdrk_012AaqvTiKuUSc6WadhUkDLP", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "content": [ { "type": "text", "text": "According to the tool, the most popular song played on radio station WZPZ is \"Elemental Hotel\"." } ], "stop_reason": "end_turn" }

Fine-grained alat streaming

Fine-grained alat streaming adalah kemampuan Anthropic Claude model yang tersedia denganClaude Sonnet 4.5,Claude Haiku 4.5,Claude Sonnet 4, dan Claude Opus 4. Dengan streaming alat yang halus, Claude pengembang dapat melakukan streaming parameter penggunaan alat tanpa buffering atau validasi JSON, mengurangi latensi untuk mulai menerima parameter besar.

catatan

Saat menggunakan streaming alat berbutir halus, Anda mungkin berpotensi menerima input JSON yang tidak valid atau sebagian. Pastikan untuk memperhitungkan kasus tepi ini dalam kode Anda.

Untuk menggunakan fitur ini, cukup tambahkan header fine-grained-tool-streaming-2025-05-14 ke permintaan penggunaan alat.

Berikut adalah contoh cara menentukan header streaming alat berbutir halus:

{ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "anthropic_beta": ["fine-grained-tool-streaming-2025-05-14"], "messages": [ { "role": "user", "content": "Can you write a long poem and make a file called poem.txt?" } ], "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" ] } } ] }

Dalam contoh ini, streaming alat berbutir halus memungkinkan Claude untuk mengalirkan baris puisi panjang ke dalam panggilan alat make_file tanpa buffering untuk memvalidasi apakah lines_of_text parameternya adalah JSON yang valid. Ini berarti Anda dapat melihat aliran parameter saat tiba, tanpa harus menunggu seluruh parameter untuk menyangga dan memvalidasi.

Dengan streaming alat yang halus, potongan penggunaan alat mulai streaming lebih cepat, dan seringkali lebih panjang dan mengandung lebih sedikit jeda kata. Hal ini disebabkan oleh perbedaan perilaku chunking.

Misalnya, 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'
catatan

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

Penggunaan komputer (Beta)

Penggunaan komputer adalah keluarga Anthropic Claude alat (dalam versi beta) untuk mengotomatiskan tugas antarmuka pengguna grafis (GUI). Untuk ikhtisar, bentuk Bedrock-specific permintaan Amazon, dan contoh ujung ke ujung, lihatGunakan alat penggunaan komputer untuk mengotomatiskan tugas GUI dengan model Amazon Bedrock. Untuk menemukan model mana yang mendukung penggunaan komputer pada setiap titik akhir, lihat tabel Kem ampuan dan Fitur di masing-masing titik akhirSekilas tentang model.

Untuk mengaktifkan penggunaan komputer atas permintaan, atur anthropic_beta ke versi penggunaan komputer dan sertakan entri alat yang cocok dengan versi type tersebut. Pasangan yang valid adalah:

Header beta Jenis alat komputer
computer-use-2025-11-24 computer_20251124
computer-use-2025-01-24 computer_20250124
computer-use-2024-10-22 computer_20241022

Setiap jenis alat hanya bekerja dengan subset model tertentu. Mengirimkan jenis alat yang tidak didukung model mengembalikan pesan 400 invalid_request_error dengan pesan seperti'claude-opus-4-7' does not support tool types: computer_20241022. Konfirmasikan dukungan di tabel Capabilities and Features model sebelum mengirim permintaan.

Untuk protokol alat yang mendasarinya, kosakata tindakan lengkap, dan panduan rekayasa cepat, lihat Penggunaan komputer dalam dokumentasiAnthropic.

Perangkat klien

Beberapa Claude model menerima dua toolset klien yang dibundel sebagai tools[].type nilai. Toolset menggabungkan kelompok alat klien terkait di bawah satu jenis, sehingga Anda tidak perlu mendeklarasikan setiap alat secara individual. Tidak ada anthropic_beta nilai yang diperlukan.

Jenis toolset Deskripsi
computer_toolset_20260801 Alat penggunaan komputer yang dibundel untuk interaksi desktop.
browser_toolset_20260801 Alat otomatisasi browser yang dibundel.

Seperti halnya alat klien individu, model meminta tindakan tetapi tidak menjalankannya. Anda menjalankan setiap tindakan yang diminta dan mengembalikan atool_result. Mengirimkan jenis toolset yang tidak didukung model mengembalikan a400 invalid_request_error. Untuk mengonfirmasi toolset mana yang diterima model, lihat bagian Kem ampuan dan Fitur di kartu model model.

Antropik alat yang ditentukan

Anthropicmenyediakan seperangkat alat yang telah ditentukan sebelumnya yang dapat digunakan Claude model untuk berinteraksi dengan komputer. Saat menentukan Anthropic alat yang ditentukan, tool_schema bidang description dan tidak diperlukan atau diizinkan. Model tidak menjalankan alat ini secara otomatis; Anda harus menjalankan setiap tindakan yang diminta dan mengembalikan a tool_result keClaude. Untuk menemukan alat mana yang diterima setiap model, lihat tabel Capabilities and Features di modelSekilas tentang model; mengirimkan jenis alat yang tidak didukung model mengembalikan a400 invalid_request_error.

Alat

Catatan

{ "type": "computer_20251124", "name": "computer" }

Alat penggunaan komputer terbaru. Gunakan dengan"anthropic_beta": ["computer-use-2025-11-24"].

{ "type": "computer_20250124", "name": "computer" }

Gunakan dengan"anthropic_beta": ["computer-use-2025-01-24"].

{ "type": "computer_20241022", "name": "computer" }

Warisan. Gunakan dengan"anthropic_beta": ["computer-use-2024-10-22"].

{ "type": "text_editor_20250124", "name": "str_replace_based_edit_tool" }

Perbarui ke str_replace_editor alat yang ada. Gunakan dengan "anthropic_beta": ["computer-use-2025-01-24"] atau["computer-use-2025-11-24"].

{ "type": "text_editor_20241022", "name": "str_replace_editor" }

Warisan. Gunakan dengan"anthropic_beta": ["computer-use-2024-10-22"].

{ "type": "bash_20250124", "name": "bash" }

Gunakan dengan "anthropic_beta": ["computer-use-2025-01-24"] atau["computer-use-2025-11-24"].

{ "type": "bash_20241022", "name": "bash" }

Warisan. Gunakan dengan"anthropic_beta": ["computer-use-2024-10-22"].

Bid type ang mengidentifikasi alat dan parameternya untuk tujuan validasi; name bidang adalah nama alat yang diekspos ke model.

Jika Anda ingin meminta model untuk menggunakan salah satu alat ini, Anda dapat secara eksplisit merujuk alat berdasarkan name bidang. Bid name ang harus unik dalam daftar alat; Anda tidak dapat mendefinisikan alat dengan alat yang name sama dengan alat Anthropic yang ditentukan dalam panggilan API yang sama.

Pembersihan panggilan alat otomatis (Beta)

Awas

Pembersihan panggilan alat otomatis tersedia sebagai “Layanan Beta” sebagaimana didefinisikan dalam Ket AWS entuan Layanan.

catatan

Fitur ini saat ini didukung pada Claude Sonnet 4/4 .5, Claude Haiku 4.5, dan Claude Opus. 4/4 1/4.5.

Pembersihan panggilan alat otomatis adalah kemampuan model Claude Anthropic (dalam versi beta). Dengan fitur ini, Claude dapat secara otomatis menghapus hasil penggunaan alat lama saat Anda mendekati batas token, memungkinkan manajemen konteks yang lebih efisien dalam skenario penggunaan alat multi-putaran. Untuk menggunakan pembersihan penggunaan alat, Anda perlu menambahkan context-management-2025-06-27 ke daftar header beta pada parameter permintaan anthropic_beta. Anda juga perlu menentukan penggunaan clear_tool_uses_20250919 dan memilih dari opsi konfigurasi berikut.

Ini adalah kontrol yang tersedia untuk strategi manajemen clear_tool_uses_20250919 konteks. Semua opsional atau memiliki default:

Opsi Konfigurasi Deskripsi

trigger

default: 100.000 token masukan

Mendefinisikan kapan strategi pengeditan konteks diaktifkan. Setelah prompt melebihi ambang batas ini, kliring akan dimulai. Anda dapat menentukan nilai ini di input_tokens atau tool_uses.

keep

default: 3 penggunaan alat

Mendefinisikan berapa banyak use/result pasangan alat terbaru yang harus disimpan setelah pembersihan terjadi. API menghapus interaksi alat tertua terlebih dahulu, mempertahankan yang terbaru. Bermanfaat ketika model membutuhkan akses ke interaksi alat terbaru untuk melanjutkan percakapan secara efektif.

clear_at_least (opsional)

Memastikan jumlah minimum token dihapus setiap kali strategi diaktifkan. Jika API tidak dapat menghapus setidaknya jumlah yang ditentukan, strategi tidak akan diterapkan. Ini berguna untuk menentukan apakah pembersihan konteks layak untuk merusak cache prompt Anda.

exclude_tools (opsional)

Daftar nama alat yang digunakan alat dan hasilnya tidak boleh dihapus. Berguna untuk melestarikan konteks penting.

clear_tool_inputs(opsional, default Salah)

Mengontrol apakah parameter panggilan alat dihapus bersama dengan hasil alat. Secara default, hanya hasil alat yang dihapus sambil menjaga panggilan alat asli Claude tetap terlihat, sehingga Claude dapat melihat operasi apa yang dilakukan bahkan setelah hasilnya dihapus.

catatan

Pembersihan alat akan membatalkan cache jika awalan berisi alat Anda.

penting

Alat web_search_20250305 server Anthropic tidak didukung di Amazon Bedrock.

Request
from anthropic import Anthropic from aws_bedrock_token_generator import provide_token token = provide_token(region="us-east-1") client = Anthropic( base_url="https://bedrock-runtime.us-east-1.amazonaws.com/anthropic", api_key=token, ) response = client.beta.messages.create( betas=["context-management-2025-06-27"], model="global.anthropic.claude-sonnet-4-20250514-v1:0", max_tokens=4096, messages=[ { "role": "user", "content": "Create a simple command line calculator app using Python" } ], tools=[ { "type": "text_editor_20250728", "name": "str_replace_based_edit_tool", "max_characters": 10000 } ], extra_body={ "context_management": { "edits": [ { "type": "clear_tool_uses_20250919", # The below parameters are OPTIONAL: # Trigger clearing when threshold is exceeded "trigger": { "type": "input_tokens", "value": 30000 }, # Number of tool uses to keep after clearing "keep": { "type": "tool_uses", "value": 3 }, # Optional: Clear at least this many tokens "clear_at_least": { "type": "input_tokens", "value": 5000 }, # Exclude these tools uses from being cleared "exclude_tools": ["str_replace_based_edit_tool"] } ] } } )
Response
{ "id": "msg_123", "type": "message", "role": "assistant", "content": [ { "type": "tool_use", "id": "toolu_456", "name": "data_analyzer", "input": { "data": "sample data" } } ], "context_management": { "applied_edits": [ { "type": "clear_tool_uses_20250919", "cleared_tool_uses": 8, # Number of tool use/result pairs that were cleared "cleared_input_tokens": 50000 # Total number of input tokens removed from the prompt } ] } "stop_reason": "tool_use", "usage": { "input_tokens": 150, "output_tokens": 50 } }
Streaming Response
data: {"type": "message_start", "message": {"id": "msg_123", "type": "message", "role": "assistant"}} data: {"type": "content_block_start", "index": 0, "content_block": {"type": "tool_use", "id": "toolu_456", "name": "data_analyzer", "input": {}}} data: {"type": "content_block_delta", "index": 0, "delta": {"type": "input_json_delta", "partial_json": "{\"data\": \"sample"}} data: {"type": "content_block_delta", "index": 0, "delta": {"type": "input_json_delta", "partial_json": " data\"}"}} data: {"type": "content_block_stop", "index": 0} data: {"type": "message_delta", "delta": {"stop_reason": "tool_use"}} data: {"type": "message_stop"} { "type": "message_delta", "delta": { "stop_reason": "end_turn", "stop_sequence": null, }, "usage": { "output_tokens": 1024 }, "context_management": { "applied_edits": [...], } }
catatan

Bedrock saat ini tidak mendukung manajemen clear_tool_uses_20250919 konteks di CountTokens API.

Alat Memori (Beta)

Awas

Alat Memori tersedia sebagai “Layanan Beta” sebagaimana didefinisikan dalam Ket AWS entuan Layanan.

Claude Sonnet 4.5 menyertakan alat memori baru. Alat ini memberi Anda cara untuk mengelola memori di seluruh percakapan. Dengan fitur ini, Anda dapat mengizinkan Claude untuk mengambil informasi di luar jendela konteks dengan menyediakan akses ke direktori lokal. Fitur ini tersedia dalam versi beta. Untuk menggunakan fitur ini, Anda harus menyertakan context-management-2025-06-27 dalam anthropic_beta parameter.

Definisi alat:

{ "type": "memory_20250818", "name": "memory" }

Contoh Permintaan:

{ "max_tokens": 2048, "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["context-management-2025-06-27"], "tools": [{ "type": "memory_20250818", "name": "memory" }], "messages": [ { "role": "user", "content": [{"type": "text", "text": "Remember that my favorite color is blue and I work at Amazon?"}] } ] }

Contoh Respon:

{ "id": "msg_vrtx_014mQ5ficCRB6PEa5k5sKqHd", "type": "message", "role": "assistant", "model": "claude-sonnet-4-20250514", "content": [ { "type": "text", "text": "I'll start by checking your memory directory and then record this important information about you." }, { "type": "tool_use", "id": "toolu_vrtx_01EU1UrCDigyPMRntr3VYvUB", "name": "memory", "input": { "command": "view", "path": "/memories" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 1403, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "output_tokens": 87 }, "context_management": { "applied_edits": [] } }

Pertimbangan biaya untuk penggunaan alat

Permintaan penggunaan alat diberi harga berdasarkan faktor-faktor berikut:

  1. Jumlah total token input yang dikirim ke model (termasuk dalam parameter alat).

  2. Jumlah token keluaran yang dihasilkan.

Alat dihargai sama dengan semua permintaan Claude API lainnya, tetapi menyertakan token tambahan per permintaan. Token tambahan dari penggunaan alat berasal dari yang berikut:

  • toolsParameter dalam permintaan API. Misalnya, nama alat, deskripsi, dan skema.

  • Blok tool_use konten apa pun dalam permintaan dan tanggapan API.

  • Blo tool_result k konten apa pun dalam permintaan API.

Saat Anda menggunakan alat, Anthropic model secara otomatis menyertakan prompt sistem khusus yang memungkinkan penggunaan alat. Jumlah token penggunaan alat yang diperlukan untuk setiap model tercantum dalam tabel berikut. Tabel ini tidak termasuk token tambahan yang dijelaskan sebelumnya. Perhatikan bahwa tabel ini mengasumsikan setidaknya satu alat disediakan. Jika tidak ada alat yang disediakan, maka pilihan alat tidak menggunakan 0 token prompt sistem tambahan.

Model Pilihan alat Jumlah token prompt sistem penggunaan alat

Claude Opus4.5

Claude Opus4.1

Claude Opus4

Claude Sonnet 4.5

Claude Haiku 4.5

Claude Sonnet 4

Claude 3.7 Sonnet

Claude 3.5 Sonnet v2

auto atau none 346

Claude Opus4.5

Claude Opus4.1

Claude Opus4

Claude Sonnet 4.5

Claude Haiku 4.5

Claude Sonnet 4

Claude 3.7 Sonnet

Claude 3.5 Sonnet v2

any atau tool 313

Claude 3.5 Sonnet

auto atau none 294

Claude 3.5 Sonnet

any atau tool 261

Claude 3 Opus

auto atau none 530

Claude 3 Opus

any atau tool 281

Claude 3 Sonnet

auto atau none 159

Claude 3 Sonnet

any atau tool 235

Claude 3 Haiku

auto atau none 264

Claude 3 Haiku

any atau tool 340

Alat pencarian alat (beta)

Alat Pencarian Alat memungkinkan Claude untuk bekerja dengan ratusan atau bahkan ribuan alat tanpa memuat semua definisi mereka ke jendela konteks di muka. Alih-alih mendeklarasikan semua alat dengan segera, Anda dapat menandainya dengandefer_loading: true, dan Claude menemukan dan memuat hanya alat yang dibutuhkan melalui mekanisme pencarian alat.

Untuk mengakses fitur ini, Anda harus menyertakan tool-search-tool-2025-10-19 dalam anthropic_beta parameter. Perhatikan bahwa fitur ini saat ini hanya tersedia melalui InvokeModelWithResponseStream API InvokeModel dan.

Definisi alat:

{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }

Contoh permintaan:

{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": [ "tool-search-tool-2025-10-19" ], "max_tokens": 4096, "tools": [{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }, { "name": "get_weather", "description": "Get current weather for a location", "input_schema": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] }, "defer_loading": true }, { "name": "search_files", "description": "Search through files in the workspace", "input_schema": { "type": "object", "properties": { "query": { "type": "string" }, "file_types": { "type": "array", "items": { "type": "string" } } }, "required": ["query"] }, "defer_loading": true } ], "messages": [{ "role": "user", "content": "What's the weather in Seattle?" }] }

Contoh tanggapan

{ "role": "assistant", "content": [{ "type": "text", "text": "I'll search for the appropriate tools to help with this task." }, { "type": "server_tool_use", "id": "srvtoolu_01ABC123", "name": "tool_search_tool_regex", "input": { "pattern": "weather" } }, { "type": "tool_search_tool_result", "tool_use_id": "srvtoolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } }, { "type": "text", "text": "Now I can check the weather." }, { "type": "tool_use", "id": "toolu_01XYZ789", "name": "get_weather", "input": { "location": "Seattle", "unit": "fahrenheit" } } ], "stop_reason": "tool_use" }

Contoh streaming

# Event 1: content_block_start(with complete server_tool_use block) { "type": "content_block_start", "index": 0, "content_block": { "type": "server_tool_use", "id": "srvtoolu_01ABC123", "name": "tool_search_tool_regex" } } # Event 2: content_block_delta(input JSON streamed) { "type": "content_block_delta", "index": 0, "delta": { "type": "input_json_delta", "partial_json": "{\"regex\": \".*weather.*\"}" } } # Event 3: content_block_stop(tool_use complete) { "type": "content_block_stop", "index": 0 } # Event 4: content_block_start(COMPLETE result in single chunk) { "type": "content_block_start", "index": 1, "content_block": { "type": "tool_search_tool_result", "tool_use_id": "srvtoolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } } } # Event 5: content_block_stop(result complete) { "type": "content_block_stop", "index": 1 }
Alat pencarian alat kustom

Anda dapat menerapkan alat pencarian alat khusus (misalnya, menggunakan embeddings) dengan mendefinisikan alat yang mengembalikan tool_reference blok. Alat kustom harus memiliki defer_loading: false sementara alat lain harus memilikidefer_loading: true. Ketika Anda menentukan Alat Pencarian Alat Anda sendiri, itu harus mengembalikan hasil alat yang berisi blok tool_reference konten yang mengarah ke alat yang Claude ingin Anda gunakan.

Format respons hasil Alat Pencarian Alat yang ditentukan pelanggan yang diharapkan:

{ "type": "tool_result", "tool_use_id": "toolu_01ABC123", "content": [{ "type": "tool_reference", "tool_name": "get_weather" }, { "type": "tool_reference", "tool_name": "weather_forecast" } ] }

tool_nameHarus cocok dengan alat yang ditentukan dalam permintaan dengandefer_loading: true. Claude kemudian akan memiliki akses ke skema lengkap alat tersebut.

Alat pencarian kustom - Contoh terperinci

Anda dapat menerapkan alat pencarian alat khusus (misalnya, menggunakan penyematan atau pencarian semantik) dengan mendefinisikan alat yang mengembalikan tool_reference blok. Ini memungkinkan mekanisme penemuan alat canggih di luar pencocokan regex.

Minta contoh dengan TST kustom:

{ "model": "claude-sonnet-4-5-20250929", "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["tool-search-tool-2025-10-19"], "max_tokens": 4096, "tools": [{ "name": "semantic_tool_search", "description": "Search for available tools using semantic similarity. Returns the most relevant tools for the given query.", "input_schema": { "type": "object", "properties": { "query": { "type": "string", "description": "Natural language description of what kind of tool is needed" }, "top_k": { "type": "integer", "description": "Number of tools to return (default: 5)" } }, "required": ["query"] }, "defer_loading": false }, { "name": "get_weather", "description": "Get current weather for a location", "input_schema": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] }, "defer_loading": true }, { "name": "search_flights", "description": "Search for available flights between locations", "input_schema": { "type": "object", "properties": { "origin": { "type": "string" }, "destination": { "type": "string" }, "date": { "type": "string" } }, "required": ["origin", "destination", "date"] }, "defer_loading": true } ], "messages": [{ "role": "user", "content": "What's the weather forecast in Seattle for the next 3 days?" }] }

Claudetanggapan (memanggil TST khusus):

{ "role": "assistant", "content": [{ "type": "text", "text": "I'll search for the appropriate tools to help with weather information." }, { "type": "tool_use", "id": "toolu_01ABC123", "name": "semantic_tool_search", "input": { "query": "weather forecast multiple days", "top_k": 3 } } ], "stop_reason": "tool_use" }
Customer-provided hasil alat

Setelah melakukan pencarian semantik pada perpustakaan alat, pelanggan mengembalikan referensi alat yang cocok:

{ "role": "user", "content": [{ "type": "tool_search_tool_result", "tool_use_id": "toolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } }] }

Claudetindak lanjut (menggunakan alat yang ditemukan)

{ "role": "assistant", "content": [{ "type": "text", "text": "I found the forecast tool. Let me get the weather forecast for Seattle." }, { "type": "tool_use", "id": "toolu_01DEF456", "name": "get_weather", "input": { "location": "Seattle, WA" } } ], "stop_reason": "tool_use" }
Penanganan kesalahan
  • Pengaturan defer_loading: true untuk semua alat (termasuk Alat Pencarian Alat) akan menimbulkan kesalahan 400.

  • Mener tool_reference uskan a tanpa definisi alat yang sesuai akan menimbulkan kesalahan 400

Contoh penggunaan alat (beta)

Claude Opus4.5 mendukung contoh yang disediakan pengguna dalam definisi alat untuk meningkatkan Claude kinerja penggunaan alat. Anda dapat memberikan contoh sebagai panggilan fungsi penuh, diformat persis seperti output LLM nyata, tanpa perlu diterjemahkan ke dalam format lain. Untuk menggunakan fitur ini, Anda harus menyertakan tool-examples-2025-10-29 dalam anthropic_beta parameter.

Contoh definisi alat:

{ "name": "get_weather", "description": "Get the current weather in a given location", "input_schema": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "Temperature unit" } }, "required": ["location"] }, "input_examples": [{ "location": "San Francisco, CA", "unit": "fahrenheit" }, { "location": "Tokyo, Japan", "unit": "celsius" }, { "location": "New York, NY" } ] }
Aturan validasi
  • Kesesuaian skema: Setiap contoh di dalam input_examples harus valid sesuai dengan alat. input_schema

    • Bidang wajib harus ada dalam setidaknya satu contoh.

    • Jenis bidang harus sesuai dengan skema.

    • Nilai enum harus dari set yang diizinkan.

    • Jika validasi gagal, kembalikan kesalahan 400 dengan detail tentang contoh validasi yang gagal.

  • Persyaratan array: input_examples harus berupa array (bisa kosong).

    • Array [] kosong valid dan setara dengan menghilangkan bidang.

    • Contoh tunggal masih harus dibungkus dalam array: [{...}]

    • Batas panjang: mulai dengan batas 20 contoh per definisi alat.

Contoh kesalahan:

// Invalid: Example doesn't match schema (missing required field) { "type": "invalid_request_error", "message": "Tool 'get_weather' input_examples[0] is invalid: Missing required property 'location'" } // Invalid: Example has wrong type for field { "type": "invalid_request_error", "message": "Tool 'search_products' input_examples[1] is invalid: Property 'filters.price_range.min' must be a number, got string" } // Invalid: input_examples on server-side tool { "type": "invalid_request_error", "message": "input_examples is not supported for server-side tool" }

Mid-conversation perubahan alat (Beta)

catatan

Fitur ini membutuhkan bendera beta mid-conversation-tool-changes-2026-07-01 dianthropic_beta. Saat ini didukung di Claude Opus 5 saja.

Claude Opus 5 mendukung penambahan dan penghapusan alat di tengah percakapan tool_addition dan blok tool_removal konten pada role: "system" pesan, alih-alih mengirim ulang tools array tingkat atas penuh (yang akan membatalkan cache prompt).

Minta bentuk

tool_additiondan tool_removal blok muncul dalam content array role: "system" pesan, di samping text blok opsional. Setiap blok merefer ensi kan satu alat melalui tool bidangnya. Beberapa blok diizinkan dan diproses dalam urutan konten.

{ "role": "system", "content": [ {"type": "tool_removal", "tool": {"type": "tool_reference", "name": "get_weather"}}, {"type": "tool_addition", "tool": {"type": "tool_reference", "name": "search_docs"}}, {"type": "text", "text": "Tool set updated for phase 2."} ] }

Kedua jenis blok mendukung cache_control cache yang cepat.

Varian referensi alat

toolBidang ini merupakan serikat yang didiskriminasi pada: type

jenis Bidang Mengacu pada Beta tambahan diperlukan
tool_reference name(string, pola^[a-zA-Z0-9_-]{1,128}$) Alat yang dideklarasikan langsung di tingkat atas tools[]
mcp_tool_reference server_name, name Alat MCP tunggal Sebuah mcp-client-* beta
mcp_toolset_reference server_name Setiap alat dalam toolset server MCP bernama Sebuah mcp-client-* beta

tool_referencetidak menerima formulir tersus {server}_{name} un yang ditetapkan untuk MCP-resolved alat; gunakan salah satu varian MCP untuk itu.

Semantik

  • Set alat yang tersedia dimulai saat semuanya masuk tools[] (setelah resolusi MCP). Masing-masing tool_removal mengurangi alat yang direferensikan; masing-masing menambahkannya tool_addition kembali. Alat yang dihapus dan kemudian ditambahkan kembali tersedia di akhir.

  • tool_removalmerender pemberitahuan singkat dalam konteks sehingga model berhenti merencanakan di sekitar alat yang dihapus.

  • Mid-conversation perubahan alat tidak memicu decoding terbatas; tool_choice tetap satu-satunya kontrol untuk itu.

  • Maksimum 512 tool_addition blok per permintaan.

Tanggapan kesalahan (400 invalid_request_error)

Kondisi Kesalahan
Bendera beta hilang Jenis blok ditolak sebagai diskriminator yang tidak dikenal
Blok di luar role: "system" 'tool_addition'/'tool_removal' blocks are only permitted within role: "system" messages
tool_reference.nametidak adatools[], atau menamai MCP-resolved alat tool_addition/tool_removal references unknown tool '<name>'
Varian MCP dengan tidak dideklarasikan server_name tool_addition/tool_removal references unknown server '<name>'
Varian MCP di mana server memiliki tool_configuration.enabled: false tool_addition/tool_removal references disabled server '<name>'
mcp_tool_referencedi tool_addition mana server tidak memiliki alat seperti itu Kesalahan mencantumkan semua nama alat yang belum terselesaikan untuk server itu
catatan

mcp_tool_referencein a tool_removal is lunient — jika server telah menghentikan alat itu, penghapusannya tidak dapat dilakukan (jadi percakapan historis tetap dapat diputar ulang).

Penggunaan alat paksa

Claude Fable 5.1 dan Claude Mythos 5.1 tidak mendukung penggunaan alat paksa. Permintaan yang menyet tool_choice el ke {"type": "any"} atau {"type": "tool", "name": "..."} mengembalikan400 invalid_request_error:

tool_choice: type "tool" and "any" are not supported for this model.

Ini berlaku untukInvokeModel,InvokeModelWithResponseStream, dan CountTokens operasi. tool_choiceNilai default {"type": "auto"} dan tidak {"type": "none"} terpengaruh dan berfungsi seperti sebelumnya. Di Converse API, toolChoice pengaturan yang setara (tooldanany) menampilkan kesalahan yang sama.