Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mid-conversation pesan sistem
Anda dapat menambahkan {"role": "system", ...} pesan ke messages array. Ini menambah atau memperbarui instruksi sistem di tengah percakapan tanpa membatalkan awalan cache.
Sebelumnya, instruksi sistem hanya dapat diberikan melalui system parameter tingkat atas. Ini memungkinkan untuk memperbarui instruksi tanpa mengatur ulang konteks sebelumnya.
Ini berguna dalam alur kerja agen di mana model perlu beradaptasi saat tugas berlangsung. Contohnya termasuk memperkenalkan kendala baru di tengah tugas, menyegarkan konteks otoritatif, atau mengubah panduan alat untuk giliran selanjutnya.
Model yang didukung
Fitur ini hanya tersedia di Claude Opus 4.8. Tidak diperlukan header beta. Permintaan yang menyertakan role: "system" messages[] pada model yang tidak didukung mengembalikan file. 400 invalid_request_error
Bidang pesan
| Bidang | Jenis | Deskripsi |
|---|---|---|
role |
String | Wajib. Harus system |
content |
String atau daftar blok teks | Wajib. Gunakan string biasa atau blok konten, sama seperti pesan pengguna atau asisten. |
cache_control |
Objek | Tidak wajib. Semantik yang sama dengan parameter sistem tingkat atas. |
Aturan penempatan
{"role": "system"}Pesan di messages memiliki batasan penempatan berikut:
Tidak bisa menjadi entri pertama masuk
messages. Gunakansystembidang tingkat atas untuk instruksi yang berlaku sejak awal.Harus segera mengikuti pesan pengguna atau pesan asisten yang berakhir dengan penggunaan alat server.
Harus menjadi entri terakhir
messagesatau diikuti oleh giliran asisten.Tidak dapat berdekatan dengan pesan sistem lain. Pesan sistem berturut-turut tidak diperbolehkan.
Permintaan yang melanggar aturan penempatan ini mengembalikan a400 invalid_request_error.
Aturan konten
System-role konten pesan hanya mendukung blok teks. Gambar, dokumen, blok alat, dan kutipan tidak didukung.
Setel content ke string biasa atau blok konten. Instruksi berlaku sejak saat itu dalam percakapan dan seterusnya. Gunakan system bidang tingkat atas untuk instruksi yang harus diterapkan ke seluruh percakapan, dan gunakan pesan sistem percakapan tengah untuk instruksi yang menjadi relevan nanti.
Caching cepat
Mid-conversation pesan sistem dirancang untuk bekerja dengan caching yang cepat. Cache awalan stabil seperti biasa dengan menempatkan cache_control pada blok terakhir yang tetap tidak berubah di seluruh permintaan. Kemudian tambahkan pesan sistem setelah breakpoint itu. Karena instruksi baru muncul setelah awalan cache, itu tidak mengubah hash awalan, dan cache masih bisa mengenai.
Setelah pesan sistem percakapan tengah menjadi bagian dari riwayat stabil, pesan itu sendiri dapat dibaca dari cache pada giliran berikutnya. Hindari mengedit atau menghapus pesan sistem percakapan tengah yang dikirim sebelumnya, karena mengubah pesan sebelumnya membatalkan cache dari titik itu ke depan.
Untuk informasi selengkapnya tentang caching cepat, lihat Prompt caching untuk inferensi model yang lebih cepat.
Perilaku respons
Bentuk respons tidak berubah. System-role pesan tidak muncul dalam array konten respons. Model memproses instruksi sistem tetapi tidak menggemakannya kembali dalam responsnya.
Contoh kode
Contoh Python berikut menunjukkan cara menggunakan prompt sistem percakapan tengah dengan Amazon Bedrock:
import boto3 import json client = boto3.client("bedrock-runtime", region_name="us-east-1") response = client.invoke_model( modelId="us.anthropic.claude-opus-4-8", body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "system": "You are a helpful travel planning assistant.", "messages": [ {"role": "user", "content": "Help me plan a week in Paris."}, {"role": "assistant", "content": "I'd love to help! What kind of experience are you looking for?"}, {"role": "user", "content": "I want to see the major sights. What should I do on day one?"}, {"role": "system", "content": "The user has a budget of $150/day. Only suggest options that fit within this budget. Prioritize free attractions and affordable dining."} ] }) ) result = json.loads(response["body"].read()) print(result["content"][0]["text"])