# ๐Ÿ—œ๏ธ Prompt Compression Guide โ€” OmniRoute (เดฎเดฒเดฏเดพเดณเด‚) ๐ŸŒ **Languages:** ๐Ÿ‡บ๐Ÿ‡ธ [English](../../../../compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ช๐Ÿ‡น [am](../../../am/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ธ๐Ÿ‡ฆ [ar](../../../ar/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฆ๐Ÿ‡ฟ [az](../../../az/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ง๐Ÿ‡ฌ [bg](../../../bg/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ง๐Ÿ‡ฉ [bn](../../../bn/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ง๐Ÿ‡ฆ [bs](../../../bs/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡จ๐Ÿ‡ฟ [cs](../../../cs/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฉ๐Ÿ‡ฐ [da](../../../da/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฉ๐Ÿ‡ช [de](../../../de/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฌ๐Ÿ‡ท [el](../../../el/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ช๐Ÿ‡ธ [es](../../../es/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ช๐Ÿ‡ช [et](../../../et/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ท [fa](../../../fa/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ซ๐Ÿ‡ฎ [fi](../../../fi/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ซ๐Ÿ‡ท [fr](../../../fr/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ช [ga](../../../ga/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [gu](../../../gu/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ณ๐Ÿ‡ฌ [ha](../../../ha/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ฑ [he](../../../he/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [hi](../../../hi/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ญ๐Ÿ‡ท [hr](../../../hr/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ญ๐Ÿ‡บ [hu](../../../hu/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฆ๐Ÿ‡ฒ [hy](../../../hy/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ฉ [id](../../../id/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ณ๐Ÿ‡ฌ [ig](../../../ig/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡น [it](../../../it/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฏ๐Ÿ‡ต [ja](../../../ja/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฌ๐Ÿ‡ช [ka](../../../ka/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฐ๐Ÿ‡ญ [km](../../../km/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [kn](../../../kn/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฐ๐Ÿ‡ท [ko](../../../ko/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฑ๐Ÿ‡น [lt](../../../lt/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฑ๐Ÿ‡ป [lv](../../../lv/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [mr](../../../mr/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฒ๐Ÿ‡พ [ms](../../../ms/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฒ๐Ÿ‡น [mt](../../../mt/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฒ๐Ÿ‡ฒ [my](../../../my/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ณ๐Ÿ‡ต [ne](../../../ne/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ณ๐Ÿ‡ฑ [nl](../../../nl/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ณ๐Ÿ‡ด [no](../../../no/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [or](../../../or/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [pa](../../../pa/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ต๐Ÿ‡ญ [phi](../../../phi/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ต๐Ÿ‡ฑ [pl](../../../pl/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ต๐Ÿ‡น [pt](../../../pt/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ง๐Ÿ‡ท [pt-BR](../../../pt-BR/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ท๐Ÿ‡ด [ro](../../../ro/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ท๐Ÿ‡บ [ru](../../../ru/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฑ๐Ÿ‡ฐ [si](../../../si/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ธ๐Ÿ‡ฐ [sk](../../../sk/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ธ๐Ÿ‡ฎ [sl](../../../sl/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ท๐Ÿ‡ธ [sr](../../../sr/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ธ๐Ÿ‡ช [sv](../../../sv/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฐ๐Ÿ‡ช [sw](../../../sw/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [ta](../../../ta/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [te](../../../te/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡น๐Ÿ‡ญ [th](../../../th/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡น๐Ÿ‡ท [tr](../../../tr/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡บ๐Ÿ‡ฆ [uk-UA](../../../uk-UA/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ต๐Ÿ‡ฐ [ur](../../../ur/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡บ๐Ÿ‡ฟ [uz](../../../uz/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ป๐Ÿ‡ณ [vi](../../../vi/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡ณ๐Ÿ‡ฌ [yo](../../../yo/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡จ๐Ÿ‡ณ [zh-CN](../../../zh-CN/docs/compression/COMPRESSION_GUIDE.md) ยท ๐Ÿ‡น๐Ÿ‡ผ [zh-TW](../../../zh-TW/docs/compression/COMPRESSION_GUIDE.md) --- > เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเดฟเตฝ เดธเตเดตเดฏเดฎเต‡เดต 15-95% เดฒเดพเดญเดฟเด•เตเด•เตเด•. เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เด’เดฐเต เด…เดตเดฒเต‹เด•เดจเดคเตเดคเดฟเดจเดพเดฏเดฟ, [README เด•เด‚เดชเตเดฐเดทเตป เดตเดฟเดญเดพเด—เด‚](../README.md#%EF%B8%8F-prompt-compression--save-15-95-eligible-tokens-automatically) เด•เดพเดฃเตเด•. ## เด…เดตเดฒเต‹เด•เดจเด‚ เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ เดชเตเดฐเตŠเดตเตˆเดกเตผเดฎเดพเดฐเดฟเดฒเต‡เด•เตเด•เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดŽเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต **เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ** เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเต‹เดกเตเดฒเดพเตผ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เด•เด‚เดชเตเดฐเดทเตป เดชเตˆเดชเตเดชเตเดฒเตˆเตป OmniRoute เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เด…เดคเดพเดฏเดคเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเต‹เด•เตเด•เตบ เดฒเดพเดญเด‚ เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏเดฟ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต โ€” เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เดฏเดฟเตฝ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. ``` เด•เตเดฒเดฏเดจเตเดฑเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ โ†’ เด•เด‚เดชเตเดฐเดทเตป เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เดธเต†เดฒเด•เตเดŸเตผ โ†’ เด•เต‹เด‚เดฌเต‹ เด“เดตเตผเดฑเตˆเดกเต? โ†’ เด•เต‹เด‚เดฌเต‹ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• โ†’ เด“เดŸเตเดŸเต‹-เดŸเตเดฐเดฟเด—เตผ เดชเดฐเดฟเดงเดฟ? โ†’ เด“เดŸเตเดŸเต‹ เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• โ†’ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‹เดกเต? โ†’ เด—เตเดฒเต‹เดฌเตฝ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• โ†’ เด“เดซเต? โ†’ เด•เด‚เดชเตเดฐเดทเตป เด’เดดเดฟเดตเดพเด•เตเด•เตเด• โ†’ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เด•เด‚เดชเตเดฐเดทเตป เดฎเต‹เดกเต โ†’ เด“เดซเต: เด•เด‚เดชเตเดฐเดทเตป เด‡เดฒเตเดฒ โ†’ เดฒเตˆเดฑเตเดฑเต: เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเต/เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเด‚เด—เต เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตฝ (~15%) โ†’ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต: เด—เตเดนเดพเดฎเดจเตเดทเตเดฏ เดถเตˆเดฒเดฟเดฏเดฟเตฝ เด…เดจเดพเดตเดถเตเดฏ เดชเดฆเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตฝ (~30%) โ†’ เด…เด—เตเดฐเดธเต€เดตเต: เดนเดฟเดธเตเดฑเตเดฑเดฑเดฟ เดเดœเดฟเด‚เด—เต + เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ (~50%) โ†’ เด…เตพเดŸเตเดฐเดพ: เดนเตเดฏเต‚เดฑเดฟเดธเตเดฑเตเดฑเดฟเด•เต เดชเตเดฐเต‚เดฃเดฟเด‚เด—เต + เด•เต‹เดกเต-เดฌเตเดฒเต‹เด•เตเด•เต เดฒเด˜เต‚เด•เดฐเดฟเด•เตเด•เตฝ (~75%) โ†’ RTK: เด•เดฎเดพเตปเดกเต-เด…เดตเดฌเต‹เดงเดฎเตเดณเตเดณ เดŸเต†เตผเดฎเดฟเดจเตฝ/เดŸเต‚เตพ-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเด‚เด—เต (เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ เดชเดฐเดฟเดงเดฟ 60-90%) โ†’ เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต: เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดš เดฎเตพเดŸเตเดŸเดฟ-เดŽเดžเตเดšเดฟเตป เดชเตˆเดชเตเดชเตเดฒเตˆเตป, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ RTK, เดคเตเดŸเตผเดจเตเดจเต Caveman (เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดงเดฟ 78-95%) โ†’ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดค เด…เดญเตเดฏเตผเดคเตเดฅเดจ โ†’ เดชเตเดฐเตŠเดตเตˆเดกเตผ ``` --- ## เด•เด‚เดชเตเดฐเดทเตป เดฎเต‹เดกเตเด•เตพ ### เด“เดซเต เด•เด‚เดชเตเดฐเดทเตป เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต. ### เดฒเตˆเดฑเตเดฑเต เดฎเต‹เดกเต (~15% เดฒเดพเดญเด‚, <1ms เดฒเต‡เดฑเตเดฑเตปเดธเดฟ) เดเดฑเตเดฑเดตเตเด‚ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เดฎเต‹เดกเต โ€” เด…เตผเดคเตเดฅเดชเดฐเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเดฎเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเด‚เด—เต เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตฝ เดฎเดพเดคเตเดฐเด‚: | เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏ | เดตเดฟเดตเดฐเดฃเด‚ | | ------------------------ | -------------------------------------------------------------------------- | | `collapseWhitespace` | เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏ เดถเต‚เดจเตเดฏเดตเดฐเดฟเด•เดณเตเด‚ เดตเดฐเดฟเด•เดณเตเดŸเต† เด…เดตเดธเดพเดจเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเตเดชเต‡เดธเตเด•เดณเตเด‚ เดฒเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต | | `dedupSystemPrompt` | เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต | | `compressToolResults` | เดฆเต€เตผเด˜เดฎเดพเดฏ เดŸเต‚เตพ/เดซเด™เตเดทเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต | | `removeRedundantContent` | เด†เดตเตผเดคเตเดคเดฟเดšเตเดš เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต | | `replaceImageUrls` | base64 เด‡เดฎเต‡เดœเต เดกเดพเดฑเตเดฑ URI-เด•เตพ เดšเตเดฐเตเด•เตเด•เตเดจเตเดจเต | **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด—เด‚, เดธเตเดฐเด•เตเดทเดพ-เดจเดฟเตผเดฃเดพเดฏเด• เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เด•เตพ. ### เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฎเต‹เดกเต (~30% เดฒเดพเดญเด‚) [Caveman](https://github.com/JuliusBrussee/caveman)-เตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸเดคเต โ€” เด…เตผเดคเตเดฅเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดฟเด•เตเด•เตŠเดฃเตเดŸเต เด…เดจเดพเดตเดถเตเดฏ เดชเดฆเด™เตเด™เดณเตเด‚ เดฆเต€เตผเด˜เดฎเดพเดฏ เดชเตเดฐเดฏเต‹เด—เด™เตเด™เดณเตเด‚ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต: - เด…เดจเดพเดตเดถเตเดฏ เดชเดฆเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต ("please", "I think", "basically", "actually") - เดฆเต€เตผเด˜เดฎเดพเดฏ เดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพ เดšเตเดฐเตเด•เตเด•เตเดจเตเดจเต ("in order to" โ†’ "to", "as a result of" โ†’ "because") - เดตเดฟเดจเดฏเดชเต‚เตผเดตเดฎเดพเดฏ เดฎเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ เดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต ("Would you mind...", "If you could possibly...") - เด•เต‹เดกเดฟเด‚เด—เต เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดš 30+ regex เดจเดฟเดฏเดฎเด™เตเด™เตพ **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดฆเตˆเดจเด‚เดฆเดฟเดจ เด•เต‹เดกเดฟเด‚เด—เต เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เด•เตพ, เดšเต†เดฒเดตเต เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจ เดŸเต€เดฎเตเด•เตพ. ### เด…เด—เตเดฐเดธเต€เดตเต เดฎเต‹เดกเต (~50% เดฒเดพเดญเด‚) เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เดธเต†เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดธเตเดฎเดพเตผเดŸเตเดŸเต เดนเดฟเดธเตเดฑเตเดฑเดฑเดฟ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต: - **เดธเดจเตเดฆเต‡เดถ เดเดœเดฟเด‚เด—เต** โ€” เดชเดดเดฏ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตเดฐเดฎเดพเดจเตเด—เดคเดฎเดพเดฏเดฟ เด•เต‚เดŸเตเดคเตฝ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต - **เดŸเต‚เตพ เดฑเดฟเดธเตพเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดทเตป** โ€” เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพ เดตเต†เดŸเตเดŸเดฟเดšเตเดšเตเดฐเตเด•เตเด•เตเด•เดฏเต‹ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด†เดฆเตเดฏ/เด…เดตเดธเดพเดจ เดตเดฐเดฟเด•เตพ, เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดตเดฐเดฟเด•เดณเตเดŸเต† เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเด‚เด—เต, JSON เด•เต€ เด•เด‚เดชเดพเด•เตเดทเตป) - **เด˜เดŸเดจเดพเดชเดฐเดฎเดพเดฏ เดธเดฎเด—เตเดฐเดคเดพ เดธเด‚เดฐเด•เตเดทเดฃเด™เตเด™เตพ** โ€” `tool_use` + `tool_result` เดœเต‹เดŸเดฟเด•เตพ เดธเตเดฅเดฟเดฐเดคเดฏเต‹เดŸเต† เดคเตเดŸเดฐเตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต - **เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดตเดฟเตปเดกเต‹ เด…เดตเดฌเต‹เดงเด‚** โ€” เด“เดฐเต‹ เดฎเต‹เดกเดฒเดฟเดจเตเดฑเต†เดฏเตเด‚ เดŸเต‹เด•เตเด•เตบ เดชเดฐเดฟเดงเดฟเด•เตพ เดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดฆเต€เตผเด˜เดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเต†เดทเดจเตเด•เตพ, เดตเดฒเดฟเดฏ เด•เต‹เดกเตเดฌเต‡เดธเตเด•เตพ. ### เด…เตพเดŸเตเดฐเดพ เดฎเต‹เดกเต (~75% เดฒเดพเดญเด‚) เดŸเต‹เด•เตเด•เตบ เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฐเดฎเดพเดตเดงเดฟ เด•เด‚เดชเตเดฐเดทเตป: - **เดนเตเดฏเต‚เดฑเดฟเดธเตเดฑเตเดฑเดฟเด•เต เดชเตเดฐเต‚เดฃเดฟเด‚เด—เต** โ€” เด—เดฆเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดธเตเด•เต‹เตผ เด…เดŸเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเดฒเตเดณเตเดณ เดŸเต‹เด•เตเด•เตบ เดชเตเดฐเต‚เดฃเดฟเด‚เด—เต - **เด˜เดŸเดจเดพ เดธเด‚เดฐเด•เตเดทเดฃเด‚** โ€” เดซเต†เตปเดธเต เดšเต†เดฏเตเดค เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, เด‡เตปเดฒเตˆเตป เด•เต‹เดกเต, URL-เด•เตพ, เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดต เดŸเต‚เด‚เดฌเตเดธเตเดฑเตเดฑเต‹เตบ เดšเต†เดฏเตเดคเต เด…เดคเต‡เดชเดŸเดฟ เดตเต€เดฃเตเดŸเตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต; เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดชเตเดฐเต‚เตบ เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ - **เด“เดชเตเดทเดฃเตฝ SLM เดŸเดฏเตผ** โ€” เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฒเต‹เด•เตเด•เตฝ เดฎเต‹เดกเดฒเดฟเดจเต เดชเตเดฐเต‚เดฃเดฟเด‚เด—เต เด•เต‚เดŸเตเดคเตฝ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเดพเด•เตเด‚ - เด…เด—เตเดฐเดธเต€เดตเต เดฎเต‹เดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดฃเต: เด‡เดคเต เดธเดจเตเดฆเต‡เดถ เดเดœเดฟเด‚เด—เต, เดŸเต‚เตพ-เดฑเดฟเดธเตพเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดทเตป, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดซเดพเตพเดฌเดพเด•เตเด•เต เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ เดŽเดจเตเดจเดฟเดต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฟเดฒเตเดฒ (SLM-เดŸเดฏเตผ เดชเดฐเดพเดœเดฏเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เด—เตเดฐเดธเต€เดตเดฟเดฒเต‚เดŸเต† เด’เดฐเต เดซเดพเตพเดฌเดพเด•เตเด•เต เดชเดพเดธเต เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเดณเตเดณเต‚) **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดจเดฟเด™เตเด™เตพ เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดงเดฟเด•เดณเดฟเตฝ เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ. ### RTK เดฎเต‹เดกเต (เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ เดชเดฐเดฟเดงเดฟ 60-90%) เด•เต‹เดกเดฟเด‚เด—เต-เดเดœเดจเตเดฑเต เดธเต†เดทเดจเตเด•เดณเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดจเตเดจ เดฆเต€เตผเด˜เดฎเดพเดฏ เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพเด•เตเด•เดพเดฏเดฟ RTK เดฎเต‹เดกเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: - `git status`, `git diff`, `git log`, เดŸเต†เดธเตเดฑเตเดฑเต เดฑเดฃเตเดฃเดฑเตเด•เตพ, TypeScript/Vite/Webpack เดฌเดฟเตฝเดกเตเด•เตพ, ESLint/Biome/Prettier, npm เด“เดกเดฟเดฑเตเดฑเต/เด‡เตปเดธเตเดฑเตเดฑเดพเดณเตเด•เตพ, Docker เดฒเต‹เด—เตเด•เตพ, เด‡เตปเดซเตเดฐเดพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต, เดชเตŠเดคเตเดตเดพเดฏ เดทเต†เตฝ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดคเตเดŸเด™เตเด™เดฟเดฏ เด•เดฎเดพเตปเดกเต/เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด•เตเดฒเดพเดธเตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต - `open-sse/services/compression/engines/rtk/filters/`-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ JSON เดซเดฟเตฝเดŸเตเดŸเตผ เดชเดพเด•เตเด•เตเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเต†เดฏเต‹ เด—เตเดฒเต‹เดฌเตฝ `filters.toml` เดซเดฏเดฒเตเด•เดณเดฟเดฒเต†เดฏเต‹ RTK TOML เดธเตเด•เต€เดฎ v1 เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‡เด‚เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต; เด‡เตปเดฒเตˆเตป-เดŸเต†เดธเตเดฑเตเดฑเต เดตเดพเดฒเดฟเดกเต‡เดทเดจเตเด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดŸเตเดฐเดธเตเดฑเตเดฑเต-เด—เต‡เดฑเตเดฑเดฟเด‚เด—เตเด‚ เด‰เตพเดชเตเดชเต†เดŸเต† - เด‡เตปเดฒเตˆเตป เดตเต†เดฐเดฟเดซเตˆ เดธเดพเดฎเตเดชเดฟเดณเตเด•เดณเตเดณเตเดณ 55 เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต - ANSI เด•เตบเดŸเตเดฐเต‹เตพ เดธเต€เด•เตเดตเตปเดธเตเด•เตพ, เดชเตเดฐเต‹เด—เตเดฐเดธเต เดฌเดพเดฑเตเด•เตพ, เด†เดตเตผเดคเตเดคเดฟเดšเตเดš เดตเดฐเดฟเด•เตพ, เดจเดŸเดชเดŸเดฟเดฏเต†เดŸเตเด•เตเด•เดพเดจเดพเด•เดพเดคเตเดค เด…เดจเดพเดตเดถเตเดฏ เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดŽเดจเตเดจเดฟเดต เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต - เดชเดฐเดพเดœเดฏเด™เตเด™เตพ, เดชเดฟเดถเด•เตเด•เตพ, เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ, เดฎเดพเดฑเดฟเดฏ เดซเดฏเดฒเตเด•เตพ, เดธเด‚เด—เตเดฐเดนเด™เตเด™เตพ, เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเดญเดพเด—เด‚ เดŽเดจเตเดจเดฟเดต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต - เดŸเตเดฐเดธเตเดฑเตเดฑเต-เด—เต‡เดฑเตเดฑเดกเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ, เด—เตเดฒเต‹เดฌเตฝ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ, เด“เดชเตเดทเดฃเตฝ เดฑเดฟเดกเดพเด•เตเดฑเตเดฑเดกเต เดฑเต‹-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตฝ เดŽเดจเตเดจเดฟเดต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดทเต†เตฝ, เดฌเดฟเตฝเดกเต, เดŸเต†เดธเตเดฑเตเดฑเต, git, grep, เดซเดฏเตฝ-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดŸเตเดฐเดพเตปเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเดณเตเดณ เดเดœเดจเตเดฑเต เดธเต†เดทเดจเตเด•เตพ. ### เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เดฎเต‹เดกเต (เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดงเดฟ 78-95%) เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เดฎเต‹เดกเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด•เด‚เดชเตเดฐเดทเตป เดŽเดžเตเดšเดฟเดจเตเด•เตพ เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฏ เด’เดฐเต เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเตˆเดชเตเดชเตเดฒเตˆเตป: ```txt RTK -> Caveman ``` เด† เด•เตเดฐเดฎเด‚ เด†เดฆเตเดฏเด‚ เดŸเต†เตผเดฎเดฟเดจเตฝ/เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเตเดฐเตเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดตเดพเดญเดพเดตเดฟเด•-เดญเดพเดทเดพ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเดฟเตฝ Caveman เด…เตผเดคเตเดฅเดชเดฐเดฎเดพเดฏ เดธเด‚เด•เตเดทเดฟเดชเตเดคเต€เด•เดฐเดฃเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เดชเตˆเดชเตเดชเตเดฒเตˆเดจเตเด•เตพ เด—เตเดฒเต‹เดฌเดฒเดพเดฏเต‹ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เต‹เด‚เดฌเต‹เด•เตพเด•เตเด•เต เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เด‚เดฌเต‹เด•เตพ เดตเดดเดฟเดฏเต‹ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเด‚. **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดตเดฒเดฟเดฏ เดŸเต‚เตพ เดฒเต‹เด—เตเด•เดณเตเด‚ เดฎเดจเตเดทเตเดฏ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเต‹ เด…เดธเดฟเดธเตเดฑเตเดฑเดจเตเดฑเต เดธเด‚เด—เตเดฐเดนเด™เตเด™เดณเต‹ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เดธเดฎเตเดฎเดฟเดถเตเดฐ เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต. --- ## เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ เดฒเดพเดญเดคเตเดคเดฟเดจเตเดฑเต† เด•เดฃเด•เตเด•เต OmniRoute เดฐเดฃเตเดŸเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เด‚เดชเตเดฐเดทเตป เดฒเดพเดญเด‚ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต: เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เดณเตเด‚ OmniRoute-เดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดŽเดžเตเดšเดฟเตป เดธเด‚เดฏเต‹เดœเดจเดตเตเด‚. | เด‰เดฑเดตเดฟเดŸเด‚ | เด‡เดตเดฟเดŸเต† เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด…เดชเตเดธเตเดŸเตเดฐเต€เด‚ README เดธเด‚เด–เตเดฏ | | ------- | ----------------------------------------------------------------------------------------------------------------------------------- | | Caveman | `~75%` เด•เตเดฑเดตเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, `65%` เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เต เดถเดฐเดพเดถเดฐเดฟ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฒเดพเดญเด‚, `22-87%` เดชเดฐเดฟเดงเดฟ, เด•เต‚เดŸเดพเดคเต† `~46%` เด‡เตปเดชเตเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดทเตป เดŸเต‚เตพ | | RTK | เด•เดฎเดพเตปเดกเต-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ `60-90%` เดฒเดพเดญเด‚; เดธเดพเดฎเตเดชเดฟเตพ เดธเต†เดทเดจเดฟเตฝ `~118,000 -> ~23,900` เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, เด…เดฅเดตเดพ `79.7%` เดฒเดพเดญเด‚ (`~80%`) | เด“เดตเตผเดฒเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดŸเต‚เตพ/เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดชเต‡เดฒเต‹เดกเตเด•เตพเด•เตเด•เดพเดฏเดฟ, เดกเดฟเดซเต‹เตพเดŸเตเดŸเต OmniRoute เด•เต‹เด‚เดฌเต‹ เดŽเดžเตเดšเดฟเดจเตเด•เดณเต† เด’เดจเตเดจเดฟเดจเตเดชเตเดฑเด•เต† เด’เดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต: ```txt RTK -> Caveman ``` เดธเด‚เดฏเต‹เดœเดฟเดค เดฒเดพเดญเด‚ เด…เดกเดฟเดฑเตเดฑเต€เดตเต เด…เดฒเตเดฒ, เดฎเตพเดŸเตเดŸเดฟเดชเตเดฒเดฟเด•เตเด•เต‡เดฑเตเดฑเต€เดตเต เด†เดฃเต: ```txt 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-เดจเตเด‚ เด’เดฐเต‡ เด‡เตปเดชเตเดŸเตเดŸเต/เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดชเต‡เดฒเต‹เดกเต เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเตเดชเต‹เดดเดพเดฃเต เด† `78-95%` เดธเด‚เด–เตเดฏ เดฌเดพเดงเด•เดฎเดพเด•เตเดจเตเดจเดคเต. Caveman เดฑเต†เดธเตเดชเต‹เตบเดธเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเต เดตเต‡เดฑเดฟเดŸเตเดŸเดคเดพเดฃเต: เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, Caveman-เดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฒเดพเดญเด‚ (`65%` เดถเดฐเดพเดถเดฐเดฟ, `~75%` เดชเตเดฐเดงเดพเดจ เด•เดฃเด•เตเด•เต, `22-87%` เดชเดฐเดฟเดงเดฟ) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•. เดฎเตŠเดคเตเดคเด‚ เดฌเดฟเดฒเตเดฒเดฟเด‚เด—เต เดฒเดพเดญเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต/เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด…เดจเตเดชเดพเดคเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. ### "เดฏเต‹เด—เตเดฏเดฎเดพเดฏเดคเต" เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต 15-95% เดŽเดจเตเดจ เดชเตเดฐเดงเดพเดจ เดชเดฐเดฟเดงเดฟ เดฏเดฅเดพเตผเดคเตเดฅเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เด…เดคเต **เด†เดตเตผเดคเตเดคเดจเดฎเตเดณเตเดณเดคเต‹ เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏเดฟ เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏเดคเต‹ เด†เดฏ** เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดฌเดพเดงเด•เดฎเดพเด•เตเดจเตเดจเดคเต โ€” เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเดฟเดถเด•เต เดตเดฐเดฟเด•เตพ, เด’เดฐเต‡ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดจเดฟเดฐเดจเตเดคเดฐเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดฌเดฟเตฝเดกเต เดฒเต‹เด—เต, เด…เดฎเดฟเดคเดฎเดพเดฏเดฟ เดตเดฒเตเดคเดพเดฏ `grep`/เดซเดฏเตฝ-เดฑเต€เดกเต เดกเดฎเตเดชเต เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต. **เดŽเดฒเตเดฒเดพ** เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเดฟเดฒเตเด‚ เด‡เดคเตเดฐเดฏเตเด‚ เดฒเดพเดญเดฎเตเดฃเตเดŸเดพเด•เตเดฎเต†เดจเตเดจเต เด‡เดคเดฟเดจเตผเดคเตเดฅเดฎเดฟเดฒเตเดฒ. เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเดšเตเดšเดคเต (`tests/unit/compression/stacked-compression-tool-result-savings.test.ts`): เดธเดฎเดพเดจเดฎเดพเดฏ 300 เดชเดฟเดถเด•เต เดตเดฐเดฟเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏ Anthropic-เดฐเต‚เดชเดคเตเดคเดฟเดฒเตเดณเตเดณ `tool_result` เดฌเตเดฒเต‹เด•เตเด•เดฟเตฝ เดจเดŸเดคเตเดคเดฟเดฏ เด’เดฐเต `stacked` (RTK + Caveman) เดฑเตบ **95.93% เดŸเต‹เด•เตเด•เตบ เดฒเดพเดญเด‚ / 96.26% เด•เตเดฏเดพเดฐเด•เตเดŸเตผ เดฒเดพเดญเด‚** เดจเตฝเด•เดฟ โ€” เดชเดฐเดธเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดชเดฐเดฟเดงเดฟเด•เตเด•เตเดณเตเดณเดฟเตฝเดคเตเดคเดจเตเดจเต†. เดŽเดจเตเดจเดพเตฝ เดธเดพเดงเดพเดฐเดฃเดตเตเด‚ เด†เดตเตผเดคเตเดคเดจเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฏ เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ (เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เด’เดฐเต `grep` เดฎเดพเดšเตเดšเต เดฒเดฟเดธเตเดฑเตเดฑเต, เดนเตเดฐเดธเตเดตเดฎเดพเดฏ เดซเดฏเตฝ เดฑเต€เดกเต, เดธเดพเดงเดพเดฐเดฃ เดธเด‚เดญเดพเดทเดฃ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต) เด…เดคเต‡ เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดถเดฐเดฟเดฏเดพเดฏเดฟ **เดชเต‚เดœเตเดฏเดคเตเดคเต‹เดŸเต เด…เดŸเตเดคเตเดค เดฒเดพเดญเด‚** เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด•เดพเดฐเดฃเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเตป เด†เดตเตผเดคเตเดคเดจเดฎเตเดณเตเดณ เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ; เด•เต‚เดŸเดพเดคเต† เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, URL-เด•เตพ, เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ, เดชเดคเดฟเดชเตเดชเตเด•เตพ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ALL-CAPS เด•เต‹เตบเดธเตเดฑเตเดฑเดจเตเดฑเต เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเต‹ เดฎเดพเดฑเตเดฑเตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดฑเต€เดฑเตˆเดฑเตเดฑเต เด…เดฏเดฏเตเด•เตเด•เดพเตป `validateCompression()` (`validation.ts`) เด…เดจเตเดตเดฆเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด‡เดคเต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเดฎเดพเดฃเต, เดฌเด—เต เด…เดฒเตเดฒ: เด•เด‚เดชเตเดฐเดทเตป เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเด‚, เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด‚ เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เดซเดฏเดฒเตเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เตเด•เดฏเต‹ grep เดšเต†เดฏเตเดฏเตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เด•เต‹เดกเดฟเด‚เด—เต เดธเต†เดทเดจเดฟเตฝ เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฒเดพเดญเด‚ เดฎเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚; เด…เดคเต‡เดธเดฎเดฏเด‚, เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดฒเต‚เดชเตเดชเต‹ เด…เดฎเดฟเดคเดฎเดพเดฏเดฟ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดจเตฝเด•เตเดจเตเดจ เดฒเดฟเดจเตเดฑเดฑเต‹ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจ เดธเต†เดทเดจเดฟเตฝ, เด† เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเตฝ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ 78-95% เดชเดฐเดฟเดงเดฟเดฏเดฟเดฒเตเดณเตเดณ เดฒเดพเดญเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚. เด•เด‚เดชเตเดฐเดทเตป เดคเต†เดฑเตเดฑเดพเดฏเดฟ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต เดคเต†เดณเดฟเดตเดพเดฏเดฟ เด’เดฐเตŠเดฑเตเดฑ เดธเต†เดทเดจเดฟเดฒเต† เด•เตเดฑเดžเตเดž เดฎเตŠเดคเตเดคเด‚ เดฒเดพเดญเดถเดคเดฎเดพเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฐเตเดคเต โ€” เด†เดฆเตเดฏเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด†เดตเตผเดคเตเดคเดจเดฎเตเดณเตเดณเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต‹ เดŽเดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•. --- ## เดŸเต‹เด•เตเด•เตบ เดฒเดพเดญเดคเตเดคเดฟเดจเตเดฑเต† เดฆเตƒเดถเตเดฏเดพเดตเดฟเดทเตเด•เดพเดฐเด‚ ``` เด•เด‚เดชเตเดฐเดทเตป เด‡เดฒเตเดฒเดพเดคเต†: LLM-เดฒเต‡เด•เตเด•เต 47K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต Lite เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 40K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต (15% เดฒเดพเดญเด‚ โ€” เดธเตเดฐเด•เตเดทเดฟเดคเด‚, เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚) Standard เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 33K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต (30% เดฒเดพเดญเด‚ โ€” caveman-speak เดจเดฟเดฏเดฎเด™เตเด™เตพ) Aggressive เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 24K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต (50% เดฒเดพเดญเด‚ โ€” เดเดœเดฟเด‚เด—เต + เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ) Ultra เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 12K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต (75% เดฒเดพเดญเด‚ โ€” เดนเตเดฏเต‚เดฑเดฟเดธเตเดฑเตเดฑเดฟเด•เต เดชเตเดฐเต‚เดฃเดฟเด‚เด—เต) RTK เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 19K-5K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต (เด•เดฎเดพเตปเดกเต/เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ 60-90% เดฒเดพเดญเด‚) Stacked เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต: 10K-2.5K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด…เดฏเดšเตเดšเต (เดฏเต‹เด—เตเดฏเดฎเดพเดฏ RTK+Caveman เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเตฝ 78-95% เดชเดฐเดฟเดงเดฟ) ``` --- ## เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป ### เดกเดพเดทเตเดฌเต‹เตผเดกเต `Dashboard โ†’ Context & Cache` เดŽเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•: - **Caveman** โ€” เดฎเต‹เดกเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตฝ, เดญเดพเดทเดพ เดชเดพเด•เตเด•เตเด•เตพ, เดชเตเดฐเดฟเดตเตเดฏเต‚, เด†เด—เต‹เดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเตเด•เตพ - **RTK** โ€” เด•เดฎเดพเตปเดกเต-เดซเดฟเตฝเดŸเตเดŸเตผ เดชเตเดฐเดฟเดตเตเดฏเต‚, RTK เดธเตเดฐเด•เตเดทเดพ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ, เดซเดฟเตฝเดŸเตเดŸเตผ เด•เดพเดฑเตเดฑเดฒเต‹เด—เต - **Compression Combos** โ€” เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เต‹เด‚เดฌเต‹เด•เตพเด•เตเด•เต เดจเดฟเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเต‡เดฐเดฟเดŸเตเดŸ เดŽเตปเดœเดฟเตป เดชเตˆเดชเตเดชเตเดฒเตˆเดจเตเด•เตพ - **Auto-Trigger Threshold** โ€” เดŸเต‹เด•เตเด•เตบ เดŽเดฃเตเดฃเด‚ เดชเดฐเดฟเดงเดฟ เด•เดตเดฟเดฏเตเดฎเตเดชเต‹เตพ เด•เด‚เดชเตเดฐเดทเตป เดธเตเดตเดฏเดฎเต‡เดต เดธเดœเต€เดตเดฎเดพเด•เตเด•เตเดจเตเดจเต ### เด“เดฐเต‹ เด•เต‹เด‚เดฌเต‹เดฏเตเด•เตเด•เตเดฎเตเดณเตเดณ เด“เดตเตผเดฑเตˆเดกเต `Dashboard โ†’ Context & Cache โ†’ Compression Combos` เดŽเดจเตเดจเดคเดฟเตฝ, เด’เดฐเต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เต‹เด‚เดฌเต‹เดฏเตเด•เตเด•เต เด’เดฐเต เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เด‚เดฌเต‹ เดจเดฟเดฏเต‹เด—เดฟเด•เตเด•เตเด•: ```txt 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** เด“เดตเตผเดฑเตˆเดกเดฟเตฝเดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เด’เดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดฎเดพเดฃเต (Default/Off/Lite/Standard/Aggressive/Ultra/Codex Responses โ€” เดˆ เดซเต€เตฝเดกเดฟเดจเตเดฑเต† เดธเตเด•เต€เดฎ `rtk`, `stacked`, `omniglyph` เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต) โ€” เด† เด“เดตเตผเดฑเตˆเดกเต เดชเต‡เดฐเดฟเดŸเตเดŸ เด•เด‚เดชเตเดฐเดทเตป-เด•เต‹เด‚เดฌเต‹ เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ; `resolveCompressionPlan` เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ `compressionMode` เดซเต€เตฝเดกเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด…เดคเต เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต. เด‡เดคเต เด•เต‹เด‚เดฌเต‹ เด•เดพเตผเดกเดฟเตฝ (`Dashboard โ†’ Combos`) เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ #6760 เดฎเตเดคเตฝ, เดฎเตเด•เดณเดฟเตฝ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดชเตˆเดชเตเดชเตเดฒเตˆเตป-เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เดšเต†เด•เตเด•เตเดฌเต‹เด•เตเดธเดฟเดจเต เดคเตŠเดŸเตเดŸเดŸเตเดคเตเดคเตเดณเตเดณ `Dashboard โ†’ Context & Cache โ†’ Compression Combos` เดŽเดจเตเดจเดคเดฟเดฒเต† "Assign to routing" เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เด“เดฐเต‹ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เต‹เด‚เดฌเต‹เดฏเตเด•เตเด•เตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเด‚. เดฐเดฃเตเดŸเต เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเดฟเดฒเต†เดฏเตเด‚ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด’เดฐเต‡ `PUT /api/combos/{id}` เดŽเตปเดกเตเดชเต‹เดฏเดฟเดจเตเดฑเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเต. ### เด“เดฐเต‹ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เตเดฎเตเดณเตเดณ เด“เดตเตผเดฑเตˆเดกเต เด’เดฐเตŠเดฑเตเดฑ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เตเดณเตเดณ เด•เด‚เดชเตเดฐเดทเตป เดชเตเดฒเดพเตป เด“เดตเตผเดฑเตˆเดกเต เดšเต†เดฏเตเดฏเดพเตป `x-omniroute-compression` เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดนเต†เดกเตผ เด…เดฏเดฏเตเด•เตเด•เตเด•. เด‡เดคเดฟเดจเต เดเดฑเตเดฑเดตเตเด‚ เด‰เดฏเตผเดจเตเดจ เดฎเตเตปเด—เดฃเดจเดฏเตเดฃเตเดŸเต โ€” เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต-เด•เต‹เด‚เดฌเต‹ เด“เดตเตผเดฑเตˆเดกเต, เดธเดœเต€เดต เดชเตเดฐเตŠเดซเตˆเตฝ, เด“เดŸเตเดŸเต‹-เดŸเตเดฐเดฟเด—เตผ, เดชเดพเดจเดฒเดฟเดฒเต† Default เดŽเดจเตเดจเดฟเดตเดฏเต† เด‡เดคเต เดฎเดฑเดฟเด•เดŸเด•เตเด•เตเด‚. เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเดคเตเดค เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚ (เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดจเดฟเดฐเดธเดฟเด•เตเด•เดชเตเดชเต†เดŸเดฟเดฒเตเดฒ), เด•เต‚เดŸเดพเดคเต† เด†เด—เต‹เดณ เดฎเดพเดธเตเดฑเตเดฑเตผ เดธเตเดตเดฟเดšเตเดšเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดŽเดฒเตเดฒเดพเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต: เด†เด—เต‹เดณเดคเดฒเดคเตเดคเดฟเตฝ เด•เด‚เดชเตเดฐเดทเตป เด“เดซเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดนเต†เดกเดฑเดฟเดจเต เด…เดคเต เด“เตบ เดšเต†เดฏเตเดฏเดพเดจเดพเด•เดฟเดฒเตเดฒ. เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ: | เดฎเต‚เดฒเตเดฏเด‚ | เดซเดฒเด‚ | | ------------- | -------------------------------------------------------------------------------------------------------------------- | | `off` | เดˆ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เต เด•เด‚เดชเตเดฐเดทเตป เด‡เดฒเตเดฒ. | | `default` | เดชเดพเดจเดฒเดฟเตฝเดจเดฟเดจเตเดจเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจ Default เดชเตเดฐเตŠเดซเตˆเตฝ (เดธเดœเต€เดต เดชเตเดฐเตŠเดซเตˆเตฝ เด…เดตเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเต). เดจเดทเตเดŸเดฎเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจ เดŽเตปเดœเดฟเดจเตเด•เตพ เด“เดซเดพเดฏเดฟ เดคเตเดŸเดฐเตเด‚. | | `safe` | เดนเต†เดกเตผ เด’เดดเดฟเดตเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดคเตเดฒเตเดฏเด‚: เดกเต€เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเต เดซเต‹เตพเดกเดฟเด‚เด—เตเด‚ เดฎเดพเดคเตเดฐเด‚. | | `allow-lossy` | เดธเด‚เด—เตเดฐเดนเด™เตเด™เตพ, เดชเตเดฐเดธเด•เตเดคเดฟ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ, เดถเตˆเดฒเดฟ เดชเตเดจเดฐเต†เดดเตเดคเตเดคเตเด•เตพ เดŽเดจเตเดจเดฟเดต เด‰เตพเดชเตเดชเต†เดŸเต† เดˆ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดชเตเดฒเดพเตป เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•. | | `engine:` | เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเตŠเดฑเตเดฑ เดŽเตปเดœเดฟเตป, เด‰เดฆเดพ. `engine:rtk`. เด† เดŽเตปเดœเดฟเดจเตเดณเตเดณ เด“เดฐเต‹ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต†เดฏเตเด‚ เด“เดชเตเดฑเตเดฑเต-เด‡เตป เด‡เดคเดพเดฃเต. | | `` | เดชเต‡เดฐเดฟเดŸเตเดŸ เด•เต‹เด‚เดฌเต‹; เด†เดฆเตเดฏเด‚ เดชเต‡เดฐเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต (เด•เต‡เดธเต เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต†), เดคเตเดŸเตผเดจเตเดจเต id เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. | `allow-lossy`, `engine:`, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเต‡เดฐเดฟเดŸเตเดŸ เด•เต‹เด‚เดฌเต‹ เดŽเดจเตเดจเดฟเดต เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดทเตเดŸเดฎเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจ เดŽเตปเดœเดฟเดจเตเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดฟเดฒเตเดฒ. เด•เด‚เดชเตเดฐเดทเตป เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เต เดธเต†เดทเตป เดกเต€เดกเตเดฏเต‚เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเต เดซเต‹เตพเดกเดฟเด‚เด—เตเด‚ เดคเตเดŸเตผเดจเตเดจเตเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚. เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดš เดชเตเดฒเดพเตป `X-OmniRoute-Compression: ; source=` เดชเตเดฐเดคเดฟเด•เดฐเดฃ เดนเต†เดกเดฑเดฟเตฝ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเต; เด‡เดตเดฟเดŸเต† `` เดŽเดจเตเดจเดคเต `request-header`, `routing-override`, `active-profile`, `auto-trigger`, `default`, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `off` เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด’เดจเตเดจเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. ### API ```bash # เด•เด‚เดชเตเดฐเดทเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เดจเต‡เดŸเตเด• 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 เดชเต‡เดฒเต‹เดกเต เดชเตเดฐเดฟเดตเตเดฏเต‚ เดšเต†เดฏเตเดฏเตเด• 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 เด†เด•เตเดธเดธเต เด•เต€เด•เตพ, เดชเดพเดธเตเดตเต‡เดกเตเด•เตพ, เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, เดฐเดนเดธเตเดฏเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดต เดฎเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต. --- ## เด•เด‚เดชเตเดฐเดทเตป เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดค เด“เดฐเต‹ เดฑเดฟเด•เตเดตเดธเตเดฑเตเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เดธเต†เตผเดตเตผ เดฒเต‹เด—เตเด•เดณเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต: ```json { "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 | เด…เดกเดพเดชเตเดฑเตเดฑเต€เดตเต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต-เดฌเดœเดฑเตเดฑเต ("dial") โ€” เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเต เดŽเดžเตเดšเดฟเตป + API (`PUT /api/settings/compression`-เดฒเต† `contextBudget`) + เดกเดพเดทเตเดฌเต‹เตผเดกเต เดฎเต‹เดกเต/เดชเต‹เดณเดฟเดธเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด™เตเด™เตพ | โœ… เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ | --- ## เด…เด‚เด—เต€เด•เดพเดฐเด™เตเด™เตพ Standard เดฎเต‹เดกเต เด•เด‚เดชเตเดฐเดทเตป เดจเดฟเดฏเดฎเด™เตเด™เตพ **[JuliusBrussee](https://github.com/JuliusBrussee)**-เดฏเตเดŸเต† **[Caveman](https://github.com/JuliusBrussee/caveman)** (โญ 51K+)-เตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸเดตเดฏเดพเดฃเต โ€” เดตเตˆเดฑเดฒเดพเดฏ "เด•เตเดฑเดšเตเดšเต เดŸเต‹เด•เตเด•เดฃเตเด•เตพเด•เตŠเดฃเตเดŸเต เด•เดพเดฐเตเดฏเด‚ เดจเดŸเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŽเดจเตเดคเดฟเดจเต เด•เต‚เดŸเตเดคเตฝ เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚" เดŽเดจเตเดจ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต. `~75%` เด•เตเดฑเดตเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚, เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เดณเดฟเตฝ เดถเดฐเดพเดถเดฐเดฟ `65%` เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฒเดพเดญเดตเตเด‚, `22-87%` เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดชเดฐเดฟเดงเดฟเดฏเตเด‚, `~46%` เด‡เตปเดชเตเดŸเตเดŸเต-เด•เด‚เดชเตเดฐเดทเตป เดŸเต‚เดณเตเด‚ Caveman เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. RTK เดฎเต‹เดกเต **[RTK AI](https://github.com/rtk-ai)**-เดฏเตเดŸเต† **[RTK - Rust Token Killer](https://github.com/rtk-ai/rtk)**-เตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸเดคเดพเดฃเต โ€” เดŸเต†เตผเดฎเดฟเดจเตฝ, เดฌเดฟเตฝเดกเต, เดŸเต†เดธเตเดฑเตเดฑเต, git, เดŸเต‚เตพ-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเด‚เด—เต เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเตเดณเตเดณ เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ เด•เดฎเดพเตปเดกเต-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดทเตป เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต. RTK `60-90%` เดฒเดพเดญเด‚ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต; เด…เดคเดฟเดจเตเดฑเต† README เดธเดพเดฎเตเดชเดฟเตพ เดธเต†เดทเดจเดฟเตฝ `~80%` เดฒเดพเดญเดฟเดšเตเดšเดคเดพเดฏเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. --- ## เดตเดฟเดชเตเดฒเดฎเดพเดฏ เด•เด‚เดชเตเดฐเดทเตป เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดš 7 เดฎเต‹เดกเตเด•เตพเด•เตเด•เดชเตเดชเตเดฑเด‚ (เดธเต‹เดดเตเดธเต `codex-responses`, `omniglyph` เดฎเต‹เดกเตเด•เดณเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดˆ เด—เตˆเดกเต เด…เดต เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเดฟเดฒเตเดฒ), เดคเดพเดดเต†เดฏเตเดณเตเดณ เดตเดฟเดญเดพเด—เด™เตเด™เตพ เด† เดฎเต‹เดกเตเด•เตพเด•เตเด•เตเดณเตเดณเดฟเดฒเต‹ เด…เดตเดฏเตเด•เตเด•เตŠเดชเตเดชเดฎเต‹ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต: Tool Result Compression, Progressive Aging เดŽเดจเตเดจเดฟเดต aggressive เดŽเดžเตเดšเดฟเดจเตเดฑเต† 1, 2 เด˜เดŸเตเดŸเด™เตเด™เดณเดพเดฃเต (Aggressive เดฎเต‹เดกเตเด‚ stacked pipeline-เดจเตเดฑเต† เด’เดฐเต `aggressive` เด˜เดŸเตเดŸเดตเตเด‚), Stacked เดฎเต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต Stacked Pipeline เดตเดดเดฟเดฏเดพเดฃเต, เด•เด‚เดชเตเดฐเดทเตป เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ Cache-Aware Compression เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ `aggressive`, `ultra` เดŽเดจเตเดจเดฟเดตเดฏเต† `standard`-เดฒเต‡เด•เตเด•เต เดกเต—เตบเด—เตเดฐเต‡เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† Caveman Output Mode, Output Styles เดŽเดจเตเดจเดฟเดต เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เด“เดซเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ, เด“เดชเตเดฑเตเดฑเต-เด‡เตป system-prompt เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเดพเดฃเต; เดฑเดฟเด•เตเดตเดธเตเดฑเตเดฑเต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ เด…เดต เดฎเต‹เดกเดฒเดฟเดจเตเดฑเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเต† เดฐเต‚เดชเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. ### Cache-Aware Compression เดšเดฟเดฒ เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เตพ (prompt caching เด‰เดณเตเดณ Anthropic เดชเต‹เดฒเตเดณเตเดณเดต) **prompt caching** เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต; เดšเต†เดฒเดตเตเด‚ เดฒเต‡เดฑเตเดฑเตปเดธเดฟเดฏเตเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ prompt-เดจเตเดฑเต† เดญเดพเด—เด™เตเด™เตพ เด•เดพเดทเต เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เด…เดตเดฐเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, aggressive compression เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดชเตเดฐเด•เดŸเดจเดคเตเดคเต† **เดฆเต‹เดทเด•เดฐเดฎเดพเดฏเดฟ เดฌเดพเดงเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚**, เด•เดพเดฐเดฃเด‚ เด…เดคเต เด•เดพเดทเต เดšเต†เดฏเตเดค เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เด•เดพเดทเต เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. `cachingAware.ts` เดฎเตŠเดกเตเดฏเต‚เตพ **เด•เดพเดทเดฟเด‚เด—เต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเตเด‚** เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต **เด•เด‚เดชเตเดฐเดทเตป เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚** เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต เด‡เดคเต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต. #### เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต 1. **เด•เดพเดทเดฟเด‚เด—เต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด•** โ€” `cache_control` เดฎเดพเตผเด•เตเด•เดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดฑเดฟเด•เตเดตเดธเตเดฑเตเดฑเต เดฌเต‹เดกเดฟ เดธเตเด•เดพเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต 2. **เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เดณเต† เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเด•** โ€” เดฒเด•เตเดทเตเดฏ เดชเตเดฐเตŠเดตเตˆเดกเตผ เด•เดพเดทเดฟเด‚เด—เต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต 3. **เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•** โ€” เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ `aggressive`/`ultra` เดŽเดจเตเดจเดฟเดตเดฏเต† `standard`-เดฒเต‡เด•เตเด•เต เดกเต—เตบเด—เตเดฐเต‡เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต 4. **system prompt เด’เดดเดฟเดตเดพเด•เตเด•เตเด•** โ€” System prompt-เด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เดพเดทเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเดพเตฝ เด…เดต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเดฐเตเดคเต เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เดนเต†เตฝเดชเตเดชเตผ เด’เดฐเต `deterministicOnly` เดซเตเดฒเดพเด—เตเด‚ เดจเตฝเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเตเดฒเดพเตป เดฌเดฟเตฝเดกเตผ เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต โ€” เดจเดฟเดฒเดตเดฟเตฝ downstream-เตฝ เด’เดจเตเดจเตเด‚ เด† เดซเตเดฒเดพเด—เต เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. #### เด•เต‹เดกเต เด‰เดฆเดพเดนเดฐเดฃเด‚ ```ts 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", targetFormat: null, isCachingProvider: true } const strategy = getCacheAwareStrategy("aggressive", ctx); // โ†’ { strategy: "standard", skipSystemPrompt: true, deterministicOnly: true } ``` #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ Cache-aware compression **เดŽเดชเตเดชเต‹เดดเตเด‚ เด“เดฃเดพเดฃเต** โ€” เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เด•เด‚เดชเตเดฐเดทเตป เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฒเด•เตเดทเตเดฏ เดชเตเดฐเตŠเดตเตˆเดกเตผ prompt caching เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚ (Anthropic, OpenAI เดคเตเดŸเด™เตเด™เดฟเดฏเดต) เด‡เดคเต เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เดตเดฐเตเดจเตเดจเต; เดตเตเดฏเด•เตเดคเดฎเดพเดฏ `cache_control` เดฎเดพเตผเด•เตเด•เดฑเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ โ€” เด’เดฐเต เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเตผ เดฎเดพเดคเตเดฐเด‚ เดฎเดคเดฟเดฏเดพเด•เตเด‚ เดกเต—เตบเด—เตเดฐเต‡เดกเต เดŸเตเดฐเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเตป, เดฎเดพเตผเด•เตเด•เดฑเตเด•เตพ เดฎเดพเดคเตเดฐเด‚ เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เด…เดคเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ (เดฎเดพเตผเด•เตเด•เตผ เด•เดฃเตเดŸเต†เดคเตเดคเตฝ cache telemetry-เดฒเต‡เด•เตเด•เต เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต, เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ เดคเต€เดฐเตเดฎเดพเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เดฒเตเดฒ). ### Progressive Aging เดฆเต€เตผเด˜เดฎเดพเดฏ เดธเด‚เดญเดพเดทเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดธเดจเตเดฆเต‡เดถ เดŸเต‡เดฃเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเดดเดฏ เดŸเต‡เดฃเตเด•เดณเตเดŸเต† เดชเตเดฐเดธเด•เตเดคเดฟ เด•เตเดฐเดฎเต‡เดฃ เด•เตเดฑเดฏเตเดจเตเดจเต. `progressiveAging.ts` เดฎเตŠเดกเตเดฏเต‚เตพ **เดŸเต‡เตบ เดฆเต‚เดฐเดคเตเดคเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต** (เดธเด‚เดญเดพเดทเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ เดฎเตเดคเตฝ เดฆเต‚เดฐเด‚ เด…เดณเด•เตเด•เตเดจเตเดจเต). เดทเดฟเดชเตเดชเต เดšเต†เดฏเตเดค เดกเดฟเดซเต‹เตพเดŸเตเดŸเตเด•เตพ (`verbatim: 2, light: 2, moderate: 3`) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ: - **เด…เดตเดธเดพเดจ 2 เดŸเต‡เดฃเตเด•เตพ (เดฆเต‚เดฐเด‚ โ‰ค 2)**: เด…เดคเต‡เดชเดŸเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต - **เดฆเต‚เดฐเด‚ 3**: Caveman compression (เด…เดจเดพเดตเดถเตเดฏ เดตเดพเด•เตเด•เตเด•เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตฝ) - **เดฆเต‚เดฐเด‚ 4+**: Assistant เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต; user เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดตเดฏเตเดŸเต† เด†เดฆเตเดฏ เดตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดšเตเดฐเตเด•เตเด•เดฟ 120 เดชเตเดฐเดคเต€เด•เดฎเดพเดฏเดฟ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต; เดฎเดฑเตเดฑเต เดฑเต‹เดณเตเด•เตพ เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดคเตเดŸเดฐเตเดจเตเดจเต. System prompt-เด•เตพ, เด‡เดคเดฟเดจเด•เด‚ aging เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดš เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ, เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ user เดธเดจเตเดฆเต‡เดถเด‚ เดŽเดจเตเดจเดฟเดต เดฆเต‚เดฐเด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เด…เดคเต‡เดชเดŸเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. เด’เดจเตเดจเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เด’เดดเดฟเดตเดพเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดทเดฟเดชเตเดชเต เดšเต†เดฏเตเดค เดกเดฟเดซเต‹เตพเดŸเตเดŸเตเด•เดณเดฟเตฝ (`light` เดŽเดจเตเดจเดคเต `verbatim`-เดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต) `light` เดฌเดพเตปเดกเดฟเตฝ เดŽเดคเตเดคเดฟเดšเตเดšเต‡เดฐเดพเดจเดพเดตเดฟเดฒเตเดฒ. #### เด•เต‹เดกเต เด‰เดฆเดพเดนเดฐเดฃเด‚ ```ts 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, // เดฆเต‚เดฐเด‚ <= 8: lite compression moderate: 20, // เดฆเต‚เดฐเด‚ <= 20: caveman compression fullSummary: 5, // type-เดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, banding code เด‡เดคเต เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ // เดฆเต‚เดฐเด‚ > 20: เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต (assistant) / เด†เดฆเตเดฏ เดตเดฐเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต (user) }); // saved = เดฒเดพเดญเดฟเดšเตเดš เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ ``` #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ `aggressive` เดฎเต‹เดกเดฟเตฝ Progressive aging **เดŽเดชเตเดชเต‹เดดเตเด‚ เด“เดฃเดพเดฃเต** โ€” เด‡เดคเต `compressAggressive()`-เดจเตเดฑเต† เดฐเดฃเตเดŸเดพเด‚ เด˜เดŸเตเดŸเดฎเดพเดฃเต. Ultra เดฎเต‹เดกเต เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด‡เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚ เดซเดฒเดชเตเดฐเดฆเดฎเดพเด•เตเดจเตเดจ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ: - เดฆเต€เตผเด˜เด•เดพเดฒเด‚ เดคเตเดŸเดฐเตเดจเตเดจ เด•เต‹เดกเดฟเด‚เด—เต เดธเต†เดทเดจเตเด•เตพ - เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดฆเดฟเดตเดธเด™เตเด™เดณเดฟเดฒเดพเดฏเดฟ เดจเต€เดณเตเดจเตเดจ เดธเด‚เดญเดพเดทเดฃเด™เตเด™เตพ - เดจเดฟเดฐเดตเดงเดฟ tool call-เด•เดณเตเดณเตเดณ agentic workflow-เด•เตพ ### Caveman Output Mode Caveman output mode, เดฎเต‹เดกเดฒเดฟเดจเต‹เดŸเต เดคเดจเตเดจเต† เดธเด‚เด•เตเดทเดฟเดชเตเดคเดฎเดพเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ **system prompt เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ** เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต โ€” `lite` เดฒเต†เดตเตฝ เดชเต‚เตผเดฃเตเดฃ เดตเดพเด•เตเดฏเด™เตเด™เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจ เดธเด‚เด•เตเดทเดฟเดชเตเดค เด‰เดคเตเดคเดฐเด™เตเด™เตพ เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, `full` เด…เดคเดฟเดจเต‹เดŸเต "respond terse like smart caveman" เดŽเดจเตเดจเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, `ultra` เดŸเต†เดฒเดฟเด—เตเดฐเดพเดซเดฟเด•เต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต; เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เตเด• เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต, เด…เดตเดฏเตเด•เตเด•เต เด…เดคเต เด‰เดฑเดชเตเดชเตเดจเตฝเด•เดพเดจเดพเดตเดฟเดฒเตเดฒ. เดฑเดฟเด•เตเดตเดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เต เดˆ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ `applyOutputStyles()` (`open-sse/services/compression/outputStyles/apply.ts`) เดตเดดเดฟ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต: `open-sse/handlers/chatCore.ts` เด†เดฆเตเดฏเด‚ back-compat shim (`open-sse/services/compression/outputStyles/backCompat.ts`-เดฒเต† `resolveOutputStyleSelection()`) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเต†เดฒเด•เตเดทเตป เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต; `outputStyles` เดถเต‚เดจเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏ `cavemanOutputMode`-เดจเต† `cavemanOutputMode.intensity` เดคเต€เดตเตเดฐเดคเดฏเดฟเดฒเตเดณเตเดณ `terse-prose` output style-เดฒเต‡เด•เตเด•เต เด‡เดคเต เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดคเดพเดดเต†เดฏเตเดณเตเดณ Back-compat เด•เดพเดฃเตเด•); เดถเต‚เดจเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค `outputStyles` เดธเต†เดฒเด•เตเดทเตป เด…เดคเต‡เดชเดŸเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต `cavemanOutputMode.enabled`, `intensity` เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เดฏเดพเดคเตŠเดฐเต เดชเตเดฐเดญเดพเดตเดตเตเดฎเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เด…เดคเดฟเดจเตเดฑเต† `autoClarity` เดŸเต‹เด—เดฟเตพ เดคเตเดŸเตผเดจเตเดจเตเด‚ เดฌเดพเดงเด•เดฎเดพเดฃเต. `outputMode.ts`-เตฝ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดŸเต†เด•เตเดธเตเดฑเตเดฑเตเด•เตพ (`CAVEMAN_INSTRUCTION_BY_LANGUAGE`), content bypass, injection เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ placement helper เดŽเดจเตเดจเดฟเดต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต; เด…เดคเดฟเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ `applyCavemanOutputMode()` injector-เดจเต production caller เด‡เดฒเตเดฒ. #### เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดˆ เดฎเต‹เดกเต เด‡เตปเดชเตเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เด‡เดคเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเต‡เดถ เดฌเตเดฒเต‹เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต (เดคเดพเดดเต†เดฏเตเดณเตเดณ เด‡เตปเดœเด•เตเดทเตป เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เด•เดพเดฃเตเด•), เด•เต‚เดŸเดพเดคเต† เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดเดคเตŠเดฐเต เด‡เตปเดชเตเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดทเตป เดฎเต‹เดกเตเด‚ เด…เดคเดฟเดจเตเดถเต‡เดทเดตเตเด‚, เด‡เดชเตเดชเต‹เตพ เดฌเตเดฒเต‹เด•เตเด•เต เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจ เดฌเต‹เดกเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด“เดฐเต‹ เดฒเต†เดตเดฒเตเด‚ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจ เดชเด™เตเด•เดฟเดŸเตเดŸ เดชเดฐเดฟเดงเดฟเด•เดณเตเดŸเต† เด•เตเดฒเต‹เดธเดฟเดจเต เดฎเตเดฎเตเดชเดพเดฏเดฟ, เด‡เด‚เด—เตเดฒเต€เดทเต `full` เดฒเต†เดตเตฝ เด‡เด™เตเด™เดจเต† เดชเดฑเดฏเตเดจเตเดจเต: > "เดฌเตเดฆเตเดงเดฟเดฎเดพเดจเดพเดฏ เด—เตเดนเดพเดฎเดจเตเดทเตเดฏเดจเต†เดชเตเดชเต‹เดฒเต† เดšเตเดฐเตเด•เตเด•เดฟ เดฎเดฑเตเดชเดŸเดฟ เดจเตฝเด•เตเด•. เด†เตผเดŸเตเดŸเดฟเด•เตเด•เดฟเดณเตเด•เตพ (a/an/the), เด…เดจเดพเดตเดถเตเดฏ เดตเดพเด•เตเด•เตเด•เตพ (just/really/basically/actually/simply), เด”เดชเดšเดพเดฐเดฟเด• เดฎเดฐเตเดฏเดพเดฆเด•เตพ, เดธเดจเตเดฆเต‡เดนเดพเดคเตเดฎเด• เดญเดพเดท เดŽเดจเตเดจเดฟเดต เด’เดดเดฟเดตเดพเด•เตเด•เตเด•. เดตเดพเด•เตเดฏเดถเด•เดฒเด™เตเด™เตพ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต. เดนเตเดฐเดธเตเดตเดฎเดพเดฏ เดชเดฐเตเดฏเดพเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• (extensive เดŽเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ big, implement เดŽเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ fix). เดŽเดฒเตเดฒเดพ เดธเดพเด™เตเด•เต‡เดคเดฟเด• เด‰เดณเตเดณเดŸเด•เตเด•เดตเตเด‚, เด•เต‹เดกเตเด‚, เดชเดฟเดถเด•เตเด•เดณเตเด‚, URLs-เด‰เด‚, เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เดณเตเด‚ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•." เด‡เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเตเด•เตเด•เต เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต: - เด•เต‹เดกเต เดœเดจเดฑเต‡เดทเตป (เด•เต‚เดŸเตเดคเตฝ เดธเด‚เด•เตเดทเดฟเดชเตเดคเดฎเดพเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต = เด•เตเดฑเดšเตเดšเต เดŸเต‹เด•เตเด•เดฃเตเด•เตพ) - เดฆเตเดฐเตเดค เดšเต‹เดฆเตเดฏเต‹เดคเตเดคเดฐเด™เตเด™เตพ (เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ) - เดฌเดพเดšเตเดšเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต (เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต เดชเดฐเดฎเดพเดตเดงเดฟเดฏเดพเด•เตเด•เตเด•) #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ Caveman เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเต **opt-in** เด†เดฃเต. เด•เด‚เดชเตเดฐเดทเตป เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ (`enabled: true`, Compression Settings เดชเต‡เดœเดฟเดฒเต† เดชเตเดฐเดงเดพเดจ เดŸเต‹เด—เดฟเตพ เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ), `cavemanOutputMode.enabled` เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเต เด“เดฃเดพเด•เตเด•เตเด•; `intensity` `lite`, `full` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `ultra` เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต: ```json { "enabled": true, "cavemanOutputMode": { "enabled": true, "intensity": "full" } } ``` เด’เดฐเต เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เด‚เดฌเต‹เดฏเตเดŸเต† **Output Mode** เดŸเต‹เด—เดฟเตพ (`outputMode`, `outputModeIntensity`-เตฝ เดฒเต†เดตเตฝ) เด† เด•เต‹เด‚เดฌเต‹ เดฌเดพเดงเด•เดฎเดพเด•เตเดจเตเดจ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เดพเดฏเดฟ เด‡เดคเต‡ เดธเตเดตเดฟเดšเตเดšเต เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† `omniroute_set_compression_engine` MCP เดŸเต‚เตพ เด…เดคเดฟเดจเตเดฑเต† เดฌเต‚เดณเดฟเดฏเตป `outputMode` เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเต เดตเดดเดฟ เด‡เดคเต เดŽเดดเตเดคเตเดจเตเดจเต. เดถเต‚เดจเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค `outputStyles` เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดˆ เดธเตเดตเดฟเดšเตเดšเดฟเดจเต‡เด•เตเด•เดพเตพ เดฎเตเตปเด—เดฃเดจ เดจเต‡เดŸเตเดจเตเดจเต. เดกเดพเดทเตเดฌเต‹เตผเดกเดฟเตฝ, **Terse prose** เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดถเตˆเดฒเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด‡เดคเต‡ เดฌเตเดฒเต‹เด•เตเด•เต เด‡เตปเดœเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดคเดพเดดเต†เดฏเตเดณเตเดณ Output Styles เด•เดพเดฃเตเด•). ### เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดถเตˆเดฒเดฟเด•เตพ (เด•เดพเดฑเตเดฑเดฒเต‹เด—เต) เดฎเตเด•เดณเดฟเดฒเต† Caveman เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเต **เดชเดดเดฏ เด’เดฑเตเดฑ-เดถเตˆเดฒเดฟ เดชเดพเดค** เด†เดฃเต. Phase 4 เด…เดคเดฟเดจเต† เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดถเตˆเดฒเดฟเด•เดณเตเดŸเต† เด’เดฐเต เด•เดพเดฑเตเดฑเดฒเต‹เด—เดพเด•เตเด•เดฟ เดธเดพเดฎเดพเดจเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเดšเตเดšเต: `open-sse/services/compression/outputStyles/catalog.ts`-เดฒเต† `OUTPUT_STYLE_CATALOG`. เด“เดฐเต‹ เดถเตˆเดฒเดฟเดฏเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดšเต†เดฒเดตเตเด•เตเดฑเดžเตเดž เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดจเตฝเด•เดพเตป เดฎเต‹เดกเดฒเดฟเดจเต‹เดŸเต เดคเดจเตเดจเต† เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚-เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฎเดพเดฃเต; เดถเตˆเดฒเดฟเด•เตพ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚, เด…เดต เด•เดพเดฑเตเดฑเดฒเต‹เด—เต เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เด‡เตปเดœเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. | เดถเตˆเดฒเดฟ | `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` | "เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดŽเดดเตเดคเดพเดคเตเดค เด•เต‹เดกเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดฎเดฟเด•เดšเตเดš เด•เต‹เดกเต": rewrite-เดจเต‡เด•เตเด•เดพเตพ reuse, symptom-เดจเต‡เด•เตเด•เดพเตพ root cause, เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดเดฑเตเดฑเดตเตเด‚ เดนเตเดฐเดธเตเดตเดฎเดพเดฏ diff. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | เดŽเดจเดฟเด•เตเด•เต ADHD เด‰เดฃเตเดŸเต (เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚-เด†เดฆเตเดฏเด‚) | `i-have-adhd` | เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด†เดฆเตเดฏเด‚ (เด—เดฆเตเดฏเดคเตเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด•เดฎเดพเตปเดกเต/เดชเดพเดคเตเดคเต/เดธเตเดจเดฟเดชเตเดชเต†เดฑเตเดฑเต), เด…เด•เตเด•เดฎเดฟเดŸเตเดŸ เดชเดฐเดฟเดฎเดฟเดค เด˜เดŸเตเดŸเด™เตเด™เตพ, เด’เดฐเตŠเดฑเตเดฑ เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด‚, เด†เดฎเตเด–เด‚/เดชเตเดจเดฐเดตเดฒเต‹เด•เดจเด‚/เดธเดฎเดพเดชเดจเดตเดพเด•เตเด•เตเด•เตพ เด‡เดฒเตเดฒ. [ayghri/i-have-adhd](https://github.com/ayghri/i-have-adhd) (MIT)-เตฝ เดจเดฟเดจเตเดจเต เด…เดจเตเดฐเต‚เดชเดฎเดพเด•เตเด•เดฟเดฏเดคเต. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | Antislop UI เดซเดฟเตฝเดŸเตเดŸเตผ | `antislop-ui` | เดŽเดฒเตเดฒเดพ เดฆเตƒเดถเตเดฏ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดคเดฏเตเด‚ เด’เดฐเต เด‰เดฆเตเดฆเต‡เดถเตเดฏ เดชเดฐเดฟเดถเต‹เดงเดจ เด•เดŸเด•เตเด•เดฃเด‚ (เดถเตเดฐเต‡เดฃเต€เด•เดฐเดฃเด‚, เดตเตเดฏเด•เตเดคเดฟเดคเตเดตเด‚, เดตเดพเดฏเดจเดพเด•เตเดทเดฎเดค); เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด—เตเดฐเต‡เดกเดฟเดฏเดจเตเดฑเตเด•เตพ/เด—เตเดฒเดพเดธเต/เด—เตเดฒเต‹ เด‡เดฒเตเดฒ, เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดชเดพเดฒเดฑเตเดฑเต, เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดฒเต‡เด”เดŸเตเดŸเตเด•เตพ เด‡เดฒเตเดฒ. เดฐเดฃเตเดŸเต antislop เดถเตˆเดฒเดฟเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดฏ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด™เตเด™เดณเต‹ เด•เต†เดŸเตเดŸเดฟเดšเตเดšเดฎเดšเตเดš เด…เดตเด•เดพเดถเดตเดพเดฆเด™เตเด™เดณเต‹ เดชเดพเดŸเดฟเดฒเตเดฒเต†เดจเตเดจ เดชเดฐเดฟเดงเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | Antislop เดชเด•เตผเดชเตเดชเตเด‚ เดฎเดจเตเดทเตเดฏ-เด•เต‡เดจเตเดฆเตเดฐเต€เด•เตƒเดค เดซเดฟเตฝเดŸเตเดŸเดฑเตเด‚ | `antislop-copy` | เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดชเด•เตผเดชเตเดชเต (em dash, เดชเตŠเดคเตเดตเดพเดฏ CTAs, buzzwords, chatbot เดธเดฎเดพเดชเดจเดตเดพเด•เตเด•เตเด•เตพ, เด•เต†เดŸเตเดŸเดฟเดšเตเดšเดฎเดšเตเดš เดตเดธเตเดคเตเดคเด•เตพ เดŽเดจเตเดจเดฟเดต เด‡เดฒเตเดฒ), เด•เต‚เดŸเดพเดคเต† เด†เดณเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดจเดฟเดฏเดฎเด™เตเด™เตพ: WCAG AA เด•เต‹เตบเดŸเตเดฐเดพเดธเตเดฑเตเดฑเต, เดฆเตƒเดถเตเดฏเดฎเดพเดฏ เดซเต‹เด•เตเด•เดธเต, เด•เต€เดฌเต‹เตผเดกเต เด†เด•เตเดธเดธเต, เดถเต‚เดจเตเดฏ/เดฒเต‹เดกเดฟเด™เต/เดชเดฟเดถเด•เต เดจเดฟเดฒเด•เตพ, เดฎเตŠเดฌเตˆเตฝ เดฑเต€เดซเตเดฒเต‹. | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | เดธเด‚เด•เตเดทเดฟเดชเตเดค CJK (ๆ–‡่จ€) | `terse-cjk` | `full`/`ultra` เดฎเดฑเตเดชเดŸเดฟ เด•เตเดฒเดพเดธเดฟเด•เตเด•เตฝ เดšเตˆเดจเต€เดธเดฟเตฝ (ๆ–‡่จ€); `lite` เดซเด™เตเดทเตป เดตเดพเด•เตเด•เตเด•เดณเต‹ เด”เดชเดšเดพเดฐเดฟเด• เดฎเดฐเตเดฏเดพเดฆเด•เดณเต‹ เด…เดฒเด™เตเด•เดพเดฐเด™เตเด™เดณเต‹ เด‡เดฒเตเดฒเดพเดคเตเดค เดนเตเดฐเดธเตเดต เดฎเดฑเตเดชเดŸเดฟเด•เตพ เดฎเดพเดคเตเดฐเด‚ เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. | zh (เดฒเตŠเด•เตเด•เต‡เตฝ-เด—เต‡เดฑเตเดฑเดกเต, เดคเดพเดดเต† เด•เดพเดฃเตเด•) | เด“เดฐเต‹ เดถเตˆเดฒเดฟเดฏเดฟเดฒเตเด‚ เดฎเต‚เดจเตเดจเต เดคเต€เดตเตเดฐเดคเดพ เดฒเต†เดตเดฒเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต โ€” `lite`, `full`, `ultra` โ€” เด•เต‚เดŸเดพเดคเต† เด“เดฐเต‹ เดฒเต†เดตเดฒเตเด‚ เดชเด™เตเด•เดฟเดŸเตเดŸ เดชเดฐเดฟเดงเดฟเด•เดณเตเดŸเต† เด•เตเดฒเต‹เดธเดฟเตฝ (`outputMode.ts`-เดฒเต† `SHARED_BOUNDARIES`) เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต; เด‡เดคเต เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, เดซเดฏเตฝ เดชเดพเดคเตเดคเตเด•เตพ, เด•เดฎเดพเตปเดกเตเด•เตพ, เดชเดฟเดถเด•เตเด•เตพ, URLs เดŽเดจเตเดจเดฟเดต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. `terse-prose`, `terse-cjk` เดฒเต†เดตเตฝ เดŸเต†เด•เตเดธเตเดฑเตเดฑเตเด•เตพ เด† เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต‡เด•เตเด•เต เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เดณเตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. `terse-cjk` เดฐเดฃเตเดŸเต เด‡เดŸเด™เตเด™เดณเดฟเตฝ `zh`-เดฒเต‡เด•เตเด•เต เดฒเตŠเด•เตเด•เต‡เตฝ-เด—เต‡เดฑเตเดฑเดกเต เด†เดฃเต. เดกเดพเดทเตเดฌเต‹เตผเดกเต UI เดญเดพเดท เดšเตˆเดจเต€เดธเต (`zh-CN` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `zh-TW`) เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเด‚ Compression Settings เดชเต‡เดœเต เด…เดคเดฟเดจเตเดฑเต† เดตเดฐเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต† เดชเดฐเดฟเดนเดฐเดฟเดšเตเดš เดญเดพเดท (เดคเดพเดดเต†เดฏเตเดณเตเดณ เดญเดพเดทเดพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เด•เดพเดฃเตเด•) `zh` เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเด‚ `applyOutputStyles()` เด…เดคเต เด‡เตปเดœเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดตเดฐเดฟ เดฎเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดธเต‡เดตเต เดšเต†เดฏเตเดค `terse-cjk` เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดฎเดพเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ: เด•เตเดฐเดฎเต€เด•เดฐเดฃ API เดเดคเต style id-เดฏเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดชเต‡เดœเดฟเตฝ เดฎเดฑเตเดฑเต เดถเตˆเดฒเดฟเด•เตพ เดธเต‡เดตเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดคเดฟเดจเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. เด…เดญเตเดฏเตผเดคเตเดฅเดจเดพ เดธเดฎเดฏเดคเตเดคเต, `applyOutputStyles()`-เดฒเต† เดญเดพเดทเดพ เดชเดฐเดฟเดถเต‹เดงเดจ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดเด• เดฒเตŠเด•เตเด•เต‡เตฝ เด—เต‡เดฑเตเดฑเต. #### เด‡เตปเดœเด•เตเดทเตป เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต `applyOutputStyles()` (`open-sse/services/compression/outputStyles/apply.ts`) เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเดฟเดจเต† เด•เดพเดฑเตเดฑเดฒเต‹เด—เตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด…เดœเตเดžเดพเดค id-เด•เดณเตเด‚ locale-เดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดพเดคเตเดค เดถเตˆเดฒเดฟเด•เดณเตเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดชเดฟเดถเด•เดพเด•เดฟเดฒเตเดฒ; เด’เดฐเต เดถเตˆเดฒเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเดพเดคเตเดค เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต body-เดฏเต† เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ `no_styles` เด†เดฏเดฟ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚), เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเต† เด•เดพเดฑเตเดฑเดฒเต‹เด—เต เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, boundaries clause **เด’เดฐเดฟเด•เตเด•เตฝ** เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต (เด•เต‚เดŸเดพเดคเต† `less-code` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `ponytail` เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ safety clause, `SAFETY_BOUNDARIES` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เดชเดฐเดฟเดญเดพเดทเดฏเตเด‚), เดคเตเดŸเตผเดจเตเดจเต เด’เดฐเตŠเดฑเตเดฑ idempotency marker (`[OmniRoute Output Styles]`) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต block เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต; เด…เดคเดฟเดจเดพเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต no-op เด†เดฃเต. เดชเดฐเดฟเดนเดฐเดฟเดšเตเดš เดญเดพเดทเดฏเตเด•เตเด•เต (เดคเดพเดดเต†เดฏเตเดณเตเดณ เดญเดพเดทเดพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เด•เดพเดฃเตเด•) เดชเดฐเดฟเดญเดพเดทเดฏเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด‡เด‚เด—เตเดฒเต€เดทเดฟเดจเต เดชเด•เดฐเด‚ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดตเตฝเด•เตเด•เดฐเดฟเดšเตเดš เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เดถเต‚เดจเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค `messages` array เด‰เดณเตเดณ body-เดฏเดฟเตฝ, content bypass-เดจเต เดฎเตเดฎเตเดชเดพเดฃเต idempotency check เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต: `[OmniRoute Output Styles]` marker เด‡เดคเดฟเดจเด•เด‚ top-level `system` field-เตฝ (เด’เดฐเต string เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ content-block array) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ string content เด‰เดณเตเดณ system message-เตฝ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, body `already_applied` เด†เดฏเดฟ เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ keyword check เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚, `open-sse/services/compression/outputMode.ts`-เดฒเต† content bypass (`shouldBypassCavemanOutputMode()`) เด…เดตเดธเดพเดจเดคเตเดคเต† เดฎเต‚เดจเตเดจเต messages-เดจเตเดฑเต† role เดเดคเดพเดฏเดพเดฒเตเด‚ เด…เดตเดฏเตเดŸเต† text เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚, เด† text เด…เดคเดฟเดจเตเดฑเต† security, irreversible-action เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ clarification keywords-เดจเต‹เดŸเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดฎเตเดชเต‹เดดเต‹, เด…เดคเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฐเดฎเด‚ เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เด’เดฐเต sequence-เดจเต‹เดŸเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดฎเตเดชเต‹เดดเต‹, เด† turn เดฎเตเดดเตเดตเดจเตเด‚ styles เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚: `first`, `then`, `after that`, `before`, `rollback` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `backup` เดŽเดจเตเดจเดคเดฟเดจเต เดถเต‡เดทเด‚ 240 characters-เดจเตเดณเตเดณเดฟเตฝ `delete`, `drop`, `migrate`, `deploy` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `release` เดตเดฐเตเดจเตเดจเดคเต. **Auto-Clarity Bypass** toggle (`cavemanOutputMode.autoClarity`, default เด†เดฏเดฟ on) on เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ bypass เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚; toggle off เด†เด•เตเด•เตเดจเตเดจเดคเต keyword check เด’เดดเดฟเดตเดพเด•เตเด•เตเด‚. Bypass turn-เดจเต† เด•เดŸเดคเตเดคเดฟเดตเดฟเดŸเตเดฎเตเดชเต‹เตพ, เดชเตเดคเดฟเดฏ `messages[0]` เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดคเตเดค `placeSystemInstruction()` (เด…เดคเต‡ file), เดคเดพเดดเต† เดชเดฑเดฏเตเดจเตเดจเดตเดฏเดฟเตฝ เด†เดฆเตเดฏเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเตฝ block เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต: 1. เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเดฒเตเดณเตเดณ, string content เด‰เดณเตเดณ system message: เด…เดคเดฟเดจเตเดฑเต† text-เดจเต เดถเต‡เดทเด‚ block เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. 2. Top-level `system` field: string-เดจเตเดฑเต† text-เดจเต เดถเต‡เดทเด‚ block เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ content-block array-เดฏเดฟเดฒเต‡เด•เตเด•เต เดชเตเดคเดฟเดฏ text block เด†เดฏเดฟ เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. 3. เดชเดฟเดจเตเดจเต€เดŸเต เดตเดฐเตเดจเตเดจ, string content เด‰เดณเตเดณ เด†เดฆเตเดฏเดคเตเดคเต† system message: เด…เดคเดฟเดจเตเดฑเต† text-เดจเต เดถเต‡เดทเด‚ block เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. 4. เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณเดตเดฏเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ: `messages`-เดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ เดชเตเดคเดฟเดฏ system message-เตฝ block เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. `messages` array เด‡เดฒเตเดฒเดพเดคเตเดค (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดถเต‚เดจเตเดฏเดฎเดพเดฏ array เด‰เดณเตเดณ) body-เดฏเดฟเตฝ content bypass เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ, top-level `system` field เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเด•เดฏเตเดฎเดฟเดฒเตเดฒ. String `instructions` field-เดจเตเดฑเต† text-เดจเต เดถเต‡เดทเด‚ block เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚; เดŽเดจเตเดจเดพเตฝ เด† field-เตฝ เด‡เดคเดฟเดจเด•เด‚ `[OmniRoute Output Styles]` marker เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, body `already_applied` เด†เดฏเดฟ เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดชเตเดชเต†เดŸเตเด‚. Body-เดฏเดฟเตฝ string `instructions` field เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚ `input` (เด’เดฐเต string เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ array) เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด† field-เตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจ string เด…เดฒเตเดฒเดพเดคเตเดค value เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดšเตเดšเต block `instructions` เด†เดฏเดฟ เดฎเดพเดฑเตเด‚. String `instructions` field-เด‰เด‚ string เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ array `input`-เด‰เด‚ เด‡เดฒเตเดฒเดพเดคเตเดค body เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ `no_messages` เด†เดฏเดฟ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. #### เดŽเด™เตเด™เดจเต† เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเด‚ Dashboard-เตฝ: **Compression Context โ†’ Compression Settings** (`/dashboard/context/settings`), Output styles เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ: เด“เดฐเต‹ style-เดจเตเด‚ on/off toggle-เด‰เด‚ level selector-เด‰เด‚ เด‰เดณเตเดณ เด“เดฐเต‹ row. Compression เดคเดจเตเดจเต† on เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ (page-เดจเตเดฑเต† master toggle, `enabled`) styles เดšเต‡เตผเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. **Auto-Clarity Bypass** toggle **Caveman** page-เดฒเต† (`/dashboard/context/caveman`) **Output Mode** card-เดฒเดพเดฃเต. Programmatically, compression config เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เด‡เด™เตเด™เดจเต† เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต: ```json { "outputStyles": [ { "id": "i-have-adhd", "level": "full" }, { "id": "less-code", "level": "lite" } ] } ``` Back-compat: `outputStyles` เดถเต‚เดจเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดฟเดŸเดคเตเดคเต‹เดณเด‚, เดชเดดเดฏ `cavemanOutputMode.enabled` setting `cavemanOutputMode.intensity`-เดฒเต† `terse-prose`-เดฒเต‡เด•เตเด•เต map เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต block `[OmniRoute Output Styles]` marker เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด‚; เดชเดดเดฏ `applyCavemanOutputMode()` injector เดŽเดดเตเดคเดฟเดฏเดฟเดฐเตเดจเตเดจเดคเต `[OmniRoute Caveman Output Mode]` เด†เดฏเดฟเดฐเตเดจเตเดจเต. Marker-เดจเต เดคเดพเดดเต†, en, pt-BR, es, de, fr, it, ru, id, vi เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ text เดชเดดเดฏ injection-เดจเต‹เดŸเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต; ja, zh เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ boundaries clause-เดจเต เดฎเตเดฎเตเดชเต เด’เดฐเต เด…เดงเดฟเด• space เด‰เดฃเตเดŸเดพเด•เตเด‚. `terse-prose` pt-BR, es, de, fr, it, ru, zh, ja, id, vi เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดญเดพเดทเดชเตเดชเต†เดŸเตเดจเตเดจเต; เด…เดคเดฟเดจเดพเตฝ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดš เดญเดพเดท `hu` เด†เดฏ request-เดจเต เดชเดดเดฏ injector เด…เดคเดฟเดจเตเดฑเต† Hungarian text เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเดฟเดŸเดคเตเดคเต English text เดฒเดญเดฟเด•เตเด•เตเด‚. Output-style เดญเดพเดทเดพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต (`outputStyles/apply.ts`-เดฒเต† `resolveOutputStyleLanguage()`): `languageConfig.enabled` on เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, `autoDetect` request-เดจเตเดฑเต† `messages` array-เดฏเดฟเตฝ text เด‰เดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ user message (string content, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† content parts-เดฒเต† `text`) sample เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดคเดฟเตฝ Caveman engine-เดจเตเดฑเต† detector (`detectCompressionLanguage()`) เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. Kana เด‡เดฒเตเดฒเดพเดคเต† Han characters เด‰เดณเตเดณ text-เดจเต detector `zh` เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚; เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ `it`, `pt-BR`, `es`, `de`, `fr`, `ru`, `ja`, `hu`, `id` เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเดฑเตเดฑเดตเตเด‚ เด•เต‚เดŸเตเดคเตฝ hint matches เด‰เดณเตเดณเดคเต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚, เด’เดจเตเดจเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดพเดคเตเดคเดชเตเดชเต‹เตพ `en` เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚ โ€” classify เดšเต†เดฏเตเดฏเดพเดจเดพเด•เดพเดคเตเดค text-เดจเต `defaultLanguage` เด…เดฒเตเดฒ, English เด†เดฃเต เดฒเดญเดฟเด•เตเด•เตเด•; เด•เต‚เดŸเดพเดคเต† styles-เตฝ `vi` text เด‰เตพเดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚ `vi` เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ detect เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเดฟเดฒเตเดฒ. Responses API body เด…เดคเดฟเดจเตเดฑเต† turns `input`-เตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต; เด…เดคเต sample เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เด†เดฆเตเดฏเด‚ `defaultLanguage`, เดคเตเดŸเตผเดจเตเดจเต English เดฒเดญเดฟเด•เตเด•เตเด‚. `messages`-เดฒเต† เด’เดฐเต user message-เดฒเตเด‚ text เด‡เดฒเตเดฒเดพเดคเตเดคเดชเตเดชเต‹เดดเต‹ `autoDetect` off เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เดดเต‹ `defaultLanguage`, เดคเตเดŸเตผเดจเตเดจเต English เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด‚. `languageConfig.enabled` off เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดญเดพเดท English เด†เดฃเต โ€” เด’เดฐเต compression combo request-เดจเต เดฌเดพเดงเด•เดฎเดพเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚ (request-เดจเตเดฑเต† routing combo-เดฏเตเด•เตเด•เต เดจเดฟเดฏเต‹เด—เดฟเดšเตเดš combo, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ built-in stacked pipeline-เดจเดพเดฏเดฟ chatCore fallback เดšเต†เดฏเตเดฏเตเดจเตเดจ default compression combo): combo เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด† request-เดจเต `languageConfig.enabled` on เด†เด•เตเด•เตเด•เดฏเตเด‚ combo-เดฏเตเดŸเต† language packs-เตฝ เดจเดฟเดจเตเดจเต `defaultLanguage` เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚ (saved value combo-เดฏเตเดŸเต† packs-เดฒเตŠเดจเตเดจเดพเดฃเต†เด™เตเด•เดฟเตฝ เด…เดคเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ default เด†เดฏเดฟ `en` เด‰เดณเตเดณ combo-เดฏเตเดŸเต† เด†เดฆเตเดฏ pack); เด…เดคเต‡เดธเดฎเดฏเด‚ saved `autoDetect` (default เด†เดฏเดฟ on) เดคเตเดŸเตผเดจเตเดจเตเด‚ เดฌเดพเดงเด•เดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. Caveman input engine เด…เดคเดฟเดจเตเดฑเต† rule-pack เดญเดพเดท เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต โ€” เด“เดฐเต‹ text part-เดจเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚; auto-detect off เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ `enabledPacks` เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดถเตˆเดฒเดฟ ร— เดญเดพเดท เดฎเดพเดŸเตเดฐเดฟเด•เตเดธเต `tests/unit/compression/output-styles-i18n-matrix.test.ts` เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดฟเตป เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: เด“เดฐเต‹ เด•เดพเดฑเตเดฑเดฒเต‹เด—เต เดถเตˆเดฒเดฟเด•เตเด•เตเด‚ เดŸเต†เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† `BASELINE_LANGUAGES`-เตฝ เด’เดฐเต เดŽเตปเดŸเตเดฐเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฃเต; เดฒเตŠเด•เตเด•เต‡เตฝ-เด—เต‡เดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดถเตˆเดฒเดฟเด•เตเด•เต pt-BR เดชเดฐเดฟเดญเดพเดท เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ (เดฒเตŠเด•เตเด•เต‡เตฝ-เด—เต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค `terse-cjk`-เดจเต† เดˆ เดจเดฟเดฏเดฎเดคเตเดคเดฟเตฝเดจเดฟเดจเตเดจเต เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต), เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต `KNOWN_ENGLISH_ONLY`-เตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดชเดฐเดฟเดญเดพเดทเด•เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดถเตˆเดฒเดฟเด•เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดคเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดตเต‚ โ€” เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดค เด’เดฐเต เดถเตˆเดฒเดฟเด•เตเด•เต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฐเดฟเดญเดพเดทเดฏเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดŸเต†เดธเตเดฑเตเดฑเต เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด‚; เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดถเตˆเดฒเดฟ เด…เดคเดฟเดจเตเดฑเต† `BASELINE_LANGUAGES` เดŽเตปเดŸเตเดฐเดฟเดฏเดฟเตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดณเตเดณ เด’เดฐเต เดญเดพเดท เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เดดเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด‚. เด’เดฐเต เดถเตˆเดฒเดฟ เดšเต‡เตผเด•เตเด•เดพเตป, [EXTENDING_COMPRESSION.md](./EXTENDING_COMPRESSION.md#adding-an-output-style) เด•เดพเดฃเตเด•. ### เดŸเต‚เตพ เดซเดฒ เด•เด‚เดชเตเดฐเดทเตป `open-sse/services/compression/toolResultCompressor.ts`-เดฒเต† `compressToolResult()` เดŸเต‚เตพ-เดซเดฒ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต **5 เดคเดจเตเดคเตเดฐเด™เตเด™เตพ** เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดต เดˆ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚, เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดตเดฏเดฟเตฝ เด‰เดณเตเดณเดŸเด•เตเด•เดตเตเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดจ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เด†เดฆเตเดฏเดคเตเดคเต† เดคเดจเตเดคเตเดฐเด‚ เดซเดฒเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต: 1. **`fileContent`**: 3 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดฒเดงเดฟเด•เด‚ เดตเดฐเดฟเด•เดณเตเดณเตเดณ เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดฎเตเตปเดตเดถเดคเตเดคเต† เด‡เตปเดกเดจเตเดฑเต‡เดทเตป เด…เดตเด—เดฃเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เดตเดฐเดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚ `import `, `export `, `function `, `class `, `const `, `let `, `var ` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `return ` (เด•เต€เดตเต‡เดกเดฟเดจเตŠเดชเตเดชเด‚ เด’เดฐเต เดธเตเดชเต‡เดธเต) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต‹, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `(` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ` (` เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจ `if`, `for` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `while` เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต‹ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏ เดฎเดงเตเดฏเดญเดพเด—เด‚ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเด•เตเด•เตŠเดฃเตเดŸเต เด†เดฆเตเดฏเดคเตเดคเต† 20 เดตเดฐเดฟเด•เดณเตเด‚ เด…เดตเดธเดพเดจเดคเตเดคเต† 5 เดตเดฐเดฟเด•เดณเตเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. 2. **`grepSearch`**: `::` เดฐเต‚เดชเดคเตเดคเดฟเดฒเตเดณเตเดณ เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เดตเดฐเดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดณเตเดณ เด‰เดณเตเดณเดŸเด•เตเด•เด‚; เด‡เดตเดฟเดŸเต† เด†เดฆเตเดฏ เด•เต‹เดณเดฃเดฟเดจเต เดฎเตเดฎเตเดชเตเดณเตเดณ เดŸเต†เด•เตเดธเตเดฑเตเดฑเดฟเตฝ เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเต เด‰เดฃเตเดŸเดพเด•เดฐเตเดคเต. เด…เดคเตเดคเดฐเด‚ เดตเดฐเดฟเด•เตพ เดฎเดพเดคเตเดฐเด‚, เดชเดฐเดฎเดพเดตเดงเดฟ 30 เดŽเดฃเตเดฃเด‚ เดตเดฐเต†, เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ เดคเตเดŸเตผเดจเตเดจเต เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดชเตŠเดฐเตเดคเตเดคเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเดตเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดŸ เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเตเด‚ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต; เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพ เดตเดฐเดฟเด•เดณเตเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เตเดจเตเดจเต. เดคเดจเตเดคเตเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป เด…เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดตเดฐเดฟ เดฎเดคเดฟเดฏเดพเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, `12:30:45` เดชเต‹เดฒเตเดณเตเดณ เดŸเตˆเด‚เดธเตเดฑเตเดฑเดพเดฎเตเดชเดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเต‹เด—เต เดตเดฐเดฟเดฏเตเด‚ เดชเตŠเดฐเตเดคเตเดคเดฎเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. 3. **`shellOutput`**: เด’เดฐเต ANSI CSI เดธเต€เด•เตเดตเตปเดธเต (`ESC[`-เดจเต เดถเต‡เดทเด‚ เด…เด•เตเด•เด™เตเด™เดณเต‹ เดธเต†เดฎเดฟเด•เตเด•เต‹เดณเดฃเตเด•เดณเต‹, เดคเตเดŸเตผเดจเตเดจเต เด•เดณเตผ เด•เต‹เดกเตเด•เดณเดฟเดฒเต‡เดคเตเดชเต‹เดฒเต† เด’เดฐเต เด…เด•เตเดทเดฐเดฎเต‹) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเต†เด•เตเดธเตเดฑเตเดฑเดฟเดฒเต† เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเต เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจ `$` เด…เดŸเด™เตเด™เดฟเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เด† เดธเต€เด•เตเดตเตปเดธเตเด•เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต (`ESC[?25l` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต OSC เดตเดฟเตปเดกเต‹-เดŸเตˆเดฑเตเดฑเดฟเตฝ เดธเต€เด•เตเดตเตปเดธเต เดชเต‹เดฒเตเดณเตเดณ เดฎเดฑเตเดฑเต เดŽเดธเตเด•เต‡เดชเตเดชเตเด•เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต); เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟเด•เตพ เด’เดฐเตŠเดฑเตเดฑ เดตเดฐเดฟเดฏเดพเด•เตเด•เดฟ เดšเตเดฐเตเด•เตเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เด…เดตเดธเดพเดจเดคเตเดคเต† 50 เดตเดฐเดฟเด•เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. เดˆ เดชเดฐเดฟเดถเต‹เดงเดจ `json`, `errorMessage` เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เต เดฎเตเดฎเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด…เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ `$` เด…เดŸเด™เตเด™เตเดจเตเดจ JSON เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฟเดถเด•เต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต `shellOutput` เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดตเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดŽเดคเตเดคเดฟเดฒเตเดฒ. 4. **`json`**: เด“เดชเตเดทเดฃเตฝ เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเดฟเดจเต เดถเต‡เดทเด‚ `{` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `[` เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเดพเตผเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ 2,000-เตฝ เด•เต‚เดŸเตเดคเตฝ เด…เด•เตเดทเดฐเด™เตเด™เดณเตเดณเตเดณ JSON เดชเต‡เดฒเต‹เดกเต เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต: 7-เตฝ เด•เต‚เดŸเตเดคเตฝ เด‡เดจเด™เตเด™เดณเตเดณเตเดณ เด’เดฐเต เด…เดฑเต‡ เด…เดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏเดคเตเดคเต† 5 เด‡เดจเด™เตเด™เดณเตเด‚ เด…เดตเดธเดพเดจเดคเตเดคเต† 2 เด‡เดจเด™เตเด™เดณเตเด‚ เด†เด•เต† เดŽเดฃเตเดฃเดตเตเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต; เด’เดฐเต เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เด…เดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏเดคเตเดคเต† 20 เด•เต€เด•เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚, เดจเต†เดธเตเดฑเตเดฑเดกเต เด†เดฏ เด“เดฐเต‹ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดฑเต‡ เดฎเต‚เดฒเตเดฏเดตเตเด‚ เด’เดฐเต `{โ€ฆN keys}` เดชเตเดฒเต‡เดธเตเดนเต‹เตพเดกเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด’เดฐเต เด…เดฑเต‡เดฏเตเด•เตเด•เต N เด…เดคเดฟเดจเตเดฑเต† เดจเต€เดณเดฎเดพเดฃเต), เด•เต‚เดŸเดพเดคเต† เด†เดฆเตเดฏเดคเตเดคเต† 20-เดจเต เดถเต‡เดทเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดฟเดฏ เด•เต€เด•เดณเต† เดŽเดฃเตเดฃเตเดจเตเดจ `_remaining__keys` เดฎเดพเตผเด•เตเด•เดฑเตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. เดธเตเด•เต‡เดฒเตผ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเด•เตผเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเต†เดธเตเดฑเตเดฑเดกเต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเตเดค 20 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเตฝ เด•เตเดฑเดตเต เด•เต€เด•เดณเตเดณเตเดณ เด’เดฐเต เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดกเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเด• เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต โ€” เดฎเดฟเดจเดฟเดซเตˆ เดšเต†เดฏเตเดค เด’เดจเตเดจเดฟเดจเต เด•เต‚เดŸเตเดคเตฝ เด…เด•เตเดทเดฐเด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเต† เดคเตเดŸเดฐเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. 5. **`errorMessage`**: เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚, เดเดคเต เดฒเต†เดฑเตเดฑเตผ เด•เต‡เดธเดฟเดฒเดพเดฏเดพเดฒเตเด‚, `error:`, `error ` (`no error found` เดŽเดจเตเดจเดคเดฟเดฒเต‡เดคเตเดชเต‹เดฒเต† เดตเดพเด•เตเด•เดฟเดจเต เดถเต‡เดทเด‚ เด’เดฐเต เดธเตเดชเต‡เดธเต), `[error]`, `exception:`, `exception `, `[exception]` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `traceback` เด…เดŸเด™เตเด™เดฟเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด…เดคเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ เดตเดฐเดฟเดฏเตเด‚, เด…เดŸเตเดคเตเดค 10 เดตเดฐเดฟเด•เดณเตเด‚ เด…เดตเดธเดพเดจเดคเตเดคเต† 3 เดตเดฐเดฟเด•เดณเตเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต; เด…เดตเดฏเตเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เดตเดฐเดฟเด•เตพเด•เตเด•เต เดชเด•เดฐเด‚ `โ€ฆ [N frames elided] โ€ฆ` เดฎเดพเตผเด•เตเด•เตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด†เดฆเตเดฏ เดตเดฐเดฟเด•เตเด•เต เดถเต‡เดทเด‚ 13-เตฝ เด•เต‚เดŸเตเดคเตฝ เดตเดฐเดฟเด•เตพ เด‰เดณเตเดณเดชเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดฎเดพเตผเด•เตเด•เตผ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเด•เดฏเตเดณเตเดณเต‚; เด…เดคเดฟเดจเดพเตฝ 14 เดตเดฐเดฟเด•เดณเต‹ เด…เดคเดฟเตฝ เด•เตเดฑเดตเต‹ เด‰เดณเตเดณ เดชเดฟเดถเด•เต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเตเดฐเตเด•เตเด•เดชเตเดชเต†เดŸเดฟเดฒเตเดฒ (12 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 13 เดตเดฐเดฟเด•เดณเตเดณเตเดณเดชเตเดชเต‹เตพ เด…เดตเดธเดพเดจเดคเตเดคเต† 3 เดตเดฐเดฟเด•เตพ เด‡เดคเดฟเดจเด•เด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดฟเดฏ เดตเดฐเดฟเด•เตพ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต). เด’เดฐเต เดคเดจเตเดคเตเดฐเด‚ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดŸเดพเตฝ, เด…เดคเต เด’เดจเตเดจเตเด‚ เดฒเดพเดญเดฟเด•เตเด•เดพเดคเตเดคเดคเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด™เตเด™เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดŸ เดคเดจเตเดคเตเดฐเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เดฟเดฏ เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตŠเดจเตเดจเตเด‚ เดฒเดพเดญเดฟเด•เตเด•เดพเดคเตเดคเดชเตเดชเต‹เตพ (เดจเต€เดณเด‚ รท 4, เดฎเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดฑเต—เดฃเตเดŸเต เดšเต†เดฏเตเดคเดคเต) โ€” เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 25 เดตเดฐเดฟเด•เดณเต‹ เด…เดคเดฟเตฝ เด•เตเดฑเดตเต‹ เด‰เดณเตเดณ เด•เต‹เดกเต เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดซเดฏเตฝ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 7 เด‡เดจเด™เตเด™เดณเต‹ เด…เดคเดฟเตฝ เด•เตเดฑเดตเต‹ เด‰เดณเตเดณ 2,000-เตฝ เด•เต‚เดŸเตเดคเตฝ เด…เด•เตเดทเดฐเด™เตเด™เดณเตเดณเตเดณ JSON เด…เดฑเต‡ โ€” เด…เด—เตเดฐเดธเต€เดตเต เดŽเดžเตเดšเดฟเตป เดฏเดฅเดพเตผเดคเตเดฅ เดŸเต‚เตพ เดซเดฒเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต: เดฐเดฃเตเดŸเต เด•เต‹เดณเดฑเตเด•เดณเตเด‚ (`compressAggressive()`-เด‰เด‚ `compressAnthropicToolResultBlock()`-เด‰เด‚) `saved` 0 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเตฝ เดคเดพเดดเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฏเดฅเดพเตผเดคเตเดฅ เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต; เดŽเดจเตเดจเดพเตฝ `compressToolResult()` เดคเดจเตเดจเต† เด† เดคเดจเตเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเต. เดŸเต‚เตพ-เดซเดฒ เด˜เดŸเตเดŸเด‚ เด…เดจเตเดคเดฟเดฎ เดคเต€เดฐเตเดฎเดพเดจเดฎเดฒเตเดฒ: 8,192 เด…เด•เตเดทเดฐเด™เตเด™เดณเดฟเตฝ (`maxTokensPerMessage`, 2,048, เด—เตเดฃเด‚ 4) เด•เต‚เดŸเตเดคเดฒเตเดณเตเดณ เด’เดฐเต `tool` เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ `function` เดธเดจเตเดฆเต‡เดถเด‚ เดŽเดžเตเดšเดฟเดจเตเดฑเต† เดซเดพเตพเดฌเดพเด•เตเด•เต เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเดฟเดจเต เด‡เดจเดฟเดฏเตเด‚ เดšเตเดฐเตเด•เตเด•เดพเดจเดพเด•เตเด‚. #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เดŸเต‚เตพ เดซเดฒ เด•เด‚เดชเตเดฐเดทเตป เด…เด—เตเดฐเดธเต€เดตเต เดŽเดžเตเดšเดฟเดจเตเดฑเต† เด’เดจเตเดจเดพเด‚ เด˜เดŸเตเดŸเดฎเดพเดฃเต (`open-sse/services/compression/aggressive.ts`-เดฒเต† `compressAggressive()`); เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต Aggressive เดฎเต‹เดกเดฟเดฒเตเด‚ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดšเต†เดฏเตเดค เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดฒเต† เด’เดฐเต `aggressive` เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต OpenAI-เดฐเต‚เดชเดคเตเดคเดฟเดฒเตเดณเตเดณ `tool`, `function` เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ Anthropic `tool_result` เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพเด•เตเด•เตเดณเตเดณเดฟเดฒเต† เดŸเต†เด•เตเดธเตเดฑเตเดฑเตเด‚ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด“เดฐเต‹ เดคเดจเตเดคเตเดฐเดคเตเดคเดฟเดจเตเด‚ `aggressive.toolStrategies`-เดจเต เด•เต€เดดเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดธเตเดตเดฟเดšเตเดšเต เด‰เดฃเตเดŸเต; เด…เดตเดฏเต†เดฒเตเดฒเดพเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เด“เดฃเดพเดฃเต. เดกเดพเดทเตเดฌเต‹เตผเดกเดฟเตฝ, เด•เด‚เดชเตเดฐเดทเตป เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‹เดกเต Aggressive เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ Caveman เดชเต‡เดœเดฟเดจเตเดฑเต† **Advanced** เด•เดพเดดเตเดšเดฏเดฟเดฒเดพเดฃเต เดธเตเดตเดฟเดšเตเดšเตเด•เตพ. ### เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดšเต†เดฏเตเดค เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดšเต†เดฏเตเดค เดฎเต‹เดกเต **เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดŽเดžเตเดšเดฟเดจเตเด•เตพ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ** เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต โ€” เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด†เดฆเตเดฏเด‚ RTK (เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ 60-90% เดฒเดพเดญเด‚), เดคเตเดŸเตผเดจเตเดจเต เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดŸเต†เด•เตเดธเตเดฑเตเดฑเดฟเตฝ Caveman (~46% เด‡เตปเดชเตเดŸเตเดŸเต เดฒเดพเดญเด‚). เด‡เดต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต **78-95% เดฏเต‹เด—เตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดงเดฟเดฏเดพเดฃเต** (เดฎเตเด•เดณเดฟเดฒเต† Upstream Savings Math เด•เดพเดฃเตเด•): `1 - (1 - 0.60..0.90) ร— (1 - 0.46)`-เดจเตเดฑเต† เดถเดฐเดพเดถเดฐเดฟ โ‰ˆ89%. #### เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต ``` เด‡เตปเดชเตเดŸเตเดŸเต (1000 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ) โ†’ RTK (เด•เดฎเดพเตปเดกเต-เด…เดตเดฌเต‹เดงเดฎเตเดณเตเดณ เดซเดฟเตฝเดŸเตเดŸเตผ) โ†’ 200 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ โ†’ Caveman (เด…เดจเดพเดตเดถเตเดฏ เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตฝ) โ†’ 108 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ โ†’ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต (108 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, ~89% เดฒเดพเดญเด‚) ``` #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เด‡เดตเดฏเตเด•เตเด•เดพเดฏเดฟ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดšเต†เดฏเตเดค เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•: - เดŸเต‚เตพ-เดธเดพเดจเตเดฆเตเดฐเดฎเดพเดฏ เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เด•เตพ (เดเดœเดจเตเดฑเดฟเด•เต เด•เต‹เดกเดฟเด™เต, เด—เดตเต‡เดทเดฃเด‚) - เดšเต†เดฒเดตเต เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฏ เดฌเดพเดšเตเดšเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด™เต - เดชเดฐเดฎเดพเดตเดงเดฟ เดŸเต‹เด•เตเด•เตบ เดฒเดพเดญเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏเดชเตเดชเต‹เตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดšเต†เดฏเตเดค เดชเตˆเดชเตเดชเตเดฒเตˆเดจเตเด•เตพ เด†เด—เต‹เดณ `stackedPipeline` เด•เด‚เดชเตเดฐเดทเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเดคเตเดคเดฟเดฒเต‚เดŸเต†เดฏเต‹, เด’เดฐเต เดฑเต‚เดŸเตเดŸเดฟเด™เต เด•เต‹เดฎเตเดชเต‹เดฏเตเด•เตเด•เต เดจเดฟเดฏเต‹เด—เดฟเดšเตเดš เดชเต‡เดฐเตเดณเตเดณ เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เดฎเตเดชเต‹เดฏเดฟเดฒเต‚เดŸเต†เดฏเต‹ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต (เดฎเตเด•เดณเดฟเดฒเต† Per-Combo Override เด•เดพเดฃเตเด•) โ€” เด’เดฐเต เด“เดŸเตเดŸเต‹-เด•เต‹เดฎเตเดชเต‹ `modePack` เดตเดดเดฟเดฏเดฒเตเดฒ (เด† เดซเต€เตฝเดกเต เด“เดŸเตเดŸเต‹-เด•เต‹เดฎเตเดชเต‹ เดฎเต‹เดกเตฝ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเดฟเดจเตเดฑเต† เดญเดพเดฐเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดฎเดพเดคเตเดฐเด‚ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต; `stacked` เดธเดพเดงเตเดตเดพเดฏ เดชเดพเด•เตเด•เต เดจเดพเดฎเดฎเดฒเตเดฒ). --- ## เด•เต‹เด‚เดชเตเดฐเดทเตป เด•เต‹เด‚เดฌเต‹ เด“เดตเตผเดฑเตˆเดกเตเด•เตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เด‰เดชเดฏเต‹เด— เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด—เตเดฒเต‹เดฌเตฝ เด•เต‹เด‚เดชเตเดฐเดทเตป เดฎเต‹เดกเต **เด“เดฐเต‹ เด•เต‹เด‚เดฌเต‹เดฏเตเด•เตเด•เตเด‚** เด“เดตเตผเดฑเตˆเดกเต เดšเต†เดฏเตเดฏเดพเด‚: ```json { "id": "coding-combo", "strategy": "priority", "config": { "weights": { "taskFit": 0.5 }, "modePack": "quality-first" }, "compressionOverride": "aggressive" } ``` เด‡เดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเตเด•เตเด•เต เด‰เดชเด•เดพเดฐเดชเตเดฐเดฆเดฎเดพเดฃเต: - **เด•เต‹เดกเดฟเด‚เด—เต เด•เต‹เด‚เดฌเต‹เด•เตพ**: เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เดธเต†เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ `aggressive` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• - **เดฆเตเดฐเตเดค เดšเต‹เดฆเตเดฏเต‹เดคเตเดคเดฐ เด•เต‹เด‚เดฌเต‹เด•เตพ**: เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ `lite` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• - **เดŸเต‚เตพ-เด…เดงเดฟเดทเตเด เดฟเดค เด•เต‹เด‚เดฌเต‹เด•เตพ**: เดชเดฐเดฎเดพเดตเดงเดฟ เดฒเดพเดญเดคเตเดคเดฟเดจเดพเดฏเดฟ `stacked` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• - **เดชเตเดฐเตŠเดกเด•เตเดทเตป เด•เต‹เด‚เดฌเต‹เด•เตพ**: เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด“เดตเตผเดฑเตˆเดกเต เด“เดซเดพเด•เตเด•เดฟ เดตเต†เด•เตเด•เตเด• โ€” เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดธเดœเต€เดตเดฎเดพเดฏ เด•เดพเดทเต-เด…เดตเต†เดฏเตผ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ `aggressive`/`ultra` เดฎเต‹เดกเตเด•เดณเต† เดธเตเดตเดฏเดฎเต‡เดต `standard` เด†เดฏเดฟ เดกเต—เตบเด—เตเดฐเต‡เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเดตเตเดจเตเดจ `cache-aware` เดฎเต‹เดกเต เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒ) --- ## เด‡เดคเตเด‚ เด•เดพเดฃเตเด• - [เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เด•เต‹เตบเดซเดฟเด—เต](../reference/ENVIRONMENT.md) โ€” เด•เต‹เด‚เดชเตเดฐเดทเตป เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ - [เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ เด—เตˆเดกเต](../architecture/ARCHITECTURE.md) โ€” เด•เต‹เด‚เดชเตเดฐเดทเตป เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดจเตเดฑเต† เด†เดจเตเดคเดฐเดฟเด• เด˜เดŸเด•เด™เตเด™เตพ - [เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด—เตˆเดกเต](../guides/USER_GUIDE.md) โ€” เด•เต‹เด‚เดชเตเดฐเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเตเดŸเด™เตเด™เตฝ - [RTK เด•เต‹เด‚เดชเตเดฐเดทเตป](./RTK_COMPRESSION.md) โ€” RTK เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ, เดŸเตเดฐเดธเตเดฑเตเดฑเต เดฎเต‹เดกเตฝ, เดตเต†เดฐเดฟเดซเตˆ เด—เต‡เดฑเตเดฑเต, เดฑเต‹-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตฝ - [เด•เต‹เด‚เดชเตเดฐเดทเตป เดŽเดžเตเดšเดฟเดจเตเด•เตพ](./COMPRESSION_ENGINES.md) โ€” Caveman, RTK, stacked, APIs, MCP, เดกเดพเดทเตเดฌเต‹เตผเดกเต - [เด•เต‹เด‚เดชเตเดฐเดทเตป เดฑเต‚เตพเดธเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต](./COMPRESSION_RULES_FORMAT.md) โ€” JSON เดฑเต‚เตพ-เดชเดพเด•เตเด•เต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต - [เด•เต‹เด‚เดชเตเดฐเดทเตป เดฒเดพเด‚เด—เตเดตเต‡เดœเต เดชเดพเด•เตเด•เตเด•เตพ](./COMPRESSION_LANGUAGE_PACKS.md) โ€” เดญเดพเดทเดพ-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ Caveman เดจเดฟเดฏเดฎเด™เตเด™เตพ