Claude mampu berinteraksi dengan alat dan fungsi, memungkinkan Anda memperluas kemampuan Claude untuk melakukan berbagai tugas.
Jamin kepatuhan skema dengan penggunaan alat yang ketat
Structured Outputs menyediakan validasi skema yang dijamin untuk input alat. Tambahkan strict: true ke definisi alat Anda untuk memastikan panggilan alat Claude selalu sesuai dengan skema Anda dengan tepat—tidak ada lagi ketidakcocokan tipe atau bidang yang hilang.
Sempurna untuk agen produksi di mana parameter alat yang tidak valid akan menyebabkan kegagalan. Pelajari kapan menggunakan penggunaan alat yang ketat →
Berikut adalah contoh cara menyediakan alat ke Claude menggunakan Messages API:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"tools": [
{
"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"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
]
}'Claude mendukung dua jenis alat:
Alat klien: Alat yang dijalankan pada sistem Anda, yang mencakup:
Alat server: Alat yang dijalankan pada server Anthropic, seperti alat pencarian web dan pengambilan web. Alat ini harus ditentukan dalam permintaan API tetapi tidak memerlukan implementasi di pihak Anda.
Alat yang ditentukan Anthropic menggunakan tipe yang diberi versi (misalnya, web_search_20250305, text_editor_20250124) untuk memastikan kompatibilitas di seluruh versi model.
Integrasikan alat klien dengan Claude dalam langkah-langkah berikut:
Berikan Claude dengan alat dan prompt pengguna
Claude memutuskan untuk menggunakan alat
stop_reason dari tool_use, menandakan niat Claude.Jalankan alat dan kembalikan hasil
user baru yang berisi blok konten tool_resultClaude menggunakan hasil alat untuk merumuskan respons
Catatan: Langkah 3 dan 4 bersifat opsional. Untuk beberapa alur kerja, permintaan penggunaan alat Claude (langkah 2) mungkin semua yang Anda butuhkan, tanpa mengirim hasil kembali ke Claude.
Alat server mengikuti alur kerja yang berbeda:
Berikan Claude dengan alat dan prompt pengguna
Claude menjalankan alat server
Claude menggunakan hasil alat server untuk merumuskan respons
Jika Anda membangun aplikasi yang menggunakan Model Context Protocol (MCP), Anda dapat menggunakan alat dari server MCP secara langsung dengan Messages API Claude. Definisi alat MCP menggunakan format skema yang mirip dengan format alat Claude. Anda hanya perlu mengganti nama inputSchema menjadi input_schema.
Tidak ingin membangun klien MCP Anda sendiri? Gunakan konektor MCP untuk terhubung langsung ke server MCP jarak jauh dari Messages API tanpa mengimplementasikan klien.
Ketika Anda membangun klien MCP dan memanggil list_tools() pada server MCP, Anda akan menerima definisi alat dengan bidang inputSchema. Untuk menggunakan alat ini dengan Claude, konversikan ke format Claude:
Kemudian teruskan alat yang dikonversi ini ke Claude:
Ketika Claude merespons dengan blok tool_use, jalankan alat pada server MCP Anda menggunakan call_tool() dan kembalikan hasilnya ke Claude dalam blok tool_result.
Untuk panduan lengkap tentang membangun klien MCP, lihat Bangun klien MCP.
Berikut adalah beberapa contoh kode yang mendemonstrasikan berbagai pola dan teknik penggunaan alat. Demi singkatnya, alatnya adalah alat sederhana, dan deskripsi alatnya lebih pendek dari yang ideal untuk memastikan kinerja terbaik.
Tool use requests are priced based on:
tools parameter)Client-side tools are priced the same as any other Claude API request, while server-side tools may incur additional charges based on their specific usage.
The additional tokens from tool use come from:
tools parameter in API requests (tool names, descriptions, and schemas)tool_use content blocks in API requests and responsestool_result content blocks in API requestsWhen you use tools, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools are provided, then a tool choice of none uses 0 additional system prompt tokens.
| Model | Tool choice | Tool use system prompt token count |
|---|---|---|
| Claude Opus 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4.1 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4 | auto, noneany, tool |
These token counts are added to your normal input and output tokens to calculate the total cost of a request.
Lihat tabel perbandingan model kami untuk harga per-model saat ini.
Ketika Anda mengirim prompt penggunaan alat, seperti permintaan API lainnya, respons akan menampilkan hitungan token input dan output sebagai bagian dari metrik usage yang dilaporkan.
Jelajahi repositori kami dengan contoh kode penggunaan alat yang siap diimplementasikan di cookbook kami:
from mcp import ClientSession
async def get_claude_tools(mcp_session: ClientSession):
"""Convert MCP tools to Claude's tool format."""
mcp_tools = await mcp_session.list_tools()
claude_tools = []
for tool in mcp_tools.tools:
claude_tools.append({
"name": tool.name,
"description": tool.description or "",
"input_schema": tool.inputSchema # Rename inputSchema to input_schema
})
return claude_toolsimport anthropic
client = anthropic.Anthropic()
claude_tools = await get_claude_tools(mcp_session)
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=claude_tools,
messages=[{"role": "user", "content": "What tools do you have available?"}]
)| 346 tokens 313 tokens |
| Claude Sonnet 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 3.7 (deprecated) | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 3.5 | auto, noneany, tool | 264 tokens 340 tokens |
| Claude Opus 3 (deprecated) | auto, noneany, tool | 530 tokens 281 tokens |
| Claude Sonnet 3 | auto, noneany, tool | 159 tokens 235 tokens |
| Claude Haiku 3 | auto, noneany, tool | 264 tokens 340 tokens |
Bangun bot layanan pelanggan yang responsif yang memanfaatkan alat klien untuk meningkatkan dukungan.