View a markdown version of this page

Penggunaan alat Antropik Claude - Amazon Bedrock

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

Penggunaan alat Antropik Claude

Awas

Beberapa fungsi di bawah ini ditawarkan dalam versi beta seperti yang ditunjukkan. Fitur-fitur ini tersedia untuk Anda sebagai “Layanan Beta” sebagaimana didefinisikan dalam Ketentuan AWS 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 melewati 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 Converse 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, membuntuti baris baru dalam parameter string terkadang dilucuti secara tidak benar. 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 mencakup 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 bidang. 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 menanggapitool_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 berbutir 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 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 jika parameternya adalah JSON yang valid. lines_of_text Ini berarti Anda dapat melihat aliran parameter saat tiba, tanpa harus menunggu seluruh parameter untuk buffer dan memvalidasi.

Dengan streaming alat berbutir halus, potongan penggunaan alat mulai streaming lebih cepat, dan seringkali lebih lama dan mengandung lebih sedikit jeda kata. Ini karena 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 max_tokens tercapai, aliran mungkin berakhir di tengah parameter dan mungkin tidak lengkap. Anda biasanya harus menulis dukungan khusus untuk menangani kapan max_tokens tercapai.

Penggunaan komputer (Beta)

Penggunaan komputer adalah keluarga Anthropic Claude alat (dalam versi beta) untuk mengotomatisasi tugas antarmuka pengguna grafis (GUI). Untuk ikhtisar, bentuk Bedrock-specific permintaan Amazon, dan contoh ujung ke ujung, lihat. Gunakan 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 Kemampuan dan Fitur di masing-masingSekilas tentang model.

Untuk mengaktifkan penggunaan komputer berdasarkan permintaan, atur anthropic_beta ke versi penggunaan komputer dan sertakan entri alat yang type cocok dengan versi 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 berfungsi dengan subset model tertentu. Mengirimkan jenis alat yang model tidak mendukung mengembalikan pesan 400 invalid_request_error dengan seperti. 'claude-opus-4-7' does not support tool types: computer_20241022 Konfirmasikan dukungan di tabel Kemampuan dan Fitur model sebelum mengirim permintaan.

Untuk protokol alat yang mendasari, kosakata tindakan lengkap, dan panduan teknik prompt, lihat Penggunaan komputer dalam dokumentasi. Anthropic

Antropik alat yang ditentukan

Anthropicmenyediakan seperangkat alat yang telah ditentukan sebelumnya yang dapat digunakan Claude model untuk berinteraksi dengan komputer. Saat menentukan alat Anthropic -defined, 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 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 file. 400 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"].

typeBidang 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 bidang. name nameBidang harus unik dalam daftar alat; Anda tidak dapat mendefinisikan alat dengan alat yang name sama dengan alat Anthropic -defined dalam panggilan API yang sama.

Pembersihan panggilan alat otomatis (Beta)

Awas

Kliring panggilan alat otomatis tersedia sebagai “Layanan Beta” sebagaimana didefinisikan dalam Ketentuan AWS 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 Anthropic Claude (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 kliring 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 kliring 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 memecahkan cache prompt Anda.

exclude_tools (opsional)

Daftar nama alat yang penggunaan dan hasil alatnya tidak boleh dihapus. Berguna untuk melestarikan konteks penting.

clear_tool_inputs(opsional, default Salah)

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

catatan

Pembersihan alat akan membatalkan cache Anda jika awalan Anda berisi alat Anda.

penting

Alat web_search_20250305 server Anthropic tidak didukung di Amazon Bedrock.

Request
from anthropic import AnthropicBedrock client = AnthropicBedrock() response = client.beta.messages.create( betas=["context-management-2025-06-27"], model="claude-sonnet-4-20250514", 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 pada CountTokens API.

Alat Memori (Beta)

Awas

Alat Memori tersedia sebagai “Layanan Beta” sebagaimana didefinisikan dalam Ketentuan AWS 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 memasukkan 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 output yang dihasilkan.

Harga alat 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.

  • tool_useKonten apa pun memblokir permintaan dan tanggapan API.

  • tool_resultKonten apa pun memblokir 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 ada menggunakan 0 token prompt sistem tambahan.

Model Pilihan alat Alat menggunakan jumlah token prompt sistem

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 dalam 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 memasukkan tool-search-tool-2025-10-19 dalam anthropic_beta parameter. Perhatikan bahwa fitur ini saat ini hanya tersedia melalui InvokeModelWithResponseStreamAPI InvokeModeldan.

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 respons

{ "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 kustom (misalnya, menggunakan embeddings) dengan mendefinisikan alat yang mengembalikan blok. tool_reference Alat kustom harus memiliki defer_loading: false sementara alat lain harus memilikidefer_loading: true. Saat 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 rinci

Anda dapat menerapkan alat pencarian alat khusus (misalnya, menggunakan penyematan atau pencarian semantik) dengan mendefinisikan alat yang mengembalikan blok. tool_reference Ini memungkinkan mekanisme penemuan alat yang 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 di pustaka 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.

  • Melewati tool_reference 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 terjemahan ke format lain. Untuk menggunakan fitur ini, Anda harus memasukkan 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 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" }