Konfigurasi Ringkasan
Ikhtisar
Konfigurasi summarization menyediakan kontrol terpusat atas peringkasan percakapan dan pemangkasan konteks. Ini menggantikan kolom summarize dan summaryModel per-endpoint yang sebelumnya tersedia pada endpoint kustom dan Azure OpenAI.
Ketika percakapan melebihi jendela konteks model, sistem peringkasan secara otomatis mengompresi pesan-pesan lama menjadi ringkasan titik pemeriksaan (checkpoint) yang padat. Hal ini memungkinkan percakapan berlanjut tanpa batas waktu tanpa kehilangan konteks penting. Sistem ini juga menyertakan context pruning, yang secara progresif mengurangi hasil alat (tool) yang besar dalam pesan-pesan lama untuk mendapatkan kembali ruang token sebelum peringkasan diperlukan.
Setelah giliran peringkasan, pengukur penggunaan konteks menggunakan garis dasar ringkasan yang dipertahankan ditambah giliran pasca-ringkasan alih-alih menghitung ulang riwayat pra-ringkasan yang telah dibuang. Total penggunaan dan biaya kumulatif tetap mencakup pengeluaran cabang secara penuh.
Contoh
summarization:
provider: 'openAI'
model: 'gpt-4o-mini'
maxSummaryTokens: 4096
reserveRatio: 0.05
trigger:
type: 'token_ratio'
value: 0.8
contextPruning:
enabled: true
keepLastAssistants: 3
softTrimRatio: 0.3
hardClearRatio: 0.5
minPrunableToolChars: 50000
softTrim:
maxChars: 4000
headChars: 1500
tailChars: 1500
hardClear:
enabled: true
placeholder: '[Old tool result content cleared]'provider
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Penyedia LLM yang digunakan untuk panggilan peringkasan. Jika diabaikan, akan menggunakan penyedia milik agen itu sendiri. | provider: "openAI" |
Default: Penyedia milik Agen
model
| Key | Type | Description | Example |
|---|---|---|---|
| model | String | Model yang digunakan untuk panggilan peringkasan. Jika dikosongkan, akan menggunakan model milik agen itu sendiri. | model: "gpt-4o-mini" |
Default: Model milik Agen sendiri
parameters
| Key | Type | Description | Example |
|---|---|---|---|
| parameters | Object | Parameter LLM tambahan untuk permintaan peringkasan (misalnya, temperature, top_p). | parameters: { temperature: 0.3 } |
prompt
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | String | Prompt kustom untuk peringkasan awal. Menggantikan prompt checkpoint bawaan. |
Default: Prompt checkpoint terstruktur yang menghasilkan bagian untuk Goal, Constraints & Preferences, Progress, Key Decisions, Next Steps, dan Critical Context.
updatePrompt
| Key | Type | Description | Example |
|---|---|---|---|
| updatePrompt | String | Prompt kustom untuk pemadatan ulang saat ringkasan sebelumnya sudah ada. Digunakan ketika ringkasan perlu diperbarui dengan konten percakapan baru. |
Default: Prompt bawaan yang menggabungkan pesan baru ke dalam checkpoint yang ada, memadatkan detail lama, dan memberikan detail lebih pada tindakan terkini.
maxSummaryTokens
| Key | Type | Description | Example |
|---|---|---|---|
| maxSummaryTokens | Number | Jumlah maksimum token output untuk respons model peringkasan. | maxSummaryTokens: 4096 |
reserveRatio
| Key | Type | Description | Example |
|---|---|---|---|
| reserveRatio | Number | Fraksi anggaran token yang dicadangkan sebagai ruang kepala (0–1). Mencegah konteks terisi hingga kapasitas absolut. | reserveRatio: 0.05 |
Default: 0.05 (5% headroom)
trigger
| Key | Type | Description | Example |
|---|---|---|---|
| trigger | Object | Menentukan kapan peringkasan diaktifkan. Jika dihilangkan, peringkasan akan berjalan setiap kali pemangkasan pesan menghapus pesan apa pun. |
Sub-key trigger
| Key | Type | Description | Example |
|---|---|---|---|
| type | String | Strategi pemicu. Opsi: `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`. | type: "token_ratio" |
| value | Number | Nilai ambang batas untuk tipe pemicu yang dipilih. Untuk `token_ratio`: 0–1 (inklusif). Untuk `remaining_tokens` dan `messages_to_refine`: bilangan bulat positif. | value: 0.8 |
Tipe Pemicu
| Tipe | Nilai | Terpicu Saat |
|---|---|---|
token_ratio | 0.0–1.0 | Pecahan token konteks yang digunakan mencapai atau melebihi nilai tersebut |
remaining_tokens | Bilangan bulat positif | Sisa token konteks turun hingga atau di bawah nilai tersebut |
messages_to_refine | Bilangan bulat positif | Jumlah pesan yang memenuhi syarat untuk diringkas mencapai atau melebihi nilai tersebut |
| (tidak diatur) | — | Kapan pun pemangkasan (pruning) menghapus pesan apa pun (perilaku default) |
Contoh:
summarization:
trigger:
type: 'remaining_tokens'
value: 8000contextPruning
| Key | Type | Description | Example |
|---|---|---|---|
| contextPruning | Object | Mengonfigurasi degradasi hasil tool berbasis posisi. Hasil tool yang besar pada pesan lama akan dipotong atau dihapus secara progresif untuk mengklaim kembali ruang token. |
Context pruning adalah fitur opsional yang beroperasi secara independen dari peringkasan. Fitur ini menargetkan hasil pemanggilan tool yang besar dalam pesan lama, dengan menerapkan dua tahap progresif:
- Soft trim — Memotong hasil alat untuk hanya menyisakan bagian awal dan akhir, dengan elipsis di antaranya
- Hard clear — Mengganti seluruh hasil alat dengan placeholder singkat
Kedua tahap tersebut berbasis posisi: pesan yang lebih dekat ke awal percakapan (lebih lama) akan dipangkas terlebih dahulu.
Sub-key contextPruning
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Mengaktifkan degradasi hasil alat berbasis posisi. | enabled: true |
| keepLastAssistants | Number | Jumlah giliran asisten terbaru yang dilindungi dari pemangkasan apa pun. | keepLastAssistants: 3 |
| softTrimRatio | Number | Rasio usia (0–1) saat soft-trim diaktifkan. Pesan yang lebih lama dari rasio percakapan ini adalah kandidat untuk soft-trimming. | softTrimRatio: 0.3 |
| hardClearRatio | Number | Rasio usia (0–1) saat hard-clear aktif. Pesan yang lebih lama dari rasio ini adalah kandidat untuk penggantian penuh. | hardClearRatio: 0.5 |
| minPrunableToolChars | Number | Jumlah karakter minimum hasil alat sebelum pemangkasan diterapkan. Hasil yang lebih kecil dibiarkan tidak berubah. | minPrunableToolChars: 50000 |
| softTrim | Object | Konfigurasi untuk tahap soft-trim. | |
| hardClear | Object | Konfigurasi untuk tahap hard-clear. |
Default:
| Bidang | Default |
|---|---|
enabled | false |
keepLastAssistants | 3 |
softTrimRatio | 0.3 |
hardClearRatio | 0.5 |
minPrunableToolChars | 50000 |
Sub-key softTrim
| Key | Type | Description | Example |
|---|---|---|---|
| maxChars | Number | Jumlah karakter total maksimum setelah soft-trimming hasil alat. | maxChars: 4000 |
| headChars | Number | Jumlah karakter yang dipertahankan dari awal hasil alat. | headChars: 1500 |
| tailChars | Number | Jumlah karakter yang dipertahankan dari akhir hasil alat. | tailChars: 1500 |
Default: maxChars: 4000, headChars: 1500, tailChars: 1500
Sub-key hardClear
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Apakah tahap hard-clear aktif. Jika dinonaktifkan, hanya soft-trim yang diterapkan. | enabled: true |
| placeholder | String | Teks placeholder yang menggantikan konten hasil alat lengkap saat dibersihkan secara paksa. | placeholder: "[Old tool result content cleared]" |
Default: enabled: true, placeholder: "[Old tool result content cleared]"
Contoh:
summarization:
contextPruning:
enabled: true
keepLastAssistants: 5
softTrimRatio: 0.25
hardClearRatio: 0.6
minPrunableToolChars: 30000
softTrim:
maxChars: 6000
headChars: 2500
tailChars: 2500
hardClear:
enabled: true
placeholder: '[Content removed for context management]'Contoh Konfigurasi Lengkap
version: 1.3.10
cache: true
summarization:
provider: 'openAI'
model: 'gpt-4o-mini'
maxSummaryTokens: 4096
reserveRatio: 0.05
trigger:
type: 'token_ratio'
value: 0.8
contextPruning:
enabled: true
keepLastAssistants: 3
softTrimRatio: 0.3
hardClearRatio: 0.5
minPrunableToolChars: 50000
softTrim:
maxChars: 4000
headChars: 1500
tailChars: 1500
hardClear:
enabled: true
placeholder: '[Old tool result content cleared]'Migrasi dari Pengaturan Per-endpoint
Jika Anda sebelumnya menggunakan summarize dan summaryModel pada endpoint kustom atau Azure OpenAI:
endpoints:
custom:
- name: 'My Endpoint'
summarize: true
summaryModel: 'gpt-3.5-turbo'Bidang-bidang ini telah dihapus. Gunakan konfigurasi summarization tingkat atas sebagai gantinya:
summarization:
model: 'gpt-4o-mini'Catatan
- Ringkasan dikonfigurasi secara global, bukan per-endpoint
- Field
summarizedansummaryModelpada endpoint kustom dan endpoint Azure OpenAI tidak lagi didukung - Ketika
providerdanmodeldihilangkan, provider dan model milik agen tersebut akan digunakan untuk peringkasan. - Pemangkasan konteks (context pruning) dinonaktifkan secara default dan harus diaktifkan secara eksplisit dengan
contextPruning.enabled: true - Pemangkasan konteks hanya memengaruhi hasil panggilan alat yang melebihi
minPrunableToolChars— hasil yang lebih kecil tidak akan pernah dipangkas - Pengaturan
keepLastAssistantsmelindungi giliran percakapan terbaru dari pemangkasan terlepas dari rasio trim/clear. - Nilai
promptdanupdatePromptkustom akan menggantikan prompt bawaan sepenuhnya — gunakan dengan hati-hati - Atur
AGENT_DEBUG_LOGGING=truedi dalam file.envAnda untuk mengaktifkan pencatatan verbose terkait jumlah token dan diagnostik pemangkasan konteks.
Bagaimana panduan ini?