* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
33 KiB
🗜️ Prompt Compression Guide — OmniRoute (Bahasa Indonesia)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Hemat 15-95% pada konteks yang memenuhi syarat secara otomatis. Untuk ringkasan singkat, lihat bagian Kompresi README.
Ikhtisar
OmniRoute mengimplementasikan pipeline kompresi prompt modular yang berjalan secara proaktif sebelum permintaan mencapai penyedia upstream. Artinya, penghematan token berlangsung secara transparan — tidak diperlukan perubahan pada alur kerja Anda.
Permintaan Klien
→ Pemilih Strategi Kompresi
→ Ada penggantian combo? → Gunakan pengaturan combo
→ Ambang pemicu otomatis tercapai? → Gunakan mode otomatis
→ Ada mode default? → Gunakan pengaturan global
→ Nonaktif? → Lewati kompresi
→ Mode Kompresi yang Dipilih
→ Nonaktif: Tanpa kompresi
→ Ringan: Pembersihan spasi kosong/pemformatan yang aman (~15%)
→ Standar: Penghapusan kata pengisi bergaya manusia gua (~30%)
→ Agresif: Pengusangan riwayat + peringkasan (~50%)
→ Ultra: Pemangkasan heuristik + perampingan blok kode (~75%)
→ RTK: Pemfilteran output terminal/alat yang mempertimbangkan perintah (rentang upstream 60-90%)
→ Bertumpuk: Pipeline multi-engine berurutan, biasanya RTK lalu Caveman (rentang yang memenuhi syarat 78-95%)
→ Permintaan Terkompresi → Penyedia
Mode Kompresi
Nonaktif
Tidak ada kompresi yang diterapkan. Semua pesan diteruskan tanpa perubahan.
Mode Ringan (penghematan ~15%, latensi <1ms)
Mode paling aman — tanpa perubahan semantik, hanya pembersihan pemformatan:
| Teknik | Deskripsi |
|---|---|
collapseWhitespace |
Menggabungkan baris kosong berurutan dan spasi di akhir |
dedupSystemPrompt |
Menghapus pesan sistem duplikat |
compressToolResults |
Mengompresi output alat/fungsi yang panjang |
removeRedundantContent |
Menghapus instruksi yang berulang |
replaceImageUrls |
Memperpendek URI data gambar base64 |
Paling cocok untuk: Penggunaan yang selalu aktif dan alur kerja yang mengutamakan keamanan.
Mode Standar (penghematan ~30%)
Terinspirasi oleh Caveman — menghapus kata pengisi dan frasa bertele-tele sambil mempertahankan makna:
- Menghapus kata pengisi ("please", "I think", "basically", "actually")
- Memadatkan frasa bertele-tele ("in order to" → "to", "as a result of" → "because")
- Menghapus ungkapan sopan yang memperhalus permintaan ("Would you mind...", "If you could possibly...")
- 30+ aturan regex yang disesuaikan untuk prompt pengodean
Paling cocok untuk: Alur kerja pengodean harian dan tim yang sadar biaya.
Mode Agresif (penghematan ~50%)
Pengelolaan riwayat cerdas untuk sesi panjang:
- Pengusangan Pesan — pesan lama dikompresi secara progresif
- Peringkasan Hasil Alat — output alat yang panjang diganti dengan ringkasan
- Pelindung Integritas Struktural — memastikan pasangan
tool_use+tool_resulttetap konsisten - Kesadaran Jendela Konteks — mematuhi batas token per model
Paling cocok untuk: Sesi debugging yang panjang dan basis kode besar.
Mode Ultra (penghematan ~75%)
Kompresi maksimum untuk skenario yang sangat dibatasi token:
- Pemangkasan Heuristik — menghapus pesan di bawah ambang relevansi
- Perampingan Blok Kode — mengompresi contoh kode yang berulang
- Pemotongan dengan Pencarian Biner — menemukan titik potong optimal untuk jendela konteks
- Mencakup semua fitur mode Agresif
Paling cocok untuk: Saat Anda berulang kali mencapai batas konteks.
Mode RTK (rentang upstream 60-90%)
Mode RTK dioptimalkan untuk output alat yang panjang dalam sesi agen pengodean:
- Mendeteksi kelas perintah/output seperti
git status,git diff,git log, test runner, build TypeScript/Vite/Webpack, ESLint/Biome/Prettier, audit/instalasi npm, log Docker, output infrastruktur, dan output shell generik - Menerapkan paket filter JSON dari
open-sse/services/compression/engines/rtk/filters/ - Mengimpor filter schema RTK TOML v1 dari file
filters.tomlproyek atau global, dengan validasi pengujian inline dan pembatasan berdasarkan kepercayaan untuk file proyek - Menyediakan 49 filter bawaan dengan sampel verifikasi inline
- Menghapus urutan kontrol ANSI, bilah progres, baris berulang, dan derau yang tidak dapat ditindaklanjuti
- Mempertahankan kegagalan, kesalahan, peringatan, file yang berubah, ringkasan, dan bagian akhir output panjang
- Mendukung filter proyek dengan pembatasan berdasarkan kepercayaan, filter global, dan pemulihan opsional untuk output mentah yang telah disunting
Paling cocok untuk: Sesi agen dengan transkrip shell, build, pengujian, git, grep, dan output file.
Mode Bertumpuk (rentang yang memenuhi syarat 78-95%)
Mode Bertumpuk menjalankan beberapa engine kompresi dalam urutan deterministik. Pipeline default-nya adalah:
RTK -> Caveman
Urutan tersebut memadatkan output terminal/alat terlebih dahulu, lalu menerapkan pemadatan semantik Caveman pada prompt bahasa alami yang tersisa. Pipeline bertumpuk dapat dikonfigurasi secara global atau melalui combo kompresi yang ditetapkan ke combo perutean.
Paling cocok untuk: Konteks campuran dengan log alat berukuran besar serta instruksi manusia atau ringkasan asisten.
Perhitungan Penghematan Upstream
OmniRoute mendokumentasikan penghematan kompresi dari dua sumber: benchmark proyek upstream dan komposisi mesin OmniRoute sendiri.
| Sumber | Angka README upstream yang digunakan di sini |
|---|---|
| Caveman | ~75% lebih sedikit token keluaran, rata-rata benchmark penghematan keluaran 65%, rentang 22-87%, dan alat kompresi masukan ~46% |
| RTK | Penghematan keluaran perintah sebesar 60-90%; sesi sampel ~118,000 -> ~23,900 token, atau penghematan 79.7% (~80%) |
Untuk payload alat/konteks yang tumpang tindih, kombinasi default OmniRoute menumpuk mesin-mesin tersebut:
RTK -> Caveman
Penghematan gabungannya bersifat multiplikatif, bukan aditif:
gabungan = 1 - (1 - penghematan RTK) * (1 - penghematan masukan Caveman)
rata-rata = 1 - (1 - 0.80) * (1 - 0.46) = 89.2%
rentang = 1 - (1 - 0.60..0.90) * (1 - 0.46) = 78.4-94.6%
Angka 78-95% tersebut berlaku ketika RTK dan Caveman sama-sama dapat mengurangi payload masukan/konteks yang sama.
Mode keluaran respons Caveman bersifat terpisah: ketika diaktifkan, gunakan penghematan keluaran Caveman sendiri (rata-rata 65%,
angka utama ~75%, rentang 22-87%). Total penghematan biaya bergantung pada komposisi prompt/keluaran Anda.
Apa arti sebenarnya dari "memenuhi syarat"
Rentang utama 15-95% memang nyata, tetapi hanya berlaku untuk konten yang redundan atau terlalu panjang — baris
kesalahan berulang, log build yang terus mengeluarkan peringatan yang sama, dump grep/pembacaan file yang terlalu besar. Ini
bukan berarti setiap permintaan menghemat sebanyak itu.
Diverifikasi secara empiris (tests/unit/compression/stacked-compression-tool-result-savings.test.ts): proses
stacked (RTK + Caveman) terhadap blok tool_result berbentuk Anthropic yang berisi 300 baris
kesalahan identik menghasilkan penghematan token 95.93% / penghematan karakter 96.26% — tepat dalam rentang yang
diiklankan. Namun, pipeline yang sama ketika dijalankan terhadap keluaran alat yang normal dan tidak redundan (daftar kecocokan grep yang bersih,
pembacaan file singkat, teks percakapan biasa) dengan tepat menghasilkan penghematan mendekati nol, karena
tidak ada pengulangan yang dapat dihapus dan validateCompression() (validation.ts) menolak mengirim
penulisan ulang yang akan menghilangkan atau mengubah blok kode, URL, judul, versi, atau pengidentifikasi konstanta ALL-CAPS.
Ini adalah perilaku aman yang diharapkan, bukan bug: sesi pengodean yang sebagian besar membaca/mencari dengan grep pada file bersih akan menghasilkan total penghematan yang moderat meskipun kompresi diaktifkan sepenuhnya, sedangkan sesi yang mengalami loop gagal atau linter yang terlalu cerewet akan menghasilkan rentang penuh 78-95% pada lalu lintas tersebut. Jangan gunakan persentase penghematan agregat yang rendah dari satu sesi sebagai bukti bahwa kompresi salah dikonfigurasi — periksa terlebih dahulu apakah keluaran alat yang mendasarinya benar-benar redundan.
Visualisasi Penghematan Token
Tanpa kompresi: 47K token dikirim ke LLM
Dengan Lite: 40K token dikirim (hemat 15% — aman, selalu aktif)
Dengan Standard: 33K token dikirim (hemat 30% — aturan caveman-speak)
Dengan Aggressive: 24K token dikirim (hemat 50% — penuaan + peringkasan)
Dengan Ultra: 12K token dikirim (hemat 75% — pemangkasan heuristik)
Dengan RTK: 19K-5K token dikirim (hemat 60-90% pada keluaran perintah/alat)
Dengan Stacked: 10K-2.5K token dikirim (rentang RTK+Caveman 78-95% yang memenuhi syarat)
Konfigurasi
Dasbor
Buka Dashboard → Context & Cache:
- Caveman — pemilihan mode, paket bahasa, pratinjau, dan pengaturan default global
- RTK — pratinjau filter perintah, pengaturan keamanan RTK, dan katalog filter
- Compression Combos — pipeline mesin bernama yang ditetapkan ke kombo perutean
- Auto-Trigger Threshold — mengaktifkan kompresi secara otomatis saat jumlah token melampaui ambang batas
Penggantian Per Kombo
Di Dashboard → Context & Cache → Compression Combos, tetapkan kombo kompresi ke kombo perutean:
Kombo: "free-tier-fallback"
Kombo Kompresi: "coding-agent-stack"
Pipeline: RTK -> Caveman
Target:
1. if/kimi-k2.7-code
2. if/qwen3.8-max-preview
Hal ini memungkinkan Anda menggunakan kompresi bertumpuk pada penyedia gratis/coding sambil tetap menggunakan mode ringan pada langganan berbayar.
Penetapan "Penggantian Per Kombo" ini merupakan kontrol yang berbeda dari penggantian mode kompresi kombo perutean (Default/Off/Lite/Standard/Aggressive/Ultra) — penggantian tersebut tidak memilih pipeline kombo kompresi bernama; penggantian itu hanya mengatur bidang compressionMode yang digunakan oleh resolveCompressionPlan. Penggantian ini dapat diatur pada kartu kombo (Dashboard → Combos) atau, sejak #6760, per kombo perutean dalam daftar "Assign to routing" di Dashboard → Context & Cache → Compression Combos, tepat di sebelah kotak centang penetapan pipeline yang didokumentasikan di atas. Kedua antarmuka menyimpan perubahan melalui endpoint PUT /api/combos/{id} yang sama.
Penggantian per permintaan
Kirim header permintaan x-omniroute-compression untuk mengganti rencana kompresi bagi satu permintaan. Header ini memiliki prioritas tertinggi — mengungguli penggantian kombo perutean, profil aktif, pemicu otomatis, dan Default pada panel. Nilai yang tidak dikenal akan diabaikan (permintaan tidak pernah ditolak), dan sakelar utama global tetap mengontrol semuanya: saat kompresi dinonaktifkan secara global, header tidak dapat mengaktifkannya. Nilai:
| Nilai | Efek |
|---|---|
off |
Tanpa kompresi untuk permintaan ini. |
default |
Profil Default yang berasal dari panel (mengabaikan profil aktif). |
engine:<id> |
Satu mesin ketika diaktifkan, misalnya engine:rtk. |
<combo> |
Kombo bernama, dicocokkan berdasarkan nama (tanpa membedakan huruf besar-kecil) terlebih dahulu, lalu berdasarkan id. |
Rencana yang diterapkan dikembalikan dalam header respons X-OmniRoute-Compression: <mode>; source=<source>, dengan <source> berupa salah satu dari request-header, routing-override, active-profile, auto-trigger, default, atau off.
API
# Dapatkan pengaturan kompresi
curl http://localhost:20128/api/settings/compression
# Perbarui pengaturan kompresi
curl -X PUT http://localhost:20128/api/settings/compression \
-H "Content-Type: application/json" \
-d '{"defaultMode":"stacked","autoTriggerMode":"stacked","autoTriggerTokens":32000}'
# Pratinjau payload RTK/stacked tertentu
curl -X POST http://localhost:20128/api/compression/preview \
-H "Content-Type: application/json" \
-d '{"mode":"rtk","messages":[{"role":"tool","content":"npm test output here"}]}'
# Cantumkan paket filter RTK
curl http://localhost:20128/api/context/rtk/filters
# Uji RTK secara langsung dengan metadata perintah opsional
curl -X POST http://localhost:20128/api/context/rtk/test \
-H "Content-Type: application/json" \
-d '{"command":"npm test","text":"FAIL tests/example.test.ts\nError: boom"}'
Yang Dilindungi
Mesin kompresi selalu mempertahankan:
- ✅ Blok kode (berpagar dan sebaris)
- ✅ URL dan jalur file
- ✅ Struktur JSON dan data terstruktur
- ✅ Pengidentifikasi dan token teknis yang dilindungi
- ✅ Ekspresi matematika
- ✅ Definisi pemanggilan alat/fungsi
- ✅ Prompt sistem (dalam mode lite)
Pemulihan keluaran mentah RTK menyamarkan kunci API umum, bearer token, token Slack, kunci akses AWS, kata sandi, token, dan rahasia sebelum apa pun disimpan.
Statistik Kompresi
Setiap permintaan yang dikompresi menyertakan statistik dalam log server:
{
"originalTokens": 47200,
"compressedTokens": 40120,
"savingsPercent": 15.0,
"techniquesUsed": ["collapseWhitespace", "dedupSystemPrompt"],
"mode": "lite",
"engine": "caveman",
"compressionComboId": "coding-agent-stack",
"durationMs": 0.8,
"rtkRawOutputPointers": []
}
Peta Jalan Fase
| Fase | Mode | Status |
|---|---|---|
| Fase 1 | Off, Lite | ✅ Dirilis |
| Fase 2 | Standard, Aggressive, Ultra | ✅ Dirilis |
| Fase 3 | RTK, Stacked, Kombinasi Kompresi | ✅ Dirilis |
| Fase 4 | Gaya Keluaran, Ultra tingkat SLM, perangkat evaluasi | ✅ Dirilis |
| Fase 4C | Anggaran konteks adaptif ("dial") — mesin komputasi + API (contextBudget pada PUT /api/settings/compression) + kontrol mode/kebijakan dasbor |
✅ Dirilis |
Ucapan Terima Kasih
Aturan kompresi mode Standard terinspirasi oleh Caveman karya JuliusBrussee (⭐ 51K+) — proyek viral "mengapa menggunakan banyak token ketika sedikit token sudah cukup". Caveman melaporkan keluaran dengan token ~75% lebih sedikit, penghematan keluaran rata-rata tolok ukur sebesar 65%, rentang keluaran 22-87%, dan alat kompresi masukan sebesar ~46%.
Mode RTK terinspirasi oleh RTK - Rust Token Killer karya RTK AI — proyek kompresi keluaran perintah berkinerja tinggi untuk terminal, build, pengujian, git, dan pemfilteran keluaran alat. RTK melaporkan penghematan 60-90%, dengan contoh sesi README-nya menunjukkan penghematan ~80%.
Sistem Kompresi Lanjutan
Selain 7 mode standar, OmniRoute mencakup beberapa sistem kompresi lanjutan yang bekerja secara otomatis berdasarkan konteks.
Kompresi yang Mempertimbangkan Cache
Beberapa penyedia (seperti Anthropic dengan caching prompt) mendukung caching prompt, yang memungkinkan mereka menyimpan sebagian prompt ke cache untuk mengurangi biaya dan latensi. Ketika caching diaktifkan, kompresi agresif justru dapat merugikan kinerja karena kompresi tersebut mengubah token yang di-cache, sehingga membatalkan cache.
Modul cachingAware.ts mengatasi hal ini dengan mendeteksi konteks caching dan
menyesuaikan strategi kompresi sebagaimana mestinya.
Cara kerjanya
- Mendeteksi konteks caching — Memindai badan permintaan untuk penanda
cache_control - Mengidentifikasi penyedia caching — Memeriksa apakah penyedia target mendukung caching
- Menyesuaikan strategi — Menurunkan
aggressive/ultramenjadistandarduntuk penyedia caching - Melewati prompt sistem — Prompt sistem biasanya di-cache, jadi jangan mengompresinya
- Menggunakan transformasi deterministik — Hanya menggunakan transformasi yang menghasilkan keluaran konsisten
Contoh kode
import {
detectCachingContext,
getCacheAwareStrategy,
} from "@omniroute/open-sse/services/compression/cachingAware";
const body = {
model: "anthropic/claude-sonnet-4.5",
messages: [{ role: "user", content: "Hello" }],
cache_control: { type: "ephemeral" }, // ← Penanda cache
};
const ctx = detectCachingContext(body, { provider: "anthropic" });
// → { hasCacheControl: true, provider: "anthropic", isCachingProvider: true }
const strategy = getCacheAwareStrategy("aggressive", ctx);
// → { strategy: "standard", skipSystemPrompt: true, deterministicOnly: true }
Kapan digunakan
Kompresi yang mempertimbangkan cache selalu aktif — tidak diperlukan konfigurasi. Kompresi ini hanya mulai bekerja ketika:
- Permintaan memiliki penanda
cache_control - Penyedia target mendukung caching prompt (Anthropic, OpenAI, dll.)
Penuaan Progresif
Percakapan panjang mengakumulasi banyak giliran pesan, tetapi giliran yang lebih lama menjadi kurang
relevan. Modul progressiveAging.ts menurunkan detail pesan berdasarkan jarak giliran:
- Giliran terbaru (0-3): Dipertahankan apa adanya (detail lengkap)
- Giliran menengah (4-8): Kompresi Lite (pembersihan spasi kosong dan pemformatan)
- Giliran lama (9+): Kompresi Caveman (penghapusan pengisi dan peringkasan)
- Giliran sangat lama (20+): Diringkas secara intensif atau dibuang
Contoh kode
import { applyAging } from "@omniroute/open-sse/services/compression/progressiveAging";
const messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "What is 2+2?" },
{ role: "assistant", content: "4" },
// ... 50 giliran lagi ...
];
const { messages: aged, saved } = applyAging(messages, {
verbatim: 3, // 3 giliran pertama: apa adanya
light: 8, // Giliran 4-8: kompresi lite
moderate: 20, // Giliran 9-20: kompresi caveman
// Giliran 21+: peringkasan intensif
});
// saved = jumlah token yang dihemat
Kapan digunakan
Penuaan progresif selalu aktif untuk mode aggressive dan ultra. Fitur ini
sangat efektif untuk:
- Sesi pemrograman yang berlangsung lama
- Percakapan selama beberapa hari
- Alur kerja agen dengan banyak pemanggilan alat
Mode Output Caveman
Modul outputMode.ts menyisipkan instruksi prompt sistem agar model
menghasilkan output yang ringkas dan padat (gaya "caveman").
Cara kerjanya
Alih-alih mengompresi input, mode ini menambahkan prompt sistem seperti:
"Balas dengan kata seminimal mungkin. Lewati basa-basi. Gunakan kalimat pendek."
Ini sangat efektif untuk:
- Pembuatan kode (output lebih ringkas = lebih sedikit token)
- Tanya jawab singkat (tidak memerlukan penjelasan panjang lebar)
- Pemrosesan batch (memaksimalkan throughput)
Kapan digunakan
Mode output Caveman bersifat opsional — atur melalui konfigurasi combo:
{
"strategy": "auto",
"config": {
"auto": {
"outputMode": "caveman"
}
}
}
Gaya Output (katalog)
Mode output Caveman di atas merupakan jalur gaya tunggal lama. Fase 4 mengembangkannya
menjadi katalog gaya output yang dapat dikombinasikan: OUTPUT_STYLE_CATALOG di
open-sse/services/compression/outputStyles/catalog.ts. Setiap gaya merupakan instruksi
prompt sistem yang membuat model menghasilkan output yang lebih hemat; beberapa gaya dapat
diaktifkan sekaligus dan disisipkan sesuai urutan katalog.
| Gaya | id |
Fungsinya | Bahasa instruksi |
|---|---|---|---|
| Prosa ringkas | terse-prose |
Menghilangkan kata pengisi/artikel/ungkapan keraguan; mempertahankan substansi teknis secara akurat. Teksnya sama dengan mode output caveman lama (dirujuk, bukan diketik ulang). | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Lebih sedikit kode | less-code |
Tangga YAGNI: perubahan berfungsi yang paling kecil, tanpa abstraksi yang tidak diminta. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Ponytail (pengembang senior yang malas) | ponytail |
"Kode terbaik adalah kode yang tidak pernah ditulis": penggunaan ulang > penulisan ulang, akar masalah > gejala, diff berfungsi yang paling singkat. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Saya menderita ADHD (tindakan lebih dahulu) | i-have-adhd |
Tindakan lebih dahulu (perintah/path/cuplik sebelum prosa), langkah bernomor yang terbatas, SATU langkah konkret berikutnya, tanpa pembuka/rangkuman/penutup. Diadaptasi dari ayghri/i-have-adhd (MIT). | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| CJK ringkas (文言) | terse-cjk |
Gaya bahasa Tionghoa klasik yang sangat ringkas. | zh (dibatasi berdasarkan locale: hanya ditawarkan ketika bahasa yang ditentukan adalah zh) |
Setiap gaya menyediakan tiga tingkat intensitas — lite, full, ultra — dan setiap tingkat
diakhiri dengan klausa batasan bersama, yang mempertahankan blok kode, path file, perintah,
string kesalahan, URL, dan identifier apa adanya.
Cara kerja penyisipan
applyOutputStyles() (open-sse/services/compression/outputStyles/apply.ts) mencocokkan
pilihan dengan katalog (id yang tidak dikenal dan gaya yang tidak sesuai dengan locale
dihapus, tanpa pernah menghasilkan kesalahan), menggabungkan instruksi yang dipilih sesuai
urutan katalog, menambahkan klausa batasan satu kali, dan menempatkan hasilnya di awal
prompt sistem setelah satu penanda idempotensi ([OmniRoute Output Styles]) — penerapan
ulang tidak melakukan apa pun. Jika bahasa permintaan yang terdeteksi memiliki terjemahan,
instruksi yang telah dilokalkan akan disisipkan sebagai pengganti bahasa Inggris.
Cara mengaktifkan
Di dasbor: Konteks → Pengaturan → Kompresi — satu baris per gaya dengan tombol aktif/nonaktif dan pemilih tingkat. Secara terprogram, konfigurasi kompresi menyimpan pilihan sebagai:
{
"outputStyles": [
{ "id": "i-have-adhd", "level": "full" },
{ "id": "less-code", "level": "lite" }
]
}
Kompatibilitas mundur: pengaturan combo lama outputMode: "caveman" tetap berfungsi dan
dipetakan ke terse-prose, identik byte demi byte dengan penyisipan lama dalam setiap bahasa lama.
Pemilihan bahasa: saat languageConfig.enabled aktif, autoDetect memilih
bahasa pesan pengguna terbaru (menggunakan detektor yang sama dengan mesin input);
menonaktifkan autoDetect akan menetapkan defaultLanguage. Nonaktif → bahasa Inggris.
Matriks gaya × bahasa ditetapkan oleh
tests/unit/compression/output-styles-i18n-matrix.test.ts: gaya baru tidak dapat dirilis
tanpa setidaknya terjemahan pt-BR (atau pengecualian terlacak yang eksplisit), dan gaya
yang sudah ada tidak dapat kehilangan locale secara diam-diam. Untuk menambahkan gaya, lihat
EXTENDING_COMPRESSION.md.
Kompresi Hasil Alat
Modul toolResultCompressor.ts menyediakan 5 strategi kompresi khusus
untuk hasil alat (pemanggilan fungsi, output agen, hasil pencarian, dan sebagainya):
- Kompresi hasil pencarian — Menghapus hasil redundan, mempertahankan N teratas
- Kompresi pembacaan file — Memotong file besar, mempertahankan header/import
- Kompresi eksekusi kode — Hanya mempertahankan stdout/stderr yang esensial
- Kompresi kueri database — Membatasi baris, menghapus metadata yang panjang
- Kompresi respons API — Menghapus field null, meringkas array
Kapan digunakan
Kompresi hasil alat selalu aktif ketika terdapat pemanggilan alat. Tidak memerlukan konfigurasi.
Pipeline Bertumpuk
Mode bertumpuk menjalankan beberapa mesin secara berurutan — biasanya RTK terlebih dahulu (penghematan 60-90% pada output alat), kemudian Caveman (penghematan tambahan 30% pada teks yang tersisa). Ini menghasilkan penghematan total 78-95%.
Cara kerjanya
Input (1000 token)
→ RTK (filter berbasis perintah) → 200 token
→ Caveman (penghapusan kata pengisi) → 140 token
→ Output (140 token, penghematan 86%)
Kapan digunakan
Gunakan mode bertumpuk untuk:
- Alur kerja yang banyak menggunakan alat (pemrograman berbasis agen, riset)
- Pemrosesan batch yang sensitif terhadap biaya
- Saat Anda memerlukan penghematan token maksimal
Konfigurasikan melalui combo:
{
"strategy": "auto",
"config": {
"auto": {
"modePack": "stacked"
}
}
}
Penggantian Kombo Kompresi
Anda dapat mengganti mode kompresi global untuk setiap kombo guna menyempurnakan perilaku bagi berbagai kasus penggunaan:
{
"id": "coding-combo",
"strategy": "priority",
"config": {
"auto": {
"weights": { "taskFit": 0.5 },
"modePack": "quality-first"
}
},
"compressionOverride": {
"mode": "aggressive",
"stackedPipelines": ["rtk", "caveman"],
"preserveToolDefinitions": true
}
}
Ini berguna untuk:
- Kombo pemrograman: Gunakan mode
aggressiveuntuk sesi panjang - Kombo tanya jawab singkat: Gunakan mode
liteuntuk respons cepat - Kombo dengan banyak alat: Gunakan mode
stackeduntuk penghematan maksimal - Kombo produksi: Gunakan mode
cache-awareuntuk penyedia caching
Lihat Juga
- Konfigurasi Lingkungan — Variabel lingkungan kompresi
- Panduan Arsitektur — Bagian internal pipeline kompresi
- Panduan Pengguna — Memulai penggunaan kompresi
- Kompresi RTK — Filter RTK, model kepercayaan, gerbang verifikasi, pemulihan output mentah
- Mesin Kompresi — Caveman, RTK, stacked, API, MCP, dasbor
- Format Aturan Kompresi — Format paket aturan JSON
- Paket Bahasa Kompresi — Aturan Caveman khusus bahasa