Untuk mengetahui bagaimana zero data retention (ZDR) berlaku pada fitur ini, lihat API dan retensi data.
Halaman ini menelusuri perjalanan bolak-balik penggunaan alat (tool use) dua giliran lengkap dengan pemikiran diaktifkan: Claude berpikir, meminta panggilan alat, menerima hasilnya, dan menyelesaikan jawabannya, dengan blok pemikiran ditangani dengan benar di setiap langkah. Aturan lengkapnya ada di halaman Pemikiran, di Pemikiran dengan penggunaan alat dan Mempertahankan blok pemikiran; halaman ini menunjukkan aturan-aturan tersebut diterapkan dalam kode yang dapat dijalankan.
Setiap tautan mengarah ke pernyataan lengkap di halaman Pemikiran:
auto atau none dalam mode manual: opsi tool_choice yang memaksa penggunaan alat mengembalikan error dengan pemikiran diperpanjang manual (thinking: {type: "enabled"}); pemikiran adaptif mendukung penggunaan alat yang dipaksa.redacted_thinking memicu error 400.Contoh-contoh ini menggunakan pemikiran adaptif; pada model yang hanya mendukung pemikiran diperpanjang, gantikan dengan thinking: {type: "enabled", budget_tokens: N}. Aturan perjalanan bolak-baliknya identik.
Contoh ini mendefinisikan alat get_weather, membiarkan Claude berpikir dan meminta panggilan alat, lalu mengembalikan hasil alat bersama dengan giliran asisten yang dikembalikan persis seperti yang diterima, termasuk blok pemikiran.
Buat permintaan pertama dengan alat yang tersedia
Kirim permintaan dengan pemikiran adaptif diaktifkan dan alat yang telah didefinisikan. Selain parameter thinking, ini adalah permintaan penggunaan alat standar:
client = anthropic.Anthropic()
weather_tool = {
"name": "get_weather",
"description": "Get current weather for a location",
"input_schema": {
"type": "object",
"properties": {"location": {"type": "string", "description": "City name"}},
"required": ["location"],
},
}
# Permintaan pertama - Claude merespons dengan pemikiran dan permintaan alat
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
tools=[weather_tool],
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)
print(response)Tangkap array konten untuk dikembalikan
Anda akan melihat blok thinking, text, dan tool_use dalam konten respons pada eksekusi di mana Claude memilih untuk berpikir (pada permintaan yang lebih sederhana, mode adaptif dapat melewati blok pemikiran). Jaga array konten ini tetap utuh: langkah berikutnya mengirimkannya kembali secara verbatim.
Untuk melihat teks pemikiran seperti output ini, tambahkan display: "summarized" ke permintaan. Pada model di mana display secara default dihilangkan, termasuk claude-opus-4-8, field thinking akan dikembalikan sebagai string kosong dengan hanya signature yang terisi. Apa pun caranya, kembalikan array konten tanpa perubahan; lihat Mengontrol tampilan pemikiran.
{
"content": [
{
"type": "thinking",
"thinking": "The user wants to know the current weather in Paris. I have access to a function `get_weather`...",
"signature": "BDaL4VrbR2Oj0hO4XpJxT28J5T...."
},
{
"type": "text",
"text": "I can help you get the current weather information for Paris. Let me check that for you"
},
{
"type": "tool_use",
"id": "toolu_01CswdEQBMshySk6Y9DFKrfq",
"name": "get_weather",
"input": {
"location": "Paris"
}
}
]
}Kembalikan hasil alat, dengan mengembalikan giliran asisten secara verbatim
Jalankan alat di sisi Anda, lalu kirim permintaan kedua yang menambahkan dua pesan ke percakapan. Yang pertama adalah konten asisten yang dikembalikan persis seperti yang diterima, sehingga blok pemikiran tetap tidak berubah bersama blok tool_use. Yang kedua adalah pesan pengguna yang membawa tool_result.
Setiap contoh adalah skrip mandiri: skrip ini mengulangi permintaan pertama, lalu segera mengirim tindak lanjut menggunakan respons yang baru saja diterimanya.
client = anthropic.Anthropic()
weather_tool = {
"name": "get_weather",
"description": "Get current weather for a location",
"input_schema": {
"type": "object",
"properties": {"location": {"type": "string", "description": "City name"}},
"required": ["location"],
},
}
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
tools=[weather_tool],
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)
# Ekstrak blok penggunaan alat untuk mendapatkan ID-nya bagi hasil alat (tool result)
tool_use_block = next(block for block in response.content if block.type == "tool_use")
# Panggil API cuaca Anda yang sebenarnya, di sinilah panggilan API Anda yang sebenarnya akan dilakukan
# Anggap saja ini yang kita dapatkan kembali
weather_data = {"temperature": 88}
# Permintaan kedua - Sertakan giliran asisten dan hasil alat
continuation = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
tools=[weather_tool],
messages=[
{"role": "user", "content": "What's the weather in Paris?"},
# Kembalikan konten asisten persis seperti yang diterima. Saat ada blok
# thinking, blok tersebut harus menyertai blok tool_use.
{"role": "assistant", "content": response.content},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": tool_use_block.id,
"content": f"Current temperature: {weather_data['temperature']}°F",
}
],
},
],
)
print(continuation)Baca respons akhir
Anda akan melihat Claude menyelesaikan giliran dengan teks. Karena pemikiran tersisip bersifat otomatis dalam mode adaptif, kelanjutannya juga dapat dibuka dengan blok pemikiran baru sebelum teks akhir:
{
"content": [
{
"type": "text",
"text": "Currently in Paris, the temperature is 88°F (31°C)"
}
]
}"Interleaved thinking" (pemikiran tersisip) memungkinkan Claude berpikir di antara panggilan alat, bernalar tentang setiap hasil alat sebelum menindaklanjutinya. Konsep dan ketersediaan per model dibahas di Pemikiran tersisip pada halaman Pemikiran; penyisipan mengubah di mana blok pemikiran muncul, bukan apakah panggilan alat dapat berantai. Perbandingan berikut menunjukkan apa yang diubah oleh pemikiran tersisip dalam alur kerja dua alat:
Ikhtisar: aktifkan pemikiran, baca output pemikiran, dan tinjau aturan lengkap untuk penggunaan alat, caching, dan streaming.
Arahkan seberapa sering dan seberapa dalam Claude berpikir dengan tingkat upaya dan panduan berbasis prompt.
Anggaran pemikiran manual pada model lama: mekanisme budget_tokens dan migrasi ke adaptif.
Was this page helpful?