Mengarahkan pemikiran
Arahkan seberapa sering dan seberapa dalam Claude berpikir dengan tingkat effort, panduan prompt sistem, dan pengarahan per pesan, serta pahami biaya dan harga pemikiran.
Pemikiran Claude bersifat adaptif: model mengevaluasi setiap permintaan dan memutuskan sendiri apakah perlu berpikir dan seberapa banyak. Anda menetapkan maksud, secara opsional menentukan effort, dan model mengalokasikan penalaran di tempat yang menurutnya penalaran akan membantu.
Hal ini membuat pemikiran sangat cocok untuk beban kerja yang mencampur permintaan sepele dan kompleks, serta untuk alur kerja agentik jangka panjang di mana jumlah penalaran yang tepat bervariasi dari satu langkah ke langkah lainnya.
Untuk mempelajari cara mengaktifkan pemikiran, cara membaca output pemikiran, dan tentang output pemikiran pada Claude Fable 5 dan Claude Mythos 5, lihat ikhtisar Pemikiran. Halaman ini membahas bagaimana Claude memutuskan kapan harus berpikir, cara mengarahkan keputusan tersebut, serta mekanisme caching, biaya, dan harga yang mengikutinya.
Bagaimana Claude memutuskan kapan harus berpikir
Pemikiran bersifat opsional bagi model. Pada setiap permintaan, Claude menimbang kompleksitas input dan memutuskan apakah penalaran yang lebih dalam akan meningkatkan jawaban. Pertanyaan faktual sederhana mungkin mendapat respons langsung tanpa blok pemikiran sama sekali; soal matematika multilangkah atau tugas debugging yang rumit memicu penalaran yang lebih dalam.
Keputusan ini terjadi per permintaan. Percakapan yang sama dapat berisi giliran dengan dan tanpa pemikiran, dan giliran di mana Claude memilih untuk tidak berpikir tidak berisi blok pemikiran. Jangan membangun logika aplikasi yang mengasumsikan setiap giliran asisten dimulai dengan blok pemikiran.
Kontrol utama atas keputusan ini adalah parameter effort, yang berfungsi sebagai panduan lunak tentang seberapa bersedia Claude untuk berpikir dan seberapa dalam; lihat Tingkat effort di halaman ini untuk mengetahui apa yang dilakukan setiap tingkat.
Jika Anda ingin Claude berpikir lebih jarang, turunkan tingkat effort sebelum beralih ke pengarahan berbasis prompt.
Pemikiran juga berselang-seling dengan "tool use" (penggunaan alat) secara otomatis: Claude dapat berpikir di antara pemanggilan alat, merefleksikan setiap hasil alat sebelum memutuskan apa yang harus dilakukan selanjutnya (pemikiran berselang-seling). Anda tidak memerlukan header beta atau konfigurasi tambahan apa pun untuk ini.
Untuk gambaran lengkap tentang bagaimana konfigurasi pemikiran dan parameter effort berinteraksi, lihat Pemikiran dan effort.
Mengarahkan seberapa sering Claude berpikir
Apakah Claude berpikir pada giliran tertentu dapat diatur melalui prompt. Effort menetapkan sikap keseluruhan, tetapi Anda juga dapat membentuk keputusan tersebut secara langsung dengan panduan bahasa alami, baik secara global di "system prompt" (prompt sistem) maupun per pesan dari giliran pengguna.
Gunakan kedua tuas ini bersama-sama dalam urutan berikut:
- Tetapkan tingkat effort yang sesuai dengan keseimbangan default antara kualitas dan latensi pada beban kerja Anda.
- Tambahkan panduan prompt hanya jika pemicuan pemikiran Claude masih belum sesuai dengan kebutuhan Anda pada tingkat tersebut.
Untuk panduan prompting yang lebih luas dengan pemikiran, lihat memanfaatkan kemampuan pemikiran dan pemikiran berselang-seling.
Tingkat effort
Effort adalah tuas pengarah utama untuk pemikiran. Setiap tingkat menetapkan default yang berbeda untuk seberapa sering Claude berpikir dan seberapa dalam:
| Tingkat effort | Perilaku pemikiran |
|---|---|
max | Claude selalu berpikir tanpa batasan pada kedalaman pemikiran. |
xhigh | Claude selalu berpikir secara mendalam dengan eksplorasi yang diperluas. |
high (default) | Claude hampir selalu berpikir. Memberikan penalaran mendalam pada tugas kompleks. |
medium | Claude menggunakan pemikiran moderat. Mungkin melewatkan pemikiran untuk kueri sederhana. |
low | Claude meminimalkan pemikiran. Melewatkan pemikiran untuk tugas sederhana di mana kecepatan paling penting. |
Tabel ini menjelaskan bagaimana setiap tingkat mengubah perilaku pemikiran. Untuk panduan tentang tingkat mana yang harus dipilih untuk beban kerja tertentu, termasuk rekomendasi per model, lihat Kapan menyesuaikan parameter effort di halaman effort.
Effort ditetapkan di output_config.effort, bukan di dalam objek thinking; untuk contoh lengkap per bahasa, lihat Effort.
{
"model": "claude-opus-5",
"max_tokens": 4096,
"output_config": { "effort": "medium" },
"messages": [{ "role": "user", "content": "..." }]
}Ketersediaan tingkat bervariasi menurut model; tabel ketersediaan effort di halaman effort adalah acuan resmi untuk tingkat mana yang didukung setiap model.
Panduan prompt sistem
Panduan prompt sistem menggeser ambang pemikiran Claude untuk setiap permintaan dalam percakapan. Jika Claude berpikir lebih sering daripada yang dibutuhkan beban kerja Anda, tambahkan panduan seperti ini ke prompt sistem Anda:
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality, typically for problems
that require multistep reasoning. When in doubt, respond directly.Sebaliknya, untuk mendorong pemikiran, gunakan frasa seperti:
This task involves multistep reasoning. Think carefully before responding.Efektivitas pengarahan dapat sensitif terhadap pilihan kata yang tepat. Jika satu rumusan tidak menghasilkan perilaku yang Anda inginkan, coba varian yang lebih langsung.
Pengarahan per pesan
Anda juga dapat mengarahkan pemikiran per pesan dari giliran pengguna, secara independen dari prompt sistem. Menambahkan "Please think hard before responding." ke pesan pengguna mendorong Claude untuk berpikir pada giliran tersebut; "Answer directly without deliberating." menekannya.
Pengarahan per pesan berguna ketika hanya sebagian permintaan dalam percakapan yang memerlukan penalaran diperpanjang. Harness agen, misalnya, dapat menambahkan frasa pendorong pada langkah perencanaan dan frasa penekan pada konfirmasi rutin, tanpa menyentuh prompt sistem atau mengubah parameter permintaan apa pun di antara giliran.
Verifikasi pengarahan pada beban kerja Anda
Pengarahan berbasis prompt mengubah perilaku model, jadi perlakukan seperti perubahan prompt lainnya: ukur sebelum Anda merilisnya. Jalankan sampel representatif dari lalu lintas Anda dengan dan tanpa panduan tersebut, lalu bandingkan seberapa sering pemikiran terpicu (keberadaan blok pemikiran dalam respons), penggunaan token output, latensi, dan kualitas jawaban pada kasus yang penting bagi Anda.
Mekanisme
Tiga mekanisme mengikuti dari Claude yang mengelola pemikirannya sendiri: validasi giliran, caching prompt, dan cara Anda membatasi biaya.
Validasi giliran
Giliran asisten tidak perlu dimulai dengan blok pemikiran. (Model yang menggunakan anggaran pemikiran manual lama mewajibkan giliran asisten terakhir dari permintaan dengan pemikiran aktif dimulai dengan blok pemikiran; lihat Struktur giliran dalam mode manual.)
Untuk aplikasi multigiliran, ini berarti Anda dapat mengirimkan kembali riwayat percakapan dalam bentuk apa pun yang Anda miliki:
- Giliran asisten di mana Claude memilih untuk tidak berpikir adalah riwayat yang valid apa adanya.
- Anda dapat melanjutkan percakapan yang dimulai tanpa pemikiran, atau yang menggunakan konfigurasi pemikiran berbeda, tanpa menulis ulang riwayatnya.
- Riwayat yang disusun dari sumber campuran tidak memerlukan blok pemikiran disisipkan kembali di awal setiap giliran asisten untuk lolos validasi.
Pelonggaran ini berkaitan dengan validasi, bukan tentang apa yang sebaiknya Anda kirim. Ketika Anda memiliki blok pemikiran, kirimkan kembali tanpa modifikasi, terutama selama penggunaan alat, di mana blok tersebut membawa penalaran di balik pemanggilan alat Claude. Lihat ikhtisar Pemikiran untuk aturan lengkapnya.
Caching prompt
Permintaan berurutan yang mempertahankan konfigurasi pemikiran dan tingkat effort yang sama akan mempertahankan "prompt caching" (caching prompt); lihat Pemikiran dan caching prompt untuk aturan lengkapnya. Nilai effort yang telah diselesaikan dirender ke dalam prompt, sehingga mengubahnya di antara permintaan akan membatalkan breakpoint cache, sama seperti mengubah parameter lama budget_tokens pada model yang menggunakannya. Menetapkan effort secara eksplisit ke default model setara dengan menghilangkannya dan tidak merusak cache.
Konsekuensi praktisnya: pilih satu konfigurasi pemikiran dan satu tingkat effort per percakapan dan pertahankan. Jika beberapa giliran memerlukan pemikiran lebih banyak atau lebih sedikit, arahkan dengan prompting per pesan: panduan yang ditambahkan ke pesan pengguna terbaru membiarkan breakpoint cache sebelumnya tetap utuh, sedangkan perubahan konfigurasi atau effort tidak.
Contoh berikut mendemonstrasikan pembatalan tersebut dengan skrip multigiliran yang dapat Anda jalankan sendiri:
import requests
client = Anthropic()
def fetch_article_content(url):
text = requests.get(url).text
lines = (line.strip() for line in text.splitlines())
return "\n".join(line for line in lines if line)
# Ambil konten artikel
book_url = "https://www.gutenberg.org/cache/epub/1342/pg1342.txt"
book_content = fetch_article_content(book_url)
# Gunakan teks secukupnya untuk caching (beberapa bab pertama)
LARGE_TEXT = book_content[:10000]
# Tanpa prompt sistem - caching dilakukan di pesan
MESSAGES = [
{
"role": "user",
"content": [
{
"type": "text",
"text": LARGE_TEXT,
"cache_control": {"type": "ephemeral"},
},
{"type": "text", "text": "Analyze the tone of this passage."},
],
}
]
# Permintaan pertama - membuat cache
print("First request - establishing cache")
response1 = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=MESSAGES,
)
print(f"First response usage: {response1.usage}")
MESSAGES.append({"role": "assistant", "content": response1.content})
MESSAGES.append({"role": "user", "content": "Analyze the characters in this passage."})
# Permintaan kedua - konfigurasi sama (diharapkan cache hit)
print("\nSecond request - same configuration (cache hit expected)")
response2 = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=MESSAGES,
)
print(f"Second response usage: {response2.usage}")
MESSAGES.append({"role": "assistant", "content": response2.content})
MESSAGES.append({"role": "user", "content": "Analyze the setting in this passage."})
# Permintaan ketiga - tingkat effort berbeda (diharapkan cache miss)
print("\nThird request - different effort level (cache miss expected)")
response3 = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "medium"},
messages=MESSAGES,
)
print(f"Third response usage: {response3.usage}")Berikut adalah output dari skrip tersebut (Anda mungkin melihat angka yang sedikit berbeda):
First request - establishing cache
First response usage: { cache_creation_input_tokens: 3546, cache_read_input_tokens: 0, input_tokens: 15, output_tokens: 1033 }
Second request - same configuration (cache hit expected)
Second response usage: { cache_creation_input_tokens: 0, cache_read_input_tokens: 3546, input_tokens: 1062, output_tokens: 1630 }
Third request - different effort level (cache miss expected)
Third response usage: { cache_creation_input_tokens: 3546, cache_read_input_tokens: 0, input_tokens: 2706, output_tokens: 1468 }Dengan breakpoint cache di dalam array messages, mengubah effort dari default high ke medium membatalkannya: permintaan ketiga menunjukkan cache_creation_input_tokens=3546 dan cache_read_input_tokens=0 sedangkan permintaan kedua menunjukkan pembacaan cache penuh.
Kontrol biaya
Anda tidak menetapkan anggaran token pemikiran. Dua kontrol membatasi biaya:
max_tokensadalah batas keras pada total output untuk permintaan, gabungan pemikiran dan teks respons. Claude tidak pernah menghasilkan melebihinya. Dalam loop penggunaan alat, setiap permintaan dalam giliran memilikimax_tokenssendiri, sehingga tidak membatasi pengeluaran seluruh giliran.effortadalah panduan lunak tentang seberapa banyak dari output tersebut yang dialokasikan Claude untuk pemikiran. Ini membentuk perilaku tetapi tidak menjamin jumlah token.
Karena pemikiran dihitung terhadap max_tokens, tetapkan nilainya cukup tinggi untuk menyisakan ruang bagi penalaran dan jawaban. max_tokens yang diukur untuk respons tanpa pemikiran sering kali terlalu kecil begitu Claude mulai berpikir pada permintaan yang sulit.
Pada effort high dan di atasnya, Claude mungkin berpikir secara ekstensif dan lebih mungkin menghabiskan anggaran. Jika Anda melihat stop_reason: "max_tokens" dalam respons, Anda memiliki dua solusi:
- Naikkan
max_tokensuntuk memberi model lebih banyak ruang untuk pemikiran ditambah jawaban. - Turunkan tingkat effort agar Claude berpikir lebih sedikit dan menyisakan lebih banyak anggaran untuk teks respons.
Mana yang tepat bergantung pada apakah respons yang terpotong memerlukan penalaran tersebut. Jika kualitas pada permintaan tersebut penting, naikkan batasnya; jika permintaan tersebut dipikirkan secara berlebihan, turunkan effort.
Harga
Pemikiran menimbulkan biaya untuk:
- Token yang digunakan Claude saat berpikir (ditagih sebagai token output)
- Blok pemikiran dari giliran asisten sebelumnya yang tetap berada dalam konteks, sesuai default preservasi: semua giliran secara default pada model keep-all, hanya giliran terakhir pada model lainnya (ditagih sebagai token input)
- Token output teks standar
Apa yang ditagihkan kepada Anda tetap sama terlepas dari pengaturan display; hanya apa yang Anda lihat yang berubah:
display: "summarized" | display: "omitted" | |
|---|---|---|
| Token input | Token dalam permintaan asli Anda | Sama seperti summarized |
| Token output (ditagih) | Token pemikiran lengkap yang dihasilkan Claude secara internal | Sama seperti summarized |
| Token output (terlihat) | Teks pemikiran yang diringkas | Nol token pemikiran (field thinking kosong) |
| Pembuatan ringkasan | Tanpa biaya | Tidak berlaku |
Untuk melihat berapa banyak token output yang ditagih yang dihabiskan untuk penalaran internal, baca usage.output_tokens_details.thinking_tokens dalam respons. Nilai ini mencerminkan penalaran mentah yang dihasilkan model (bukan teks ringkasan yang dikembalikan dalam body) dan selalu kurang dari atau sama dengan output_tokens. Kurangkan nilai ini dari output_tokens untuk memperkirakan bagian output yang bukan penalaran. Saat streaming, rincian ini hanya muncul pada event message_delta terakhir.
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokens tetap menjadi total inklusif dan otoritatif yang digunakan untuk penagihan. output_tokens_details adalah rincian hanya-baca untuk observabilitas. Untuk informasi harga lengkap termasuk tarif dasar, penulisan cache, cache hit, dan token output, lihat Harga.
Langkah selanjutnya
Aktifkan pemikiran, baca output pemikiran, dan periksa dukungan per model.
Pertahankan blok pemikiran di seluruh pemanggilan alat dan kelola pemikiran dalam percakapan multigiliran.
Kontrol seberapa banyak pemikiran dan output yang dialokasikan Claude per permintaan.
Was this page helpful?