* 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.
34 KiB
🗜️ Prompt Compression Guide — OmniRoute (Hrvatski)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 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
Automatski uštedite 15–95 % na sadržaju koji ispunjava uvjete. Za brzi pregled pogledajte odjeljak README-ja o kompresiji.
Pregled
OmniRoute implementira modularni cjevovod za kompresiju upita koji se pokreće proaktivno prije nego što zahtjevi stignu do nadređenih pružatelja usluga. To znači da se tokeni štede transparentno — nisu potrebne nikakve promjene u vašem tijeku rada.
Zahtjev klijenta
→ Selektor strategije kompresije
→ Nadjačavanje kombinacijom? → Upotrijebi postavku kombinacije
→ Prag automatskog pokretanja? → Upotrijebi automatski način
→ Zadani način? → Upotrijebi globalnu postavku
→ Isključeno? → Preskoči kompresiju
→ Odabrani način kompresije
→ Isključeno: Bez kompresije
→ Lite: Sigurno čišćenje razmaka i oblikovanja (~15 %)
→ Standard: Uklanjanje suvišnih riječi u pećinskom stilu (~30 %)
→ Aggressive: Starenje povijesti + sažimanje (~50 %)
→ Ultra: Heurističko obrezivanje + stanjivanje blokova koda (~75 %)
→ RTK: Filtriranje izlaza terminala/alata uz prepoznavanje naredbi (raspon od 60 do 90 % kod nadređenog pružatelja)
→ Stacked: Uređeni cjevovod s više mehanizama, obično RTK pa Caveman (raspon od 78 do 95 % sadržaja koji ispunjava uvjete)
→ Komprimirani zahtjev → Pružatelj usluge
Načini kompresije
Off
Kompresija se ne primjenjuje. Sve poruke prolaze nepromijenjene.
Lite način (~15 % uštede, latencija <1 ms)
Najsigurniji način — bez semantičkih promjena, samo čišćenje oblikovanja:
| Tehnika | Opis |
|---|---|
collapseWhitespace |
Spaja uzastopne prazne retke i uklanja završne razmake |
dedupSystemPrompt |
Uklanja duplicirane sistemske poruke |
compressToolResults |
Komprimira opširne izlaze alata/funkcija |
removeRedundantContent |
Uklanja ponovljene upute |
replaceImageUrls |
Skraćuje URI-jeve slikovnih podataka u formatu base64 |
Najprikladnije za: Stalnu upotrebu i tijekove rada u kojima je sigurnost ključna.
Standard način (~30 % uštede)
Nadahnut alatom Caveman — uklanja suvišne riječi i opširne izraze uz očuvanje značenja:
- Uklanja suvišne riječi („molim”, „mislim”, „u osnovi”, „zapravo”)
- Sažima opširne izraze („kako bi se” → „da”, „kao rezultat” → „zbog”)
- Uklanja ublažavajuće izraze iz pristojnosti („Bi li vam smetalo...”, „Ako biste možda mogli...”)
- Više od 30 pravila regularnih izraza prilagođenih upitima za programiranje
Najprikladnije za: Svakodnevne programerske tijekove rada i timove usmjerene na troškove.
Aggressive način (~50 % uštede)
Pametno upravljanje poviješću za duge sesije:
- Starenje poruka — starije se poruke postupno sve više komprimiraju
- Sažimanje rezultata alata — dugi izlazi alata zamjenjuju se sažecima
- Zaštita strukturne cjelovitosti — osigurava da parovi
tool_use+tool_resultostanu dosljedni - Uvažavanje kontekstnog prozora — poštuje ograničenja broja tokena za svaki model
Najprikladnije za: Duge sesije otklanjanja pogrešaka i velike baze koda.
Ultra način (~75 % uštede)
Maksimalna kompresija za scenarije u kojima je broj tokena ključan:
- Heurističko obrezivanje — uklanja poruke ispod praga relevantnosti
- Stanjivanje blokova koda — komprimira ponavljajuće primjere koda
- Skraćivanje binarnim pretraživanjem — pronalazi optimalnu točku skraćivanja za kontekstni prozor
- Uključene su sve značajke načina Aggressive
Najprikladnije za: Situacije u kojima opetovano dosežete ograničenja konteksta.
RTK način (raspon od 60 do 90 % kod nadređenog pružatelja)
RTK način optimiziran je za opširne izlaze alata koji se pojavljuju u sesijama programerskih agenata:
- Otkriva klase naredbi/izlaza kao što su
git status,git diff,git log, pokretači testova, međuverzije TypeScript/Vite/Webpack, ESLint/Biome/Prettier, npm provjere/instalacije, Docker zapisnici, infrastrukturni izlaz i generički izlaz ljuske - Primjenjuje pakete JSON filtara iz
open-sse/services/compression/engines/rtk/filters/ - Uvozi filtre sheme RTK TOML v1 iz projektnih ili globalnih datoteka
filters.toml, uz provjeru ugrađenih testova i kontrolu pouzdanosti projektnih datoteka - Isporučuje 49 ugrađenih filtara s ugrađenim primjerima za provjeru
- Uklanja ANSI kontrolne sekvence, trake napretka, ponovljene retke i nekorisni šum
- Čuva neuspjehe, pogreške, upozorenja, promijenjene datoteke, sažetke i završetak dugog izlaza
- Podržava projektne filtre s kontrolom pouzdanosti, globalne filtre i neobavezan oporavak redigiranog neobrađenog izlaza
Najprikladnije za: Sesije agenata s transkriptima ljuske, međuverzija, testova, gita, grepa i izlaza datoteka.
Stacked način (raspon od 78 do 95 % sadržaja koji ispunjava uvjete)
Stacked način pokreće više mehanizama za kompresiju determinističkim redoslijedom. Zadani cjevovod je:
RTK -> Caveman
Tim se redoslijedom najprije sažimaju izlazi terminala/alata, a zatim Caveman semantički sažima preostali upit na prirodnom jeziku. Stacked cjevovodi mogu se konfigurirati globalno ili putem kombinacija kompresije dodijeljenih kombinacijama usmjeravanja.
Najprikladnije za: Mješoviti kontekst s velikim zapisnicima alata te ljudskim uputama ili sažecima asistenta.
Izračun ušteda iz izvornih projekata
OmniRoute dokumentira uštede kompresijom iz dvaju izvora: referentnih testova izvornih projekata i vlastite kombinacije mehanizama OmniRoutea.
| Izvor | Broj iz README-ja izvornog projekta koji se ovdje upotrebljava |
|---|---|
| Caveman | ~75% manje izlaznih tokena, prosječna ušteda izlaza na referentnim testovima od 65%, raspon 22-87% i alat za kompresiju ulaza od ~46% |
| RTK | Ušteda izlaza naredbi od 60-90%; ogledna sesija od ~118,000 -> ~23,900 tokena, odnosno ušteda od 79.7% (~80%) |
Za preklapajuće korisne sadržaje alata/konteksta zadana kombinacija OmniRoutea slaže mehanizme ovim redoslijedom:
RTK -> Caveman
Kombinirane uštede su multiplikativne, a ne aditivne:
combined = 1 - (1 - RTK savings) * (1 - Caveman input savings)
average = 1 - (1 - 0.80) * (1 - 0.46) = 89.2%
range = 1 - (1 - 0.60..0.90) * (1 - 0.46) = 78.4-94.6%
Brojka od 78-95% primjenjuje se kada i RTK i Caveman mogu smanjiti isti ulazni/kontekstualni korisni sadržaj.
Cavemanov način rada za izlaz odgovora zaseban je: kada je omogućen, upotrijebite Cavemanove vlastite uštede izlaza (65%
u prosjeku, istaknuta vrijednost ~75%, raspon 22-87%). Ukupne uštede na naplati ovise o omjeru upita i izlaza.
Što "prihvatljiv" zapravo znači
Istaknuti raspon od 15-95% stvaran je, ali primjenjuje se samo na redundantan ili preopširan sadržaj — ponovljene
retke pogrešaka, zapisnik izgradnje koji neprestano ispisuje isto upozorenje, prevelik ispis naredbe grep/čitanja datoteke. To
ne znači da svaki zahtjev ostvaruje toliku uštedu.
Empirijski potvrđeno (tests/unit/compression/stacked-compression-tool-result-savings.test.ts): pokretanje načina
stacked (RTK + Caveman) nad blokom tool_result u Anthropicovu obliku, koji je sadržavao 300 identičnih
redaka pogrešaka, ostvarilo je uštedu tokena od 95.93% / uštedu znakova od 96.26% — točno unutar oglašenog
raspona. No pokretanje istog slijeda obrade nad uobičajenim, neredundantnim izlazom alata (čist popis podudaranja naredbe grep,
kratko čitanje datoteke, običan razgovorni tekst) ispravno ostvaruje gotovo nikakvu uštedu jer
nema ničega što se ponavlja i validateCompression() (validation.ts) odbija isporučiti
preinaku koja bi izostavila ili izmijenila blokove koda, URL-ove, naslove, verzije ili identifikatore konstanti PISANE VELIKIM SLOVIMA.
To je očekivano i sigurno ponašanje, a ne pogreška: sesija programiranja koja uglavnom čita/pretražuje čiste datoteke naredbom grep
ostvarit će skromne ukupne uštede čak i kada je kompresija potpuno omogućena, dok će sesija koja naiđe na petlju s pogreškom
ili preopširan linter ostvariti puni raspon od 78-95% na tom prometu. Nemojte nizak zbirni postotak uštede
jedne sesije smatrati dokazom da je kompresija pogrešno konfigurirana — najprije provjerite je li
izlaz alata u pozadini doista bio redundantan.
Vizualizacija uštede tokena
Bez kompresije: 47K tokena poslano LLM-u
Uz Lite: 40K tokena poslano (15% uštede — sigurno, uvijek uključeno)
Uz Standard: 33K tokena poslano (30% uštede — pravila caveman-govora)
Uz Aggressive: 24K tokena poslano (50% uštede — zastarijevanje + sažimanje)
Uz Ultra: 12K tokena poslano (75% uštede — heurističko uklanjanje)
Uz RTK: 19K-5K tokena poslano (60-90% uštede na izlazu naredbi/alata)
Uz Stacked: 10K-2.5K tokena poslano (prihvatljivi raspon RTK+Caveman od 78-95%)
Konfiguracija
Nadzorna ploča
Idite na Dashboard → Context & Cache:
- Caveman — odabir načina rada, jezični paketi, pretpregled i globalne zadane postavke
- RTK — pretpregled filtra naredbi, sigurnosne postavke za RTK i katalog filtara
- Kombinacije kompresije — imenovani cjevovodi mehanizama dodijeljeni kombinacijama usmjeravanja
- Prag automatskog pokretanja — automatski aktivira kompresiju kada broj tokena premaši prag
Nadjačavanje po kombinaciji
U Dashboard → Context & Cache → Compression Combos dodijelite kombinaciju kompresije kombinaciji
usmjeravanja:
Kombinacija: "free-tier-fallback"
Kombinacija kompresije: "coding-agent-stack"
Cjevovod: RTK -> Caveman
Ciljevi:
1. if/kimi-k2.7-code
2. if/qwen3.8-max-preview
To vam omogućuje upotrebu složene kompresije na besplatnim/programerskim pružateljima, uz zadržavanje laganog načina rada na plaćenim pretplatama.
Ova dodjela „Nadjačavanje po kombinaciji” razlikuje se od nadjačavanja načina kompresije kombinacije
usmjeravanja (Default/Off/Lite/Standard/Aggressive/Ultra) — to nadjačavanje ne odabire imenovani
cjevovod kombinacije kompresije; ono samo postavlja polje compressionMode koje provjerava
resolveCompressionPlan. Može se postaviti na kartici kombinacije (Dashboard → Combos) ili, od
#6760, za svaku kombinaciju usmjeravanja na popisu „Assign to routing” u
Dashboard → Context & Cache → Compression Combos, odmah pokraj potvrdnog okvira za dodjelu cjevovoda
koji je prethodno dokumentiran. Oba sučelja spremaju postavke putem iste krajnje točke PUT /api/combos/{id}.
Nadjačavanje po zahtjevu
Pošaljite zaglavlje zahtjeva x-omniroute-compression kako biste nadjačali plan kompresije za pojedinačni
zahtjev. Ono ima najviši prioritet — nadjačava postavku kombinacije usmjeravanja, aktivni profil,
automatsko pokretanje i zadanu postavku na ploči. Nepoznate se vrijednosti zanemaruju (zahtjev se nikada ne odbija), a
globalni glavni prekidač i dalje upravlja svime: kada je kompresija globalno isključena, zaglavlje je ne može
uključiti. Vrijednosti:
| Vrijednost | Učinak |
|---|---|
off |
Bez kompresije za ovaj zahtjev. |
default |
Zadani profil izveden iz postavki ploče (zanemaruje aktivni profil). |
engine:<id> |
Jedan mehanizam kada je omogućen, npr. engine:rtk. |
<combo> |
Imenovana kombinacija, najprije usklađena prema nazivu (bez razlikovanja velikih i malih slova), a zatim prema ID-u. |
Primijenjeni plan vraća se u zaglavlju odgovora X-OmniRoute-Compression: <mode>; source=<source>,
pri čemu je <source> jedna od vrijednosti request-header, routing-override, active-profile,
auto-trigger, default ili off.
API
# Dohvati postavke kompresije
curl http://localhost:20128/api/settings/compression
# Ažuriraj postavke kompresije
curl -X PUT http://localhost:20128/api/settings/compression \
-H "Content-Type: application/json" \
-d '{"defaultMode":"stacked","autoTriggerMode":"stacked","autoTriggerTokens":32000}'
# Pretpregled određenog RTK/složenog korisnog sadržaja
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"}]}'
# Prikaži popis paketa RTK filtara
curl http://localhost:20128/api/context/rtk/filters
# Izravno testiraj RTK s neobaveznim metapodacima naredbe
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"}'
Što je zaštićeno
Mehanizam za kompresiju uvijek čuva:
- ✅ Blokove koda (ograđene i umetnute)
- ✅ URL-ove i putanje datoteka
- ✅ JSON strukture i strukturirane podatke
- ✅ Identifikatore i zaštićene tehničke tokene
- ✅ Matematičke izraze
- ✅ Definicije poziva alata/funkcija
- ✅ Sistemske upite (u laganom načinu rada)
Oporavak neobrađenog RTK izlaza uklanja uobičajene API ključeve, tokene nositelja, Slack tokene, AWS pristupne ključeve, lozinke, tokene i tajne prije nego što se bilo što trajno pohrani.
Statistika kompresije
Svaki komprimirani zahtjev uključuje statistiku u zapisnicima poslužitelja:
{
"originalTokens": 47200,
"compressedTokens": 40120,
"savingsPercent": 15.0,
"techniquesUsed": ["collapseWhitespace", "dedupSystemPrompt"],
"mode": "lite",
"engine": "caveman",
"compressionComboId": "coding-agent-stack",
"durationMs": 0.8,
"rtkRawOutputPointers": []
}
Plan faza
| Faza | Načini rada | Status |
|---|---|---|
| Faza 1 | Isključeno, lagano | ✅ Isporučeno |
| Faza 2 | Standardno, agresivno, ultra | ✅ Isporučeno |
| Faza 3 | RTK, složeno, kombinacije kompresije | ✅ Isporučeno |
| Faza 4 | Stilovi izlaza, ultra razine SLM-a, okvir za evaluaciju | ✅ Isporučeno |
| Faza 4C | Prilagodljivi proračun konteksta („regulator”) — računalni mehanizam + API (contextBudget na PUT /api/settings/compression) + kontrole načina rada/pravilnika na nadzornoj ploči |
✅ Isporučeno |
Zahvale
Pravila kompresije standardnog načina rada nadahnuta su projektom Caveman autora Juliusa Brusseea (⭐ 51K+) — viralnim projektom „zašto koristiti mnogo tokena kada malo tokena odradi posao”. Caveman navodi ~75% manje izlaznih tokena, prosječnu uštedu izlaza od 65% u referentnim testovima, raspon izlaznih ušteda od 22-87% i alat za kompresiju ulaza od ~46%.
RTK način rada nadahnut je projektom RTK - Rust Token Killer organizacije RTK AI — visokoučinkovitim projektom za kompresiju izlaza naredbi namijenjenom filtriranju izlaza terminala, međuverzija, testova, gita i alata. RTK navodi uštede od 60-90%, dok ogledna sesija u njegovoj datoteci README prikazuje uštedu od ~80%.
Napredni sustavi kompresije
Osim 7 standardnih načina rada, OmniRoute uključuje nekoliko naprednih sustava kompresije koji rade automatski ovisno o kontekstu.
Kompresija prilagođena predmemoriji
Neki pružatelji (poput Anthropic-a s predmemoriranjem upita) podržavaju predmemoriranje upita, što im omogućuje predmemoriranje dijelova upita radi smanjenja troškova i latencije. Kada je predmemoriranje omogućeno, agresivna kompresija zapravo može naštetiti performansama jer mijenja predmemorirane tokene i time poništava predmemoriju.
Modul cachingAware.ts to rješava otkrivanjem konteksta predmemoriranja i
prilagođavanjem strategije kompresije u skladu s njim.
Kako funkcionira
- Otkrivanje konteksta predmemoriranja — Pretražuje tijelo zahtjeva u potrazi za oznakama
cache_control - Prepoznavanje pružatelja s predmemoriranjem — Provjerava podržava li ciljni pružatelj predmemoriranje
- Prilagodba strategije — Snižava
aggressive/ultranastandardza pružatelje s predmemoriranjem - Preskakanje sistemskog upita — Sistemski se upiti obično predmemoriraju, stoga ih ne treba komprimirati
- Upotreba determinističkih transformacija — Upotrebljava samo transformacije koje daju dosljedan izlaz
Primjer koda
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" }, // ← Oznaka predmemorije
};
const ctx = detectCachingContext(body, { provider: "anthropic" });
// → { hasCacheControl: true, provider: "anthropic", isCachingProvider: true }
const strategy = getCacheAwareStrategy("aggressive", ctx);
// → { strategy: "standard", skipSystemPrompt: true, deterministicOnly: true }
Kada upotrebljavati
Kompresija prilagođena predmemoriji uvijek je uključena — konfiguracija nije potrebna. Aktivira se samo kada:
- Zahtjev sadrži oznake
cache_control - Ciljni pružatelj podržava predmemoriranje upita (Anthropic, OpenAI itd.)
Progresivno starenje
Dugi razgovori nakupljaju mnogo poruka, ali starije poruke postaju manje
relevantne. Modul progressiveAging.ts degradira poruke prema udaljenosti od posljednje poruke:
- Nedavne poruke (0-3): Čuvaju se doslovno (sa svim pojedinostima)
- Srednje stare poruke (4-8): Lagana kompresija (uklanjanje suvišnih razmaka, čišćenje oblikovanja)
- Stare poruke (9+): Caveman kompresija (uklanjanje suvišnog sadržaja, sažimanje)
- Vrlo stare poruke (20+): Opsežno se sažimaju ili odbacuju
Primjer koda
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" },
// ... još 50 poruka ...
];
const { messages: aged, saved } = applyAging(messages, {
verbatim: 3, // Prve 3 poruke: doslovno
light: 8, // Poruke 4-8: lagana kompresija
moderate: 20, // Poruke 9-20: Caveman kompresija
// Poruke 21+: opsežno sažimanje
});
// saved = broj ušteđenih tokena
Kada upotrebljavati
Progresivno starenje uvijek je uključeno za načine rada aggressive i ultra. Posebno je učinkovito za:
- Dugotrajne sesije programiranja
- Višednevne razgovore
- Agentske tijekove rada s mnogo poziva alata
Način izlaza Caveman
Modul outputMode.ts umeće upute u sistemski prompt kako bi sam model stvarao sažet, štur izlaz (stil "pećinskog čovjeka").
Kako funkcionira
Umjesto sažimanja ulaza, ovaj način dodaje sistemski prompt poput:
"Odgovaraj s minimalno riječi. Preskoči ljubaznosti. Koristi kratke rečenice."
To je posebno učinkovito za:
- Generiranje koda (sažetiji izlaz = manje tokena)
- Brza pitanja i odgovore (nisu potrebna opširna objašnjenja)
- Skupnu obradu (maksimalna propusnost)
Kada ga koristiti
Način izlaza Caveman uključuje se opcionalno — postavite ga putem kombinirane konfiguracije:
{
"strategy": "auto",
"config": {
"auto": {
"outputMode": "caveman"
}
}
}
Stilovi izlaza (katalog)
Prethodno opisani način izlaza Caveman naslijeđeni je put s jednim stilom. Faza 4 proširila ga je u katalog kombiniranih stilova izlaza: OUTPUT_STYLE_CATALOG u datoteci open-sse/services/compression/outputStyles/catalog.ts. Svaki stil predstavlja uputu u sistemskom promptu koja navodi sam model da stvara ekonomičniji izlaz; stilovi se mogu uključiti zajedno i umeću se redoslijedom iz kataloga.
| Stil | id |
Što radi | Jezici uputa |
|---|---|---|---|
| Sažeta proza | terse-prose |
Uklanja poštapalice/članove/ograđivanje; tehnički sadržaj ostaje precizan. Isti tekst kao u naslijeđenom načinu izlaza Caveman (referenciran, ne prepisan). | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Manje koda | less-code |
YAGNI ljestvica: najmanja funkcionalna promjena, bez nezatraženih apstrakcija. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Konjski rep (lijeni stariji programer) | ponytail |
"Najbolji je kod onaj koji nikad nije napisan": ponovna uporaba > ponovno pisanje, temeljni uzrok > simptom, najkraća funkcionalna razlika. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Imam ADHD (prvo radnja) | i-have-adhd |
Prvo radnja (naredba/putanja/isječak prije proze), numerirani ograničeni koraci, JEDAN konkretan sljedeći korak, bez uvoda/sažetka/završnih napomena. Prilagođeno iz ayghri/i-have-adhd (MIT). | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| Sažeti CJK (文言) | terse-cjk |
Izrazito sažet stil klasičnog kineskog. | zh (ograničeno lokalom: nudi se samo kada je razriješeni jezik zh) |
Svaki stil dolazi s tri razine intenziteta — lite, full, ultra — a svaka razina završava zajedničkom klauzulom o granicama, koja blokove koda, putanje datoteka, naredbe, tekstove pogrešaka, URL-ove i identifikatore zadržava neizmijenjenima.
Kako umetanje funkcionira
applyOutputStyles() (open-sse/services/compression/outputStyles/apply.ts) razrješava odabir prema katalogu (nepoznati id-ovi i stilovi koji ne odgovaraju lokalu odbacuju se i nikada ne uzrokuju pogrešku), spaja odabrane upute redoslijedom iz kataloga, dodaje klauzulu o granicama jednom i umeće rezultat na početak sistemskog prompta iza jedinstvene oznake idempotentnosti ([OmniRoute Output Styles]) — ponovna primjena ne čini ništa. Kada postoji prijevod za otkriveni jezik zahtjeva, umjesto upute na engleskom umeće se lokalizirana uputa.
Kako omogućiti
Na nadzornoj ploči: Kontekst → Postavke → Kompresija — jedan redak po stilu s prekidačem za uključivanje/isključivanje i izbornikom razine. Programska konfiguracija kompresije sprema odabir kao:
{
"outputStyles": [
{ "id": "i-have-adhd", "level": "full" },
{ "id": "less-code", "level": "lite" }
]
}
Kompatibilnost unatrag: naslijeđena kombinirana postavka outputMode: "caveman" i dalje radi te se preslikava na terse-prose, uz identičan slijed bajtova kao u starom umetanju za svaki naslijeđeni jezik.
Odabir jezika: kada je languageConfig.enabled uključen, autoDetect odabire jezik najnovije korisničke poruke (isti detektor kao u mehanizmima za ulaz); isključivanje opcije autoDetect fiksira defaultLanguage. Isključeno → engleski.
Matrica stilova × jezika fiksirana je testom tests/unit/compression/output-styles-i18n-matrix.test.ts: novi se stil ne može isporučiti bez barem prijevoda na pt-BR (ili izričite praćene iznimke), a postojeći stil ne može neprimjetno izgubiti lokal. Za dodavanje stila pogledajte EXTENDING_COMPRESSION.md.
Kompresija rezultata alata
Modul toolResultCompressor.ts pruža 5 specijaliziranih strategija kompresije za rezultate alata (pozive funkcija, izlaze agenata, rezultate pretraživanja itd.):
- Kompresija rezultata pretraživanja — uklanja suvišne rezultate, zadržava prvih N
- Kompresija čitanja datoteka — skraćuje velike datoteke, zadržava zaglavlja/uvoze
- Kompresija izvršavanja koda — zadržava samo nužni stdout/stderr
- Kompresija upita baze podataka — ograničava retke, uklanja opširne metapodatke
- Kompresija odgovora API-ja — uklanja polja s vrijednošću null, sažima polja
Kada je koristiti
Kompresija rezultata alata uvijek je uključena kada postoje pozivi alata. Konfiguracija nije potrebna.
Složeni obradni kanal
Složeni način pokreće više mehanizama uzastopno — obično prvo RTK (60–90 % uštede na izlazu alata), a zatim Caveman (dodatnih 30 % uštede na preostalom tekstu). Time se postiže ukupna ušteda od 78–95 %.
Kako funkcionira
Ulaz (1000 tokena)
→ RTK (filtar koji prepoznaje naredbe) → 200 tokena
→ Caveman (uklanjanje poštapalica) → 140 tokena
→ Izlaz (140 tokena, 86 % uštede)
Kada ga koristiti
Koristite složeni način za:
- Tijekove rada s intenzivnom uporabom alata (agentsko programiranje, istraživanje)
- Troškovno osjetljivu skupnu obradu
- Situacije kada vam je potrebna maksimalna ušteda tokena
Konfigurirajte putem kombinirane konfiguracije:
{
"strategy": "auto",
"config": {
"auto": {
"modePack": "stacked"
}
}
}
Nadjačavanja kompresije za kombinacije
Možete nadjačati globalni način kompresije za svaku kombinaciju zasebno kako biste precizno prilagodili ponašanje različitim slučajevima upotrebe:
{
"id": "coding-combo",
"strategy": "priority",
"config": {
"auto": {
"weights": { "taskFit": 0.5 },
"modePack": "quality-first"
}
},
"compressionOverride": {
"mode": "aggressive",
"stackedPipelines": ["rtk", "caveman"],
"preserveToolDefinitions": true
}
}
Ovo je korisno za:
- Kombinacije za programiranje: Koristite način
aggressiveza duge sesije - Kombinacije za brza pitanja i odgovore: Koristite način
liteza brze odgovore - Kombinacije s intenzivnom upotrebom alata: Koristite način
stackedza maksimalne uštede - Produkcijske kombinacije: Koristite način
cache-awareza pružatelje usluga s predmemoriranjem
Pogledajte također
- Konfiguracija okruženja — Varijable okruženja za kompresiju
- Vodič kroz arhitekturu — Unutarnji ustroj cjevovoda kompresije
- Korisnički vodič — Početak rada s kompresijom
- RTK kompresija — RTK filtri, model povjerenja, kontrola provjere, oporavak neobrađenog izlaza
- Mehanizmi kompresije — Caveman, RTK, složeni način, API-ji, MCP, nadzorna ploča
- Format pravila kompresije — JSON format paketa pravila
- Jezični paketi za kompresiju — Caveman pravila specifična za pojedine jezike