🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 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 · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
සුදුසුකම් ලබන සන්දර්භයෙන් 15-95%ක් ස්වයංක්රීයව ඉතිරි කරගන්න. ඉක්මන් දළ විශ්ලේෂණයක් සඳහා, README සම්පීඩන කොටස බලන්න.
OmniRoute විසින් ඉහළ මට්ටමේ සැපයුම්කරුවන් වෙත ඉල්ලීම් ළඟා වීමට පෙර ක්රියාශීලීව ධාවනය වන මොඩියුලර් ප්රොම්ප්ට් සම්පීඩන නළ මාර්ගයක් ක්රියාත්මක කරයි. මෙයින් අදහස් වන්නේ ඔබේ ටෝකන ඉතිරිය විනිවිද පෙනෙන ලෙස සිදුවන බවයි — ඔබේ කාර්ය ප්රවාහයට කිසිදු වෙනසක් අවශ්ය නොවේ.
සේවාලාභී ඉල්ලීම
→ සම්පීඩන උපායමාර්ග තේරීම
→ Combo අභිබවා යාමක්ද? → Combo සැකසුම භාවිත කරන්න
→ ස්වයංක්රීය-ප්රේරක සීමාවද? → ස්වයංක්රීය ප්රකාරය භාවිත කරන්න
→ පෙරනිමි ප්රකාරයද? → ගෝලීය සැකසුම භාවිත කරන්න
→ අක්රියද? → සම්පීඩනය මඟහරින්න
→ තෝරාගත් සම්පීඩන ප්රකාරය
→ අක්රිය: සම්පීඩනයක් නැත
→ සැහැල්ලු: ආරක්ෂිත හිස්තැන්/ආකෘතිකරණ පිරිසිදු කිරීම (~15%)
→ සම්මත: Caveman-ශෛලියේ පිරවුම් වචන ඉවත් කිරීම (~30%)
→ ආක්රමණශීලී: ඉතිහාසය වියපත් කිරීම + සාරාංශකරණය (~50%)
→ අතිශය: හියුරිස්ටික් කප්පාදුව + කේත-කොටස් තුනී කිරීම (~75%)
→ RTK: විධාන-දැනුවත් ටර්මිනල්/මෙවලම්-ප්රතිදාන පෙරීම (ඉහළ මට්ටමේ 60-90% පරාසය)
→ ස්තරගත: අනුපිළිවෙළට සැකසූ බහු-එන්ජින් නළ මාර්ගය, සාමාන්යයෙන් RTK පසුව Caveman (සුදුසුකම් ලබන 78-95% පරාසය)
→ සම්පීඩිත ඉල්ලීම → සැපයුම්කරු
කිසිදු සම්පීඩනයක් යොදනු නොලැබේ. සියලුම පණිවිඩ වෙනස් නොවී හුවමාරු වේ.
ආරක්ෂිතම ප්රකාරය — අර්ථයට කිසිදු වෙනසක් නොකර, ආකෘතිකරණය පමණක් පිරිසිදු කරයි:
| ශිල්පීය ක්රමය | විස්තරය |
|---|---|
collapseWhitespace |
අඛණ්ඩ හිස් පේළි සහ පේළි අග හිස්තැන් ඒකාබද්ධ කරයි |
dedupSystemPrompt |
අනුපිටපත් පද්ධති පණිවිඩ ඉවත් කරයි |
compressToolResults |
විස්තීර්ණ මෙවලම්/ශ්රිත ප්රතිදාන සම්පීඩනය කරයි |
removeRedundantContent |
නැවත නැවත ඇති උපදෙස් ඉවත් කරයි |
replaceImageUrls |
base64 රූප දත්ත URI කෙටි කරයි |
වඩාත් සුදුසු: සැමවිටම සක්රිය භාවිතය, ආරක්ෂාව තීරණාත්මක වන කාර්ය ප්රවාහ.
Caveman වෙතින් ආභාසය ලබා ඇත — අර්ථය රැකගනිමින් පිරවුම් වචන සහ අනවශ්ය ලෙස දිගු වාක්ය ඛණ්ඩ ඉවත් කරයි:
- පිරවුම් වචන ඉවත් කරයි ("කරුණාකර", "මම හිතන්නේ", "මූලික වශයෙන්", "ඇත්ත වශයෙන්ම")
- අනවශ්ය ලෙස දිගු වාක්ය ඛණ්ඩ සංක්ෂිප්ත කරයි ("කිරීම සඳහා" → "කිරීමට", "ප්රතිඵලයක් ලෙස" → "නිසා")
- විනීත දෙගිඩියාව ඉවත් කරයි ("ඔබට අපහසු නැත්නම්...", "ඔබට හැකි නම්...")
- කේතකරණ ප්රොම්ප්ට් සඳහා සකස් කළ regex රීති 30කට වැඩි ගණනක්
වඩාත් සුදුසු: දෛනික කේතකරණ කාර්ය ප්රවාහ, පිරිවැය ගැන සැලකිලිමත් කණ්ඩායම්.
දිගු සැසි සඳහා බුද්ධිමත් ඉතිහාස කළමනාකරණය:
- පණිවිඩ වියපත් කිරීම — පැරණි පණිවිඩ ක්රමයෙන් වැඩි වශයෙන් සම්පීඩනය කරයි
- මෙවලම් ප්රතිඵල සාරාංශකරණය — දිගු මෙවලම් ප්රතිදාන සාරාංශවලින් ප්රතිස්ථාපනය කරයි
- ව්යුහාත්මක අඛණ්ඩතා ආරක්ෂක —
tool_use+tool_resultයුගල සංගතව පවතින බව සහතික කරයි - සන්දර්භ කවුළු පිළිබඳ අවබෝධය — එක් එක් මාදිලියේ ටෝකන සීමාවලට ගරු කරයි
වඩාත් සුදුසු: දීර්ඝ දෝෂහරණ සැසි, විශාල කේත පදනම්.
ටෝකන තීරණාත්මක වන අවස්ථා සඳහා උපරිම සම්පීඩනය:
- හියුරිස්ටික් කප්පාදුව — අදාළතා සීමාවට පහළ පණිවිඩ ඉවත් කරයි
- කේත කොටස් තුනී කිරීම — පුනරාවර්තන කේත උදාහරණ සම්පීඩනය කරයි
- ද්විමය සෙවුම් කප්පාදුව — සන්දර්භ කවුළුව සඳහා ප්රශස්ත කැපුම් ලක්ෂ්යය සොයයි
- ආක්රමණශීලී ප්රකාරයේ සියලුම විශේෂාංග ඇතුළත් වේ
වඩාත් සුදුසු: ඔබ නැවත නැවතත් සන්දර්භ සීමාවලට ළඟා වන විට.
RTK ප්රකාරය කේතකරණ නියෝජිත සැසිවල දිස්වන විස්තීර්ණ මෙවලම් ප්රතිදාන සඳහා ප්රශස්ත කර ඇත:
git status,git diff,git log, පරීක්ෂණ ධාවක, TypeScript/Vite/Webpack ගොඩනැගීම්, ESLint/Biome/Prettier, npm විගණන/ස්ථාපන, Docker ලොග්, යටිතල පහසුකම් ප්රතිදාන සහ සාමාන්ය shell ප්රතිදාන වැනි විධාන/ප්රතිදාන පන්ති හඳුනාගනීopen-sse/services/compression/engines/rtk/filters/වෙතින් JSON පෙරහන් කට්ටල යොදයි- පේළිගත-පරීක්ෂණ වලංගුකරණය සහ ව්යාපෘති ගොනු සඳහා විශ්වාස-පාලනය සමඟින්, ව්යාපෘති හෝ ගෝලීය
filters.tomlගොනුවලින් RTK TOML schema v1 පෙරහන් ආයාත කරයි - පේළිගත සත්යාපන සාම්පල සමඟ ඇතුළත් පෙරහන් 49ක් සපයයි
- ANSI පාලන අනුක්රම, ප්රගති තීරු, පුනරාවර්තන පේළි සහ ක්රියාමාර්ග ගත නොහැකි අනවශ්ය දත්ත ඉවත් කරයි
- අසමත්වීම්, දෝෂ, අනතුරු ඇඟවීම්, වෙනස් කළ ගොනු, සාරාංශ සහ දිගු ප්රතිදානයේ අවසාන කොටස රැකගනී
- විශ්වාස-පාලිත ව්යාපෘති පෙරහන්, ගෝලීය පෙරහන් සහ විකල්ප සංවේදී තොරතුරු ඉවත් කළ අමු-ප්රතිදාන ප්රතිසාධනය සඳහා සහාය දක්වයි
වඩාත් සුදුසු: shell, build, test, git, grep සහ ගොනු-ප්රතිදාන පිටපත් සහිත නියෝජිත සැසි.
ස්තරගත ප්රකාරය සම්පීඩන එන්ජින් කිහිපයක් නියත අනුපිළිවෙළකට ධාවනය කරයි. පෙරනිමි නළ මාර්ගය වන්නේ:
RTK -> Cavemanඑම අනුපිළිවෙළ පළමුව ටර්මිනල්/මෙවලම් ප්රතිදානය සංක්ෂිප්තව තබා, ඉන් පසුව ඉතිරි ස්වාභාවික-භාෂා ප්රොම්ප්ට් වෙත Caveman අර්ථාන්විත සංක්ෂිප්තකරණය යොදයි. ස්තරගත නළ මාර්ග ගෝලීයව හෝ මාර්ගගත කිරීමේ combo වෙත පවරන ලද සම්පීඩන combo හරහා වින්යාස කළ හැකිය.
වඩාත් සුදුසු: විශාල මෙවලම් ලොග් සමඟ මානව උපදෙස් හෝ සහායක සාරාංශ අඩංගු මිශ්ර සන්දර්භ.
OmniRoute සම්පීඩන ඉතුරුම් මූලාශ්ර දෙකක් මත පදනම්ව ලේඛනගත කරයි: upstream ව්යාපෘති මිණුම් සලකුණු සහ OmniRoute හිම engine සංයෝජනය.
| මූලාශ්රය | මෙහි භාවිත කරන Upstream README අගය |
|---|---|
| Caveman | ප්රතිදාන tokens ~75%ක් අඩුය, මිණුම් සලකුණු සාමාන්ය ප්රතිදාන ඉතුරුම 65%කි, පරාසය 22-87%කි, සහ ආදාන සම්පීඩන මෙවලම ~46%කි |
| RTK | විධාන-ප්රතිදාන ඉතුරුම් 60-90%කි; නියැදි සැසියක tokens ~118,000 -> ~23,900, හෝ 79.7%ක ඉතුරුමක් (~80%) |
එකිනෙක අතිච්ඡාදනය වන මෙවලම්/සන්දර්භ payload සඳහා, පෙරනිමි OmniRoute සංයෝජනය engines එක මත එක යොදයි:
RTK -> Cavemanඒකාබද්ධ ඉතුරුම් ආකලනීය නොව, ගුණාකාර වේ:
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%RTK සහ Caveman යන දෙකටම එකම ආදාන/සන්දර්භ payload එක අඩු කළ හැකි විට එම 78-95% අගය අදාළ වේ.
Caveman ප්රතිචාර ප්රතිදාන මාදිලිය වෙනම එකකි: එය සක්රීය කළ විට, Caveman හිම ප්රතිදාන ඉතුරුම් (සාමාන්යය 65%,
ප්රධාන අගය ~75%, පරාසය 22-87%) භාවිත කරන්න. මුළු බිල්පත් ඉතුරුම් ඔබගේ prompt/ප්රතිදාන මිශ්රණය මත රඳා පවතී.
15-95% ප්රධාන පරාසය සැබෑ එකක් වුවත්, එය අදාළ වන්නේ අතිරික්ත හෝ අනවශ්ය ලෙස දීර්ඝ අන්තර්ගතයට පමණි — නැවත නැවත
එන දෝෂ පේළි, එකම අනතුරු ඇඟවීම අධික ලෙස නැවත දක්වන build log එකක්, ප්රමාණය ඉක්මවූ grep/ගොනු-කියවීම් dump එකක්.
එයින් සෑම ඉල්ලීමක්ම එතරම් ප්රමාණයකින් ඉතිරි කරන බව අදහස් නොවේ.
ප්රායෝගිකව සත්යාපනය කර ඇත (tests/unit/compression/stacked-compression-tool-result-savings.test.ts): සමාන
දෝෂ පේළි 300ක් අඩංගු Anthropic-හැඩැති tool_result block එකකට එරෙහිව ක්රියාත්මක කළ
stacked (RTK + Caveman) ධාවනයක් 95.93% token ඉතුරුම් / 96.26% අක්ෂර ඉතුරුම් ලබා දුන්නේය — එය ප්රචාරණය කළ
පරාසය තුළම පිහිටයි. නමුත් සාමාන්ය, අතිරික්ත නොවන මෙවලම් ප්රතිදානයකට (පිරිසිදු grep ගැළපුම් ලැයිස්තුවක්,
කෙටි ගොනු කියවීමක්, සාමාන්ය සංවාද පෙළක්) එරෙහිව එම pipeline එකම ධාවනය කළ විට නිවැරදිව ශුන්යයට ආසන්න ඉතුරුම් ලැබේ, මන්ද
ඉවත් කිරීමට පුනරාවර්තන කිසිවක් නොමැති අතර code blocks, URLs, headings, versions, හෝ ALL-CAPS නියත identifiers
මකා දැමීමට හෝ වෙනස් කිරීමට ඉඩ ඇති නැවත ලිවීමක් නිකුත් කිරීම validateCompression() (validation.ts) විසින් ප්රතික්ෂේප කරන බැවිනි.
මෙය අපේක්ෂිත, ආරක්ෂිත හැසිරීමක් මිස bug එකක් නොවේ: බොහෝ දුරට පිරිසිදු ගොනු කියවන/grep කරන coding සැසියක්, සම්පීඩනය සම්පූර්ණයෙන් සක්රීය කර තිබුණද, මධ්යස්ථ මුළු ඉතුරුමක් පෙන්වනු ඇත; එහෙත් අසාර්ථක වන loop එකකට හෝ අධික ප්රතිදානයක් ලබා දෙන linter එකකට මුහුණ දෙන සැසියක් එම traffic සඳහා සම්පූර්ණ 78-95% පරාසය දකිනු ඇත. එක් සැසියක අඩු සමස්ත ඉතුරුම් ප්රතිශතය, සම්පීඩනය වැරදි ලෙස වින්යාස කර ඇති බවට සාක්ෂියක් ලෙස භාවිත නොකරන්න — පළමුව යටින් පවතින මෙවලම් ප්රතිදානය සැබවින්ම අතිරික්තදැයි පරීක්ෂා කරන්න.
සම්පීඩනය නොමැතිව: 47K tokens LLM වෙත යවා ඇත
Lite සමඟ: 40K tokens යවා ඇත (15% ඉතිරියි — ආරක්ෂිතයි, සැමවිටම සක්රීයයි)
Standard සමඟ: 33K tokens යවා ඇත (30% ඉතිරියි — caveman-speak නීති)
Aggressive සමඟ: 24K tokens යවා ඇත (50% ඉතිරියි — වයස්ගත කිරීම + සාරාංශකරණය)
Ultra සමඟ: 12K tokens යවා ඇත (75% ඉතිරියි — heuristic කප්පාදුව)
RTK සමඟ: 19K-5K tokens යවා ඇත (විධාන/මෙවලම් ප්රතිදානයෙන් 60-90% ඉතිරියි)
Stacked සමඟ: 10K-2.5K tokens යවා ඇත (සුදුසු RTK+Caveman පරාසයෙන් 78-95% ඉතිරියි)
Dashboard → Context & Cache වෙත යන්න:
- Caveman — මාදිලි තේරීම, භාෂා පැකේජ, පෙරදසුන, සහ ගෝලීය පෙරනිමි
- RTK — විධාන-පෙරහන් පෙරදසුන, RTK ආරක්ෂක සැකසුම්, සහ පෙරහන් නාමාවලිය
- Compression Combos — රවුටින් කොම්බෝ වලට පවරා ඇති නම් කරන ලද එන්ජින් පයිප්ලයින්
- Auto-Trigger Threshold — ටෝකන් ගණන සීමාව ඉක්මවා ගිය විට ස්වයංක්රීයව සම්පීඩනය ක්රියාත්මක කරන්න
Dashboard → Context & Cache → Compression Combos හි, රවුටින් කොම්බෝ එකකට සම්පීඩන කොම්බෝ එකක් පවරන්න:
Combo: "free-tier-fallback"
Compression Combo: "coding-agent-stack"
Pipeline: RTK -> Caveman
Targets:
1. if/kimi-k2.7-code
2. if/qwen3.8-max-previewමෙය ඔබට නොමිලේ/කේතීකරණ සපයන්නන් මත ස්ටැක් කරන ලද සම්පීඩනය භාවිතා කිරීමට ඉඩ සලසයි, ගෙවන ලද දායකත්වයන් මත ලයිට් මාදිලිය තබා ගනිමින්.
මෙම "Per-Combo Override" පැවරුම routing-combo compression mode override (Default/Off/Lite/Standard/Aggressive/Ultra) ට වඩා වෙනස් පාලනයකි — එම override එක නම් කරන ලද සම්පීඩන-කොම්බෝ පයිප්ලයින් එකක් තෝරා නොගනී; එය resolveCompressionPlan මගින් විමසන compressionMode ක්ෂේත්රය පමණක් සකසයි. එය කොම්බෝ කාඩ්පතේ (Dashboard → Combos) හෝ, #6760 සිට, Dashboard → Context & Cache → Compression Combos හි "Assign to routing" ලැයිස්තුවේ එක් එක් රවුටින් කොම්බෝ එකකට, ඉහත ලේඛනගත කර ඇති පයිප්ලයින්-පැවරුම් චෙක්බොක්ස් එකට යාබදව සැකසිය හැක. පෘෂ්ඨ දෙකම එකම PUT /api/combos/{id} අන්ත ලක්ෂ්යය හරහා පවතී.
තනි ඉල්ලීමක් සඳහා සම්පීඩන සැලැස්ම අධිලේඛනය කිරීමට x-omniroute-compression ඉල්ලීම් ශීර්ෂය යවන්න. එයට ඉහළම ප්රමුඛතාවය ඇත — එය රවුටින්-කොම්බෝ අධිලේඛනය, සක්රීය පැතිකඩ, ස්වයංක්රීය-ප්රේරකය, සහ පැනලයේ පෙරනිමිය පරාජය කරයි. නොදන්නා අගයන් නොසලකා හරිනු ලැබේ (ඉල්ලීම කිසි විටෙක ප්රතික්ෂේප නොවේ) සහ ගෝලීය ප්රධාන ස්විචය තවමත් සියල්ල පාලනය කරයි: සම්පීඩනය ගෝලීයව අක්රිය වූ විට, ශීර්ෂයට එය ක්රියාත්මක කළ නොහැක. අගයන්:
| අගය | බලපෑම |
|---|---|
off |
මෙම ඉල්ලීම සඳහා සම්පීඩනයක් නැත. |
default |
පැනලයෙන් ලබාගත් පෙරනිමි පැතිකඩ (සක්රීය පැතිකඩ නොසලකා හරියි). හානිකර එන්ජින් අක්රියව පවතී. |
safe |
ශීර්ෂය අතහැර දැමීම හා සමානයි: අනුපිටපත් ඉවත් කිරීම සහ හිස්තැන් නැවීම පමණි. |
allow-lossy |
මෙම ඉල්ලීමේ ක්රියාකරු සැලැස්ම, සාරාංශ, අදාළතා පෙරහන්, සහ විලාසය නැවත ලිවීම් ඇතුළුව තබා ගන්න. |
engine:<id> |
සක්රිය කළ විට තනි එන්ජිමක්, උදා: engine:rtk. මෙය එම එන්ජිම සඳහා එක්-ඉල්ලීමකට තෝරා ගැනීමයි. |
<combo> |
නම් කරන ලද කොම්බෝ එකක්, මුලින් නම අනුව (අකුරු සංවේදී නොවන), පසුව id අනුව ගැලපේ. |
allow-lossy, engine:<id>, හෝ නම් කරන ලද කොම්බෝ එකක් නොමැතිව, හානිකර එන්ජින් යොදනු නොලැබේ. සම්පීඩනය ක්රියාත්මක වන විට ඉල්ලීමට තවමත් සැසි අනුපිටපත් ඉවත් කිරීම සහ හිස්තැන් නැවීම ලැබේ.
යොදන ලද සැලැස්ම X-OmniRoute-Compression: <mode>; source=<source> ප්රතිචාර ශීර්ෂයේ නැවත දෝංකාර දෙනු ලැබේ, එහිදී <source> යනු request-header, routing-override, active-profile, auto-trigger, default, හෝ off වලින් එකකි.
# සම්පීඩන සැකසුම් ලබා ගන්න
curl http://localhost:20128/api/settings/compression
# සම්පීඩන සැකසුම් යාවත්කාලීන කරන්න
curl -X PUT http://localhost:20128/api/settings/compression \
-H "Content-Type: application/json" \
-d '{"defaultMode":"stacked","autoTriggerMode":"stacked","autoTriggerTokens":32000}'
# නිශ්චිත RTK/stacked payload එකක් පෙරදසුන් කරන්න
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"}]}'
# RTK පෙරහන් පැකේජ ලැයිස්තුගත කරන්න
curl http://localhost:20128/api/context/rtk/filters
# විකල්ප විධාන මෙටාඩේටා සමඟ RTK සෘජුවම පරීක්ෂා කරන්න
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"}'සම්පීඩන එන්ජිම සැමවිටම පහත දෑ සංරක්ෂණය කරයි:
- ✅ කේත කොටස් (වැටකින් වෙන් කළ සහ පේළිය තුළ ඇති)
- ✅ URL සහ ගොනු මාර්ග
- ✅ JSON ව්යුහ සහ ව්යුහගත දත්ත
- ✅ හඳුනාගැනීම් සහ ආරක්ෂිත තාක්ෂණික ටෝකන
- ✅ ගණිතමය ප්රකාශන
- ✅ මෙවලම්/ශ්රිත ඇමතුම් නිර්වචන
- ✅ පද්ධති ප්රේරක (lite ප්රකාරයේදී)
කිසිවක් ස්ථිරව ගබඩා කිරීමට පෙර, RTK අමු-ප්රතිදාන ප්රතිසාධනය පොදු API යතුරු, bearer ටෝකන, Slack ටෝකන, AWS ප්රවේශ යතුරු, මුරපද, ටෝකන සහ රහස් සංස්කරණය කර සඟවයි.
සෑම සම්පීඩිත ඉල්ලීමකම සේවාදායක ලොග් තුළ සංඛ්යාලේඛන ඇතුළත් වේ:
{
"originalTokens": 47200,
"compressedTokens": 40120,
"savingsPercent": 15.0,
"techniquesUsed": ["collapseWhitespace", "dedupSystemPrompt"],
"mode": "lite",
"engine": "caveman",
"compressionComboId": "coding-agent-stack",
"durationMs": 0.8,
"rtkRawOutputPointers": []
}| අදියර | ක්රම | තත්ත්වය |
|---|---|---|
| අදියර 1 | Off, Lite | ✅ නිකුත් කරන ලදී |
| අදියර 2 | Standard, Aggressive, Ultra | ✅ නිකුත් කරන ලදී |
| අදියර 3 | RTK, Stacked, Compression Combos | ✅ නිකුත් කරන ලදී |
| අදියර 4 | Output Styles, SLM-tier Ultra, eval harness | ✅ නිකුත් කරන ලදී |
| අදියර 4C | Adaptive context-budget ("dial") — compute engine + API (contextBudget on PUT /api/settings/compression) + dashboard mode/policy controls |
✅ නිකුත් කරන ලදී |
Standard ප්රකාරයේ සම්පීඩන රීති, JuliusBrussee විසින් නිර්මාණය කළ Caveman (⭐ 51K+) — වෛරල් වූ "ටෝකන කිහිපයකින් කාර්යය කළ හැකි විට ටෝකන බොහොමයක් භාවිත කරන්නේ ඇයි" ව්යාපෘතියෙන් ආභාෂය ලබා ඇත. Caveman විසින් ~75% කින් අඩු ප්රතිදාන ටෝකන, මිණුම් ලකුණු හරහා සාමාන්යයෙන් 65% ප්රතිදාන ඉතිරියක්, 22-87% ප්රතිදාන පරාසයක් සහ ~46% ආදාන-සම්පීඩන මෙවලමක් වාර්තා කරයි.
RTK ප්රකාරය, RTK AI විසින් නිර්මාණය කළ RTK - Rust Token Killer — ටර්මිනල්, build, test, git සහ මෙවලම්-ප්රතිදාන පෙරීම සඳහා වන ඉහළ කාර්යසාධන විධාන-ප්රතිදාන සම්පීඩන ව්යාපෘතියෙන් ආභාෂය ලබා ඇත. RTK විසින් 60-90% ඉතිරියක් වාර්තා කරන අතර, එහි README නියැදි සැසිය ~80% ක් ඉතිරි වූ බව පෙන්වයි.
සම්මත ආකාර 7ට අමතරව, සන්දර්භය මත පදනම්ව ස්වයංක්රීයව ක්රියා කරන උසස් සම්පීඩන පද්ධති කිහිපයක් OmniRoute හි ඇතුළත් වේ.
සමහර සැපයුම්කරුවන් (prompt caching සහිත Anthropic වැනි) prompt caching සඳහා සහය දක්වන අතර, එමඟින් පිරිවැය සහ ප්රමාදය අඩු කිරීමට prompt එකේ කොටස් හැඹිලිගත කළ හැක. හැඹිලිගත කිරීම සක්රීය කර ඇති විට, ආක්රමණශීලී සම්පීඩනය හැඹිලිගත කළ tokens වෙනස් කර හැඹිලිය අවලංගු කරන බැවින්, එය සැබවින්ම කාර්යසාධනයට හානි කළ හැක.
cachingAware.ts මොඩියුලය මෙය විසඳන්නේ හැඹිලිගත කිරීමේ සන්දර්භය හඳුනාගෙන, ඒ අනුව සම්පීඩන උපායමාර්ගය සකස් කිරීමෙනි.
- හැඹිලිගත කිරීමේ සන්දර්භය හඳුනා ගැනීම —
cache_controlසලකුණු සඳහා ඉල්ලීමේ body එක පරිලෝකනය කරයි - හැඹිලිගත කිරීමේ සැපයුම්කරුවන් හඳුනා ගැනීම — ඉලක්කගත සැපයුම්කරු හැඹිලිගත කිරීම සඳහා සහය දක්වන්නේදැයි පරීක්ෂා කරයි
- උපායමාර්ගය සකස් කිරීම — හැඹිලිගත කිරීමේ සැපයුම්කරුවන් සඳහා
aggressive/ultra,standardවෙත පහත හෙළයි - system prompt එක මඟ හැරීම — system prompts සාමාන්යයෙන් හැඹිලිගත කරන බැවින් ඒවා සම්පීඩනය නොකරයි
- නියත ප්රතිදානයක් ලබා දෙන පරිවර්තන භාවිත කිරීම — අඛණ්ඩව එකම ප්රතිදානය ලබා දෙන පරිවර්තන පමණක් භාවිත කරයි
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" }, // ← හැඹිලි සලකුණ
};
const ctx = detectCachingContext(body, { provider: "anthropic" });
// → { hasCacheControl: true, provider: "anthropic", isCachingProvider: true }
const strategy = getCacheAwareStrategy("aggressive", ctx);
// → { strategy: "standard", skipSystemPrompt: true, deterministicOnly: true }හැඹිලි-සංවේදී සම්පීඩනය සැමවිටම ක්රියාත්මකයි — වින්යාස කිරීමක් අවශ්ය නොවේ. එය ක්රියාත්මක වන්නේ පහත අවස්ථාවලදී පමණි:
- ඉල්ලීමේ
cache_controlසලකුණු ඇති විට - ඉලක්කගත සැපයුම්කරු prompt caching සඳහා සහය දක්වන විට (Anthropic, OpenAI, ආදිය)
දිගු සංවාද තුළ පණිවිඩ වාර රැසක් එක්රැස් වන නමුත්, පැරණි වාරවල අදාළත්වය ක්රමයෙන් අඩු වේ. progressiveAging.ts මොඩියුලය වාර දුර අනුව පණිවිඩවල විස්තර මට්ටම අඩු කරයි:
- මෑත වාර (0-3): වෙනස් නොකර තබා ගනී (සම්පූර්ණ විස්තර)
- මධ්යම වාර (4-8): සැහැල්ලු සම්පීඩනය (හිස් ඉඩ, හැඩතල ගැන්වීම පිරිසිදු කිරීම)
- පැරණි වාර (9+): Caveman සම්පීඩනය (අනවශ්ය පිරවුම් ඉවත් කිරීම, සාරාංශකරණය)
- ඉතා පැරණි වාර (20+): දැඩිව සාරාංශ කරයි හෝ ඉවත් කරයි
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ක් ...
];
const { messages: aged, saved } = applyAging(messages, {
verbatim: 3, // පළමු වාර 3: වෙනස් නොකර
light: 8, // වාර 4-8: සැහැල්ලු සම්පීඩනය
moderate: 20, // වාර 9-20: caveman සම්පීඩනය
// වාර 21+: දැඩි සාරාංශකරණය
});
// saved = ඉතිරි කළ tokens ගණනaggressive සහ ultra ආකාර සඳහා ප්රගතිශීලී වයස්ගත කිරීම සැමවිටම ක්රියාත්මකයි. එය විශේෂයෙන් ඵලදායී වන්නේ:
- දිගුකාලීන කේතකරණ සැසි
- දින කිහිපයක් පුරා දිවෙන සංවාද
- බොහෝ tool calls සහිත agentic කාර්යප්රවාහ
outputMode.ts මොඩියුලය, ආකෘතිය විසින්ම සම්පීඩිත සහ ඉතා කෙටි ප්රතිදානයක් ("caveman" ශෛලියක්) ජනනය කිරීමට system prompt උපදෙස් ඇතුළත් කරයි.
ආදානය සම්පීඩනය කරනවා වෙනුවට, මෙම ආකාරය මෙවැනි system prompt එකක් එක් කරයි:
"අවම වචනවලින් පිළිතුරු දෙන්න. ආචාරශීලී හැඳින්වීම් මඟ හරින්න. කෙටි වාක්ය භාවිත කරන්න."
මෙය විශේෂයෙන් හොඳින් ක්රියා කරන්නේ:
- කේත ජනනය (වඩා කෙටි ප්රතිදානය = අඩු tokens)
- ඉක්මන් ප්රශ්න සහ පිළිතුරු (විස්තරාත්මක පැහැදිලි කිරීම් අවශ්ය නොවේ)
- කාණ්ඩ සැකසීම (කාර්යප්රමාණය උපරිම කිරීම)
Caveman ප්රතිදාන ආකාරය අභිමතයෙන් සක්රීය කළ යුතුයි — combo config හරහා එය සකසන්න:
{
"strategy": "auto",
"config": {
"auto": {
"outputMode": "caveman"
}
}
}ඉහත Caveman ප්රතිදාන ආකාරය පැරණි තනි-ශෛලී මාර්ගයයි. Phase 4 මඟින් එය එකට සංයෝජනය කළ හැකි ප්රතිදාන ශෛලීන්ගේ නාමාවලියක් ලෙස සාමාන්යකරණය කරන ලදී: open-sse/services/compression/outputStyles/catalog.ts හි OUTPUT_STYLE_CATALOG. සෑම ශෛලියක්ම ආකෘතිය විසින්ම අඩු පිරිවැයකින් යුතු ප්රතිදානයක් නිපදවීමට සලස්වන system-prompt උපදෙසකි; ශෛලීන් එකට සක්රීය කළ හැකි අතර ඒවා නාමාවලි අනුපිළිවෙළට ඇතුළත් කෙරේ.
| ශෛලිය | id |
එය කරන දේ | උපදෙස් භාෂා |
|---|---|---|---|
| සංක්ෂිප්ත ගද්යය | terse-prose |
පිරවුම් වචන/නිපාත/අවිනිශ්චිත ප්රකාශ ඉවත් කරයි; තාක්ෂණික අන්තර්ගතය නිවැරදිව තබා ගනී. පැරණි caveman ප්රතිදාන ප්රකාරයේ ඇති පෙළම වේ (යොමු කර ඇත, නැවත ටයිප් කර නැත). | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| අඩු කේත | less-code |
YAGNI පියගැටපෙළ: ක්රියාකරන කුඩාම වෙනස, ඉල්ලා නොමැති වියුක්තකරණ නොමැත. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| පෝනිටේල් (කම්මැලි ජ්යෙෂ්ඨ සංවර්ධක) | ponytail |
"හොඳම කේතය වන්නේ කිසිදා ලියා නොමැති කේතයයි": නැවත භාවිතය > නැවත ලිවීම, මූල හේතුව > රෝග ලක්ෂණය, ක්රියාකරන කෙටිම diff එක. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| මට ADHD ඇත (ක්රියාව පළමුව) | i-have-adhd |
ක්රියාව පළමුව (ගද්යයට පෙර විධානය/මාර්ගය/snippet එක), අංකිත සීමිත පියවර, එක් නිශ්චිත ඊළඟ පියවරක්, පෙරවදන්/නැවත සාරාංශ/අවසන් ප්රකාශ නොමැත. ayghri/i-have-adhd (MIT) වෙතින් අනුවර්තනය කරන ලදී. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi |
| සංක්ෂිප්ත CJK (文言) | terse-cjk |
සම්භාව්ය-චීන අතිශය සංක්ෂිප්ත ශෛලිය. | zh (locale මඟින් සීමා කර ඇත: නිරාකරණය කළ භාෂාව zh වූ විට පමණක් පිරිනමයි) |
සෑම ශෛලියක්ම තීව්රතා මට්ටම් තුනකින් — lite, full, ultra — සපයනු ලබන අතර සෑම මට්ටමක්ම
පොදු සීමා වගන්තියෙන් අවසන් වේ; එය කේත කොටස්, ගොනු මාර්ග, විධාන,
දෝෂ තන්තු, URLs සහ හඳුන්වනයන් වෙනස් නොකර තබයි.
applyOutputStyles() (open-sse/services/compression/outputStyles/apply.ts) තේරීම
නාමාවලියට සාපේක්ෂව නිරාකරණය කරයි (නොදන්නා ids සහ locale නොගැළපෙන ශෛලි
ඉවත් කරනු ලැබේ; කිසිවිටෙක දෝෂයක් නොවේ), තෝරාගත් උපදෙස් නාමාවලි අනුපිළිවෙළට
සම්බන්ධ කරයි, සීමා වගන්තිය එක් වරක් එකතු කරයි, සහ තනි idempotency
සලකුණකින් ([OmniRoute Output Styles]) කොටස ආරම්භ කරයි; එබැවින් නැවත යෙදීමෙන් කිසිවක් සිදු නොවේ. නිරාකරණය කළ
භාෂාවට (පහත භාෂා තේරීම බලන්න) පරිවර්තනයක් ඇති විට, ඉංග්රීසි උපදෙස වෙනුවට
දේශීයකරණය කළ උපදෙස ඇතුළත් කරනු ලැබේ.
messages සහිත body එකක, අන්තර්ගත මඟහැරීමක් (shouldBypassCavemanOutputMode() තුළ
open-sse/services/compression/outputMode.ts) අවසන් පණිවිඩ තුන පරීක්ෂා කර, ඒවා එහි ආරක්ෂක,
ආපසු හැරවිය නොහැකි ක්රියා, පැහැදිලි කිරීමේ, හෝ අනුපිළිවෙළට සංවේදී මූලපදවලට ගැළපෙන විට
මුළු turn එක සඳහාම ශෛලි මඟහරියි. Dashboard එකේ
ස්වයංක්රීය පැහැදිලිත්ව මඟහැරීමේ toggle එක (cavemanOutputMode.autoClarity) සකසා ඇති අගය කුමක් වුවත් මඟහැරීම ක්රියාත්මක වේ.
මඟහැරීම turn එකට ඉදිරියට යාමට ඉඩ දෙන විට, placeSystemInstruction() (එම ගොනුවේම), එය
කිසිවිටෙක නව messages[0] එකක් නොසාදන අතර, සොයාගන්නා පහත පළමු ස්ථානයේ
කොටස තබයි:
- string අන්තර්ගතයක් සහිත ආරම්භක system පණිවිඩයක්: එහි පෙළට පසුව කොටස එකතු කරයි.
- ඉහළ මට්ටමේ
systemක්ෂේත්රය: string එකක පෙළට පසුව කොටස එකතු කරයි, නැතහොත් content-block array එකකට නව පෙළ කොටසක් ලෙස එක් කරයි. - පසුව හමුවන, string අන්තර්ගතයක් සහිත පළමු system පණිවිඩය: එහි පෙළට පසුව කොටස එකතු කරයි.
- ඉහත කිසිවක් නොමැති නම්: කොටස
messagesඅවසානයේ නව system පණිවිඩයකට යයි.
messages නොමැති body එකක, කොටස string instructions ක්ෂේත්රයකට එකතු කරනු ලැබේ,
නැතහොත් body එකේ input (string එකක් හෝ array එකක්) ඇති විට එය instructions බවට පත් වේ. instructions හෝ input කිසිවක්
නොමැති body එකක් no_messages ලෙස මඟහරිනු ලැබේ.
Dashboard එකේ: සන්දර්භය → සැකසුම් → සම්පීඩනය — සෑම ශෛලියකටම on/off toggle එකක් සහ මට්ටම් තේරීම්කාරකයක් සහිත එක් පේළියක් ඇත. ක්රමලේඛනිකව, සම්පීඩන config එක තේරීම මෙසේ ගබඩා කරයි:
{
"outputStyles": [
{ "id": "i-have-adhd", "level": "full" },
{ "id": "less-code", "level": "lite" }
]
}පසුගාමී අනුකූලතාව: පැරණි outputMode: "caveman" සංයුක්ත සැකසුම තවමත් ක්රියාකරන අතර
terse-prose වෙත සිතියම්ගත වේ; සෑම පැරණි භාෂාවකම එය පැරණි ඇතුළත් කිරීමට byte මට්ටමින් සමාන වේ.
භාෂා තේරීම: languageConfig.enabled සක්රියව ඇති විට, autoDetect නවතම
පරිශීලක පණිවිඩයේ භාෂාව තෝරා ගනී (input engines භාවිත කරන detector එකම);
autoDetect අක්රිය කිරීමෙන් defaultLanguage ස්ථාවර කරයි. අක්රියයි → ඉංග්රීසි.
ශෛලිය × භාෂාව matrix එක
tests/unit/compression/output-styles-i18n-matrix.test.ts මඟින් ස්ථාවර කර ඇත: අවම වශයෙන් pt-BR පරිවර්තනයක් (හෝ පැහැදිලිව හඹායන ව්යතිරේකයක්) නොමැතිව නව ශෛලියක් නිකුත් කළ නොහැකි අතර,
පවතින ශෛලියකට නිහඬව locale එකක් අහිමි කළ නොහැක. ශෛලියක් එක් කිරීමට,
EXTENDING_COMPRESSION.md බලන්න.
toolResultCompressor.ts module එක මෙවලම් ප්රතිඵල (function calls, agent outputs, search results, ආදිය) සඳහා
විශේෂිත සම්පීඩන උපායමාර්ග 5ක් සපයයි:
- සෙවුම් ප්රතිඵල සම්පීඩනය — අතිරික්ත ප්රතිඵල ඉවත් කරයි, ඉහළම-N තබා ගනී
- ගොනු කියවීමේ සම්පීඩනය — විශාල ගොනු කප්පාදු කරයි, headers/imports සුරකියි
- කේත ක්රියාත්මක කිරීමේ සම්පීඩනය — අත්යවශ්ය stdout/stderr පමණක් තබා ගනී
- Database query සම්පීඩනය — පේළි සීමා කරයි, විස්තරාත්මක metadata ඉවත් කරයි
- API response සම්පීඩනය — null ක්ෂේත්ර ඉවත් කරයි, arrays සංක්ෂිප්ත කරයි
මෙවලම් ඇමතුම් ඇති විට මෙවලම් ප්රතිඵල සම්පීඩනය සැමවිටම සක්රියයි. කිසිදු වින්යාස කිරීමක් අවශ්ය නොවේ.
ස්තරගත මාදිලිය එන්ජින් කිහිපයක් අනුක්රමිකව ධාවනය කරයි — සාමාන්යයෙන් පළමුව RTK (මෙවලම් ප්රතිදානයෙන් 60-90%ක ඉතිරියක්), ඉන්පසු Caveman (ඉතිරි පෙළෙන් අමතර 30%ක ඉතිරියක්). මෙය සමස්තයක් ලෙස 78-95%ක ඉතිරියක් ලබා දෙයි.
ආදානය (ටෝකන 1000)
→ RTK (විධාන පිළිබඳ දැනුවත් පෙරහන) → ටෝකන 200
→ Caveman (පිරවුම් පෙළ ඉවත් කිරීම) → ටෝකන 140
→ ප්රතිදානය (ටෝකන 140, 86%ක ඉතිරියක්)
ස්තරගත මාදිලිය භාවිත කරන්න:
- මෙවලම් බහුල කාර්ය ප්රවාහ සඳහා (ස්වයංක්රීය නියෝජිත කේතකරණය, පර්යේෂණ)
- පිරිවැයට සංවේදී කාණ්ඩ සැකසීම සඳහා
- ඔබට උපරිම ටෝකන ඉතිරියක් අවශ්ය විට
සංයෝජනය හරහා වින්යාස කරන්න:
{
"strategy": "auto",
"config": {
"auto": {
"modePack": "stacked"
}
}
}විවිධ භාවිත අවස්ථා සඳහා හැසිරීම සියුම්ව සකස් කිරීමට, ගෝලීය සම්පීඩන ප්රකාරය එක් එක් combo සඳහා අභිබවා යා හැක:
{
"id": "coding-combo",
"strategy": "priority",
"config": {
"auto": {
"weights": { "taskFit": 0.5 },
"modePack": "quality-first"
}
},
"compressionOverride": {
"mode": "aggressive",
"stackedPipelines": ["rtk", "caveman"],
"preserveToolDefinitions": true
}
}මෙය පහත අවස්ථා සඳහා ප්රයෝජනවත් වේ:
- කේතකරණ combos: දිගු සැසි සඳහා
aggressiveප්රකාරය භාවිත කරන්න - ඉක්මන් ප්රශ්නෝත්තර combos: වේගවත් ප්රතිචාර සඳහා
liteප්රකාරය භාවිත කරන්න - මෙවලම් බහුල combos: උපරිම ඉතිරිකිරීම් සඳහා
stackedප්රකාරය භාවිත කරන්න - නිෂ්පාදන combos: හැඹිලිගත කිරීමේ සේවා සපයන්නන් සඳහා
cache-awareප්රකාරය භාවිත කරන්න
- පරිසර වින්යාසය — සම්පීඩන පරිසර විචල්ය
- නිර්මාණ ශිල්ප මාර්ගෝපදේශය — සම්පීඩන නලමාර්ගයේ අභ්යන්තර ක්රියාකාරීත්වය
- පරිශීලක මාර්ගෝපදේශය — සම්පීඩනය සමඟ ආරම්භ කිරීම
- RTK සම්පීඩනය — RTK පෙරහන්, විශ්වාස ආකෘතිය, සත්යාපන ද්වාරය සහ අමු ප්රතිදාන ප්රතිසාධනය
- සම්පීඩන එන්ජින් — Caveman, RTK, stacked, APIs, MCP සහ උපකරණ පුවරුව
- සම්පීඩන රීති ආකෘතිය — JSON රීති ඇසුරුම් ආකෘතිය
- සම්පීඩන භාෂා ඇසුරුම් — භාෂාවට විශේෂිත Caveman රීති