# ๐Ÿ—œ๏ธ 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) ยท ๐Ÿ‡จ๐Ÿ‡ฟ [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% เดฒเดพเดญเด‚) เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เดธเต†เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดธเตเดฎเดพเตผเดŸเตเดŸเต เดนเดฟเดธเตเดฑเตเดฑเดฑเดฟ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต: - **เดฎเต†เดธเต‡เดœเต เดเดœเดฟเด‚เด—เต** โ€” เดชเดดเดฏ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตเดฐเดฎเต‡เดฃ เด•เต‚เดŸเตเดคเตฝ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต - **เดŸเต‚เตพ เดฑเดฟเดธเตพเดŸเตเดŸเต เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ** โ€” เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพเด•เตเด•เต เดชเด•เดฐเด‚ เดธเด‚เด—เตเดฐเดนเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต - **เด˜เดŸเดจเดพเดชเดฐเดฎเดพเดฏ เดธเดฎเด—เตเดฐเดคเดพ เด—เดพเตผเดกเตเด•เตพ** โ€” `tool_use` + `tool_result` เดœเต‹เดŸเดฟเด•เตพ เดธเตเดฅเดฟเดฐเดคเดฏเต‹เดŸเต† เดคเตเดŸเดฐเตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต - **เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดตเดฟเตปเดกเต‹ เด…เดตเดฌเต‹เดงเด‚** โ€” เด“เดฐเต‹ เดฎเต‹เดกเดฒเดฟเดจเตเดฑเต†เดฏเตเด‚ เดŸเต‹เด•เตเด•เตบ เดชเดฐเดฟเดงเดฟเด•เตพ เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเต **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเต†เดทเดจเตเด•เตพ, เดตเดฒเดฟเดฏ เด•เต‹เดกเตเดฌเต‡เดธเตเด•เตพ. ### เด…เตพเดŸเตเดฐเดพ เดฎเต‹เดกเต (~75% เดฒเดพเดญเด‚) เดŸเต‹เด•เตเด•เตบ เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฐเดฎเดพเดตเดงเดฟ เด•เด‚เดชเตเดฐเดทเตป: - **เดนเตเดฏเต‚เดฑเดฟเดธเตเดฑเตเดฑเดฟเด•เต เดชเตเดฐเต‚เดฃเดฟเด‚เด—เต** โ€” เดชเตเดฐเดธเด•เตเดคเดฟ เดคเตเดฐเต†เดทเต‹เตพเดกเดฟเดจเต เดคเดพเดดเต†เดฏเตเดณเตเดณ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต - **เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เต เดšเตเดฐเตเด•เตเด•เตฝ** โ€” เด†เดตเตผเดคเตเดคเดจเดฎเตเดณเตเดณ เด•เต‹เดกเต เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต - **เดฌเตˆเดจเดฑเดฟ เดธเต†เตผเดšเตเดšเต เดŸเตเดฐเด™เตเด•เต‡เดทเตป** โ€” เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดตเดฟเตปเดกเต‹เดฏเตเด•เตเด•เตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เด•เดŸเตเดŸเต เดชเต‹เดฏเดฟเดจเตเดฑเต เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต - เด…เด—เตเดฐเดธเต€เดตเต เดฎเต‹เดกเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต **เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚:** เดจเดฟเด™เตเด™เตพ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดงเดฟเด•เดณเดฟเตฝ เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ. ### 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 เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ, เด‡เตปเดฒเตˆเตป-เดŸเต†เดธเตเดฑเตเดฑเต เดธเดพเดงเต‚เด•เดฐเดฃเดคเตเดคเต‹เดŸเตเด‚ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดซเดฏเดฒเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เดŸเตเดฐเดธเตเดฑเตเดฑเต-เด—เต‡เดฑเตเดฑเดฟเด‚เด—เต‹เดŸเตเด‚ เด•เต‚เดŸเดฟ เด‡เดฎเตเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต - เด‡เตปเดฒเตˆเตป เดชเดฐเดฟเดถเต‹เดงเดจเดพ เดธเดพเดฎเตเดชเดฟเดณเตเด•เดณเตเดณเตเดณ 49 เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต - 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` เดฎเดพเดšเตเดšเต เดฒเดฟเดธเตเดฑเตเดฑเต, เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดซเดฏเตฝ เดฑเต€เดกเต, เดธเดพเดงเดพเดฐเดฃ เดธเด‚เดญเดพเดทเดฃ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต) เด‡เดคเต‡ เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดถเดฐเดฟเดฏเดพเดฏเดฟเดคเตเดคเดจเตเดจเต† **เดเดคเดพเดฃเตเดŸเต เดชเต‚เดœเตเดฏเด‚ เดฒเดพเดญเดฎเดพเดฃเต** เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด•เดพเดฐเดฃเด‚ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเตป เด†เดตเตผเดคเตเดคเดจเดฎเตเดณเตเดณเดคเดพเดฏเดฟ เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ; เด•เต‚เดŸเดพเดคเต† เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, URLs, เดนเต†เดกเดฟเด™เตเด™เตเด•เตพ, เดชเดคเดฟเดชเตเดชเตเด•เตพ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ ALL-CAPS เด•เต‹เตบเดธเตเดฑเตเดฑเดจเตเดฑเต เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเต‹ เดฎเดพเดฑเตเดฑเตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดชเตเดจเดฐเต†เดดเตเดคเตเดคเต เด…เดฏเดฏเตเด•เตเด•เดพเตป `validateCompression()` (`validation.ts`) เด…เดจเตเดตเดฆเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด‡เดคเต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเดฎเดพเดฃเต, เดฌเด—เต เด…เดฒเตเดฒ: เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด‚ เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เดซเดฏเดฒเตเด•เตพ เดฑเต€เดกเต/grep เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เด•เต‹เดกเดฟเด‚เด—เต เดธเต†เดทเดจเดฟเตฝ, เด•เด‚เดชเตเดฐเดทเตป เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเตŠเดคเตเดคเด‚ เดฒเดพเดญเด‚ เดฎเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚; เด…เดคเต‡เดธเดฎเดฏเด‚ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดฒเต‚เดชเตเดชเต‹ เด…เดฎเดฟเดคเดฎเดพเดฏเดฟ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต เดฒเดฟเดจเตเดฑเดฑเต‹ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจ เดธเต†เดทเดจเดฟเตฝ เด† เดŸเตเดฐเดพเดซเดฟเด•เตเด•เดฟเดจเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ 78-95% เดชเดฐเดฟเดงเดฟ เดฒเดญเดฟเด•เตเด•เตเด‚. เด’เดฐเตŠเดฑเตเดฑ เดธเต†เดทเดจเตเดฑเต† เด•เตเดฑเดžเตเดž เดฎเตŠเดคเตเดคเด‚ เดฒเดพเดญเดถเดคเดฎเดพเดจเด‚, เด•เด‚เดชเตเดฐเดทเตป เดคเต†เดฑเตเดฑเดพเดฏเดฟ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดคเดฟเดจเตเดณเตเดณ เดคเต†เดณเดฟเดตเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฐเตเดคเต โ€” เด†เดฆเตเดฏเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ เดฏเดฅเดพเตผเดฅเดคเตเดคเดฟเตฝ เด†เดตเตผเดคเตเดคเดจเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต‹ เดŽเดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•. --- ## เดŸเต‹เด•เตเด•เตบ เดฒเดพเดญเดคเตเดคเดฟเดจเตเดฑเต† เดฆเตƒเดถเตเดฏเดพเดตเดฟเดทเตเด•เดพเดฐเด‚ ``` เด•เด‚เดชเตเดฐเดทเตป เด‡เดฒเตเดฒเดพเดคเต†: 47K เดŸเต‹เด•เตเด•เดฃเตเด•เตพ LLM-เดฒเต‡เด•เตเด•เต เด…เดฏเดšเตเดšเต 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 เด•เต‹เดฎเตเดชเต‹: "free-tier-fallback" เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เดฎเตเดชเต‹: "coding-agent-stack" เดชเตˆเดชเตเดชเตเดฒเตˆเตป: RTK -> Caveman เดฒเด•เตเดทเตเดฏเด™เตเด™เตพ: 1. if/kimi-k2.7-code 2. if/qwen3.8-max-preview ``` เดชเดฃเดฎเดŸเดšเตเดšเตเดณเตเดณ เดธเดฌเตเดธเตเด•เตเดฐเดฟเดชเตเดทเดจเตเด•เดณเดฟเตฝ เดฒเตˆเดฑเตเดฑเต เดฎเต‹เดกเต เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดฟเด•เตเด•เตŠเดฃเตเดŸเต, เดธเต—เดœเดจเตเดฏ/เด•เต‹เดกเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เดณเดฟเตฝ เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เด•เด‚เดชเตเดฐเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ "Per-Combo Override" เดจเดฟเดฏเต‹เด—เด‚ **เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต-เด•เต‹เดฎเตเดชเต‹ เด•เด‚เดชเตเดฐเดทเตป เดฎเต‹เดกเต** เด“เดตเตผเดฑเตˆเดกเดฟเตฝเดจเดฟเดจเตเดจเต (Default/Off/Lite/Standard/Aggressive/Ultra) เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เด’เดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดฎเดพเดฃเต โ€” เด† เด“เดตเตผเดฑเตˆเดกเต เดชเต‡เดฐเตเดณเตเดณ เด’เดฐเต เด•เด‚เดชเตเดฐเดทเตป-เด•เต‹เดฎเตเดชเต‹ เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ; `resolveCompressionPlan` เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ `compressionMode` เดซเต€เตฝเดกเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด…เดคเต เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต. เด‡เดคเต เด•เต‹เดฎเตเดชเต‹ เด•เดพเตผเดกเดฟเดฒเต‹ (`Dashboard โ†’ Combos`), เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ #6760 เดฎเตเดคเตฝ, เดฎเตเด•เดณเดฟเตฝ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดชเตˆเดชเตเดชเตเดฒเตˆเตป-เด…เดธเตˆเตปเดฎเต†เดจเตเดฑเต เดšเต†เด•เตเด•เตเดฌเต‹เด•เตเดธเดฟเดจเต เดคเตŠเดŸเตเดŸเดŸเตเดคเตเดคเตเดณเตเดณ `Dashboard โ†’ Context & Cache โ†’ Compression Combos` เดŽเดจเตเดจเดคเดฟเดฒเต† "Assign to routing" เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เด“เดฐเต‹ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เต‹เดฎเตเดชเต‹เดฏเตเด•เตเด•เตเดฎเดพเดฏเต‹ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเด‚. เดฐเดฃเตเดŸเต เด‡เดจเตเดฑเตผเดซเต‡เดธเตเด•เดณเตเด‚ เด’เดฐเต‡ `PUT /api/combos/{id}` เดŽเตปเดกเตเดชเต‹เดฏเดฟเดจเตเดฑเต เดตเดดเดฟเดฏเดพเดฃเต เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเต. ### เด“เดฐเต‹ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เตเดฎเตเดณเตเดณ เด“เดตเตผเดฑเตˆเดกเต เด’เดฐเตŠเดฑเตเดฑ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เตเดณเตเดณ เด•เด‚เดชเตเดฐเดทเตป เดชเตเดฒเดพเตป เด“เดตเตผเดฑเตˆเดกเต เดšเต†เดฏเตเดฏเดพเตป `x-omniroute-compression` เด…เดญเตเดฏเตผเดคเตเดฅเดจเดพ เดนเต†เดกเตผ เด…เดฏเดฏเตเด•เตเด•เตเด•. เด‡เดคเดฟเดจเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เด‰เดฏเตผเดจเตเดจ เดฎเตเตปเด—เดฃเดจ โ€” เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต-เด•เต‹เดฎเตเดชเต‹ เด“เดตเตผเดฑเตˆเดกเต, เดธเดœเต€เดต เดชเตเดฐเตŠเดซเตˆเตฝ, เด“เดŸเตเดŸเต‹-เดŸเตเดฐเดฟเด—เตผ, เดชเดพเดจเดฒเดฟเดฒเต† Default เดŽเดจเตเดจเดฟเดตเดฏเต†เดฒเตเดฒเดพเด‚ เด‡เดคเดฟเดจเต เด•เต€เดดเดฟเดฒเดพเดฃเต. เด…เดœเตเดžเดพเดค เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚ (เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดจเดฟเดฐเดธเดฟเด•เตเด•เดชเตเดชเต†เดŸเดฟเดฒเตเดฒ), เด•เต‚เดŸเดพเดคเต† เด†เด—เต‹เดณ เดฎเดพเดธเตเดฑเตเดฑเตผ เดธเตเดตเดฟเดšเตเดšเต เด‡เดชเตเดชเต‹เดดเตเด‚ เดŽเดฒเตเดฒเดพเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต: เด•เด‚เดชเตเดฐเดทเตป เด†เด—เต‹เดณเดฎเดพเดฏเดฟ เด“เดซเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดนเต†เดกเดฑเดฟเดจเต เด…เดคเต เด“เตบ เดšเต†เดฏเตเดฏเดพเดจเดพเด•เดฟเดฒเตเดฒ. เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ: | เดฎเต‚เดฒเตเดฏเด‚ | เดซเดฒเด‚ | | ------------- | -------------------------------------------------------------------------------------------------------- | | `off` | เดˆ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด•เตเด•เต เด•เด‚เดชเตเดฐเดทเตป เด‡เดฒเตเดฒ. | | `default` | เดชเดพเดจเดฒเดฟเตฝเดจเดฟเดจเตเดจเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจ Default เดชเตเดฐเตŠเดซเตˆเตฝ (เดธเดœเต€เดต เดชเตเดฐเตŠเดซเตˆเตฝ เด…เดตเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเต). | | `engine:` | เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเตŠเดฑเตเดฑ เดŽเดžเตเดšเดฟเตป, เด‰เดฆเดพ. `engine:rtk`. | | `` | เดชเต‡เดฐเตเดณเตเดณ เด•เต‹เดฎเตเดชเต‹; เด†เดฆเตเดฏเด‚ เดชเต‡เดฐเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต (เด•เต‡เดธเต เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต†), เดคเตเดŸเตผเดจเตเดจเต id เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต. | เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดš เดชเตเดฒเดพเตป `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 เด˜เดŸเดจเด•เดณเตเด‚ เด˜เดŸเดจเดพเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเด‚ - โœ… เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เดณเตเด‚ เดธเด‚เดฐเด•เตเดทเดฟเดค เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚ - โœ… เด—เดฃเดฟเดค เดธเดฎเดตเดพเด•เตเดฏเด™เตเด™เตพ - โœ… เดŸเต‚เตพ/เดซเด™เตเดทเตป เด•เต‹เตพ เดจเดฟเตผเดตเดšเดจเด™เตเด™เตพ - โœ… เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเตเด•เตพ (เดฒเตˆเดฑเตเดฑเต เดฎเต‹เดกเดฟเตฝ) เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดกเดพเดฑเตเดฑ เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, RTK เดฑเต‹-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฑเดฟเด•เตเด•เดตเดฑเดฟ เดธเดพเดงเดพเดฐเดฃ API เด•เต€เด•เตพ, เดฌเต†เดฏเดฑเตผ เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, 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 | เด“เดซเต, เดฒเตˆเดฑเตเดฑเต | โœ… เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ | | เด˜เดŸเตเดŸเด‚ 2 | เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต, เด…เด—เตเดฐเดธเต€เดตเต, เด…เตพเดŸเตเดฐเดพ | โœ… เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ | | เด˜เดŸเตเดŸเด‚ 3 | RTK, เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต, เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เด‚เดฌเต‹เด•เตพ | โœ… เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ | | เด˜เดŸเตเดŸเด‚ 4 | เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดถเตˆเดฒเดฟเด•เตพ, SLM-เดŸเดฏเตผ เด…เตพเดŸเตเดฐเดพ, เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏ เดนเดพเตผเดจเต†เดธเต | โœ… เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ | | เด˜เดŸเตเดŸเด‚ 4C | เด…เดกเดพเดชเตเดฑเตเดฑเต€เดตเต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต-เดฌเดœเดฑเตเดฑเต ("เดกเดฏเตฝ") โ€” เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเต เดŽเดžเตเดšเดฟเตป + API (`PUT /api/settings/compression`-เดฒเต† `contextBudget`) + เดกเดพเดทเตเดฌเต‹เตผเดกเต เดฎเต‹เดกเต/เดชเต‹เดณเดฟเดธเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด™เตเด™เตพ | โœ… เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟ | --- ## เด•เดŸเดชเตเดชเดพเดŸเตเด•เตพ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฎเต‹เดกเดฟเดฒเต† เด•เด‚เดชเตเดฐเดทเตป เดจเดฟเดฏเดฎเด™เตเด™เตพ **[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 เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฎเต‹เดกเตเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดธเตเดตเดฏเดฎเต‡เดต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดตเดฟเดชเตเดฒเดฎเดพเดฏ เด•เด‚เดชเตเดฐเดทเตป เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ OmniRoute-เตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. ### เด•เดพเดทเต-เด…เดตเดฌเต‹เดงเดฎเตเดณเตเดณ เด•เด‚เดชเตเดฐเดทเตป เดšเดฟเดฒ เดชเตเดฐเตŠเดตเตˆเดกเตผเดฎเดพเตผ (เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เด•เดพเดทเดฟเด‚เด—เต เด‰เดณเตเดณ Anthropic เดชเต‹เดฒเตเดณเตเดณเดตเตผ) **เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เด•เดพเดทเดฟเด‚เด—เต** เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต; เดšเต†เดฒเดตเตเด‚ เดฒเต‡เดฑเตเดฑเตปเดธเดฟเดฏเตเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดญเดพเด—เด™เตเด™เตพ เด•เดพเดทเต เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เด…เดตเดฐเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เด—เตเดฐเดธเต€เดตเต เด•เด‚เดชเตเดฐเดทเตป เดชเตเดฐเด•เดŸเดจเดคเตเดคเต† เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ **เดฆเต‹เดทเด•เดฐเดฎเดพเดฏเดฟ เดฌเดพเดงเดฟเด•เตเด•เดพเด‚**, เด•เดพเดฐเดฃเด‚ เด…เดคเต เด•เดพเดทเต เดšเต†เดฏเตเดค เดŸเต‹เด•เตเด•เดฃเตเด•เดณเดฟเตฝ เดฎเดพเดฑเตเดฑเด‚ เดตเดฐเตเดคเตเดคเดฟ เด•เดพเดทเดฟเดจเต† เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเดจเตเดจเต. เด•เดพเดทเดฟเด‚เด—เต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต **เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเตเด‚** เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต **เด•เด‚เดชเตเดฐเดทเตป เดคเดจเตเดคเตเดฐเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚** เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต `cachingAware.ts` เดฎเตŠเดกเตเดฏเต‚เตพ เด‡เดคเต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต. #### เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต 1. **เด•เดพเดทเดฟเด‚เด—เต เด•เต‹เตบเดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด•เดฃเตเดŸเต†เดคเตเดคเตเด•** โ€” `cache_control` เดฎเดพเตผเด•เตเด•เดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต† เดฌเต‹เดกเดฟ เดธเตเด•เดพเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต 2. **เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเตผเดฎเดพเดฐเต† เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเด•** โ€” เดฒเด•เตเดทเตเดฏ เดชเตเดฐเตŠเดตเตˆเดกเตผ เด•เดพเดทเดฟเด‚เด—เต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต 3. **เดคเดจเตเดคเตเดฐเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•** โ€” เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเตผเดฎเดพเตผเด•เตเด•เดพเดฏเดฟ `aggressive`/`ultra` เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต `standard` เดŽเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดคเดพเดดเตเดคเตเดคเตเดจเตเดจเต 4. **เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เด’เดดเดฟเดตเดพเด•เตเด•เตเด•** โ€” เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเตเด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เดพเดทเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเดพเตฝ เด…เดต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเดฐเตเดคเต 5. **เดกเดฟเดฑเตเดฑเตผเดฎเดฟเดจเดฟเดธเตเดฑเตเดฑเดฟเด•เต เดฐเต‚เดชเดพเดจเตเดคเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•** โ€” เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดฐเต‚เดชเดพเดจเตเดคเดฐเด™เตเด™เตพ เดฎเดพเดคเตเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• #### เด•เต‹เดกเต เด‰เดฆเดพเดนเดฐเดฃเด‚ ```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", isCachingProvider: true } const strategy = getCacheAwareStrategy("aggressive", ctx); // โ†’ { strategy: "standard", skipSystemPrompt: true, deterministicOnly: true } ``` #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เด•เดพเดทเต-เด…เดตเดฌเต‹เดงเดฎเตเดณเตเดณ เด•เด‚เดชเตเดฐเดทเตป **เดŽเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฃเต** โ€” เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เดคเดพเดดเต†เดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เดณเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เด‡เดคเต เดชเตเดฐเดพเดฌเดฒเตเดฏเดคเตเดคเดฟเตฝ เดตเดฐเตเดจเตเดจเต: - เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ `cache_control` เดฎเดพเตผเด•เตเด•เดฑเตเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ - เดฒเด•เตเดทเตเดฏ เดชเตเดฐเตŠเดตเตˆเดกเตผ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เด•เดพเดทเดฟเด‚เด—เต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดฎเตเดชเต‹เตพ (Anthropic, OpenAI เดคเตเดŸเด™เตเด™เดฟเดฏเดต) ### เด•เตเดฐเดฎเดพเดจเตเด—เดค เดเดœเดฟเด‚เด—เต เดฆเต€เตผเด˜เดฎเดพเดฏ เดธเด‚เดญเดพเดทเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดธเดจเตเดฆเต‡เดถ เดŸเต‡เดฃเตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดชเดดเดฏ เดŸเต‡เดฃเตเด•เตพเด•เตเด•เต เดชเตเดฐเดธเด•เตเดคเดฟ เด•เตเดฑเดฏเตเดจเตเดจเต. `progressiveAging.ts` เดฎเตŠเดกเตเดฏเต‚เตพ **เดŸเต‡เตบ เดฆเต‚เดฐเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เดตเดฟเดถเดฆเดพเด‚เดถเดจเดฟเดฒ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต**: - **เดธเดฎเต€เดชเด•เดพเดฒ เดŸเต‡เดฃเตเด•เตพ (0-3)**: เด…เดคเต‡เดชเดŸเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต (เดชเต‚เตผเดฃเตเดฃ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ) - **เด‡เดŸเดคเตเดคเดฐเด‚ เดŸเต‡เดฃเตเด•เตพ (4-8)**: เดฒเตˆเดฑเตเดฑเต เด•เด‚เดชเตเดฐเดทเตป (เดตเตˆเดฑเตเดฑเตเดธเตเดชเต‡เดธเต, เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเด‚เด—เต เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตฝ) - **เดชเดดเดฏ เดŸเต‡เดฃเตเด•เตพ (9+)**: Caveman เด•เด‚เดชเตเดฐเดทเตป (เด…เดจเดพเดตเดถเตเดฏ เดญเดพเด—เด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตฝ, เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ) - **เดตเดณเดฐเต† เดชเดดเดฏ เดŸเต‡เดฃเตเด•เตพ (20+)**: เดถเด•เตเดคเดฎเดพเดฏเดฟ เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตเด•เดฏเต‹ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเดจเตเดจเต #### เด•เต‹เดกเต เด‰เดฆเดพเดนเดฐเดฃเด‚ ```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, // 4-8 เดŸเต‡เดฃเตเด•เตพ: เดฒเตˆเดฑเตเดฑเต เด•เด‚เดชเตเดฐเดทเตป moderate: 20, // 9-20 เดŸเต‡เดฃเตเด•เตพ: caveman เด•เด‚เดชเตเดฐเดทเตป // 21+ เดŸเต‡เดฃเตเด•เตพ: เดถเด•เตเดคเดฎเดพเดฏ เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เตฝ }); // saved = เดฒเดพเดญเดฟเดšเตเดš เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ ``` #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เด•เตเดฐเดฎเดพเดจเตเด—เดค เดเดœเดฟเด‚เด—เต `aggressive`, `ultra` เดฎเต‹เดกเตเด•เดณเดฟเตฝ **เดŽเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฃเต**. เด‡เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดซเดฒเดชเตเดฐเดฆเดฎเดพเด•เตเดจเตเดจเดคเต: - เดฆเต€เตผเด˜เดจเต‡เดฐเด‚ เดจเต€เดณเตเดจเตเดจ เด•เต‹เดกเดฟเด‚เด—เต เดธเต†เดทเดจเตเด•เตพ - เดจเดฟเดฐเดตเดงเดฟ เดฆเดฟเดตเดธเด™เตเด™เตพ เดจเต€เดณเตเดจเตเดจ เดธเด‚เดญเดพเดทเดฃเด™เตเด™เตพ - เดจเดฟเดฐเดตเดงเดฟ เดŸเต‚เตพ เด•เต‹เดณเตเด•เดณเตเดณเตเดณ เดเดœเดจเตเดฑเดฟเด•เต เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เด•เตพ ### เด•เต‡เดตเตเดฎเดพเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเต เดฎเต‹เดกเตฝ เดคเดจเตเดจเต† เดšเตเดฐเตเด•เตเด•เดฟเดฏเดคเตเด‚ เดธเด‚เด•เตเดทเดฟเดชเตเดคเดตเตเดฎเดพเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต (เด’เดฐเต "เด•เต‡เดตเตเดฎเดพเตป" เดถเตˆเดฒเดฟ) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป `outputMode.ts` เดฎเตŠเดกเตเดฏเต‚เตพ **เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ** เด‡เตปเดœเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. #### เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เด‡เตปเดชเตเดŸเตเดŸเต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚, เดˆ เดฎเต‹เดกเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต: > "เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดšเตเดšเต เดตเดพเด•เตเด•เตเด•เดณเดฟเตฝ เดฎเดฑเตเดชเดŸเดฟ เดจเตฝเด•เตเด•. เด”เดชเดšเดพเดฐเดฟเด•เดคเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•. เดšเต†เดฑเดฟเดฏ เดตเดพเด•เตเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•." เด‡เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต: - เด•เต‹เดกเต เดœเดจเดฑเต‡เดทเตป (เด•เต‚เดŸเตเดคเตฝ เดธเด‚เด•เตเดทเดฟเดชเตเดคเดฎเดพเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต = เด•เตเดฑเดตเต เดŸเต‹เด•เตเด•เดฃเตเด•เตพ) - เดฆเตเดฐเตเดค เดšเต‹เดฆเตเดฏเต‹เดคเตเดคเดฐเด™เตเด™เตพ (เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ) - เดฌเดพเดšเตเดšเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต (เดคเตเดฐเต‚เดชเตเดŸเตเดŸเต เดชเดฐเดฎเดพเดตเดงเดฟเดฏเดพเด•เตเด•เตเด•) #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เด•เต‡เดตเตเดฎเดพเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเต **เด“เดชเตเดฑเตเดฑเต-เด‡เตป** เด†เดฃเต โ€” เด•เต‹เด‚เดฌเต‹ เด•เต‹เตบเดซเดฟเด—เต เดตเดดเดฟ เด…เดคเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•: ```json { "strategy": "auto", "config": { "auto": { "outputMode": "caveman" } } } ``` ### เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดถเตˆเดฒเดฟเด•เตพ (เด•เดพเดฑเตเดฑเดฒเต‹เด—เต) เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดž เด•เต‡เดตเตเดฎเดพเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเต **เดฒเต†เด—เดธเดฟ เดธเดฟเด‚เด—เดฟเตพ-เดธเตเดฑเตเดฑเตˆเตฝ เดชเดพเดคเดฏเดพเดฃเต**. Phase 4 เด…เดคเดฟเดจเต† เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดถเตˆเดฒเดฟเด•เดณเตเดŸเต† เด’เดฐเต เด•เดพเดฑเตเดฑเดฒเต‹เด—เดพเด•เตเด•เดฟ เดชเตŠเดคเตเดตเตฝเด•เตเด•เดฐเดฟเดšเตเดšเต: `open-sse/services/compression/outputStyles/catalog.ts`-เดฒเต† `OUTPUT_STYLE_CATALOG`. เด“เดฐเต‹ เดถเตˆเดฒเดฟเดฏเตเด‚ เดฎเต‹เดกเตฝ เดคเดจเตเดจเต† เดšเต†เดฒเดตเต เด•เตเดฑเดžเตเดž เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚-เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฎเดพเดฃเต; เดถเตˆเดฒเดฟเด•เตพ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚, เด…เดต เด•เดพเดฑเตเดฑเดฒเต‹เด—เดฟเดฒเต† เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เด‡เตปเดœเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. | เดถเตˆเดฒเดฟ | `id` | เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต | เดจเดฟเตผเดฆเตเดฆเต‡เดถ เดญเดพเดทเด•เตพ | | ------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | เดธเด‚เด•เตเดทเดฟเดชเตเดค เด—เดฆเตเดฏเด‚ | `terse-prose` | เด…เดจเดพเดตเดถเตเดฏ เดชเดฆเด™เตเด™เตพ/เด†เตผเดŸเตเดŸเดฟเด•เตเด•เดฟเดณเตเด•เตพ/เดธเดจเตเดฆเดฟเด—เตเดงเดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเดจเตเดจเต; เดธเดพเด™เตเด•เต‡เดคเดฟเด• เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเดจเตเดฑเต† เด•เตƒเดคเตเดฏเดค เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. เดฒเต†เด—เดธเดฟ เด•เต‡เดตเตเดฎเดพเตป เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฎเต‹เดกเดฟเดฒเต† เด…เดคเต‡ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต (เดตเต€เดฃเตเดŸเตเด‚ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเดพเดคเต† เดฑเดซเดฑเตปเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต). | 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` | "เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดŽเดดเตเดคเดพเดคเตเดค เด•เต‹เดกเดพเดฃเต เดเดฑเตเดฑเดตเตเด‚ เดฎเดฟเด•เดšเตเดš เด•เต‹เดกเต": เดชเตเดจเดฐเตเดชเดฏเต‹เด—เด‚ > เดชเตเดจเดฐเต†เดดเตเดคเตเดคเต, เดฎเต‚เดฒเด•เดพเดฐเดฃเด‚ > เดฒเด•เตเดทเดฃเด‚, เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดเดฑเตเดฑเดตเตเด‚ เดšเต†เดฑเดฟเดฏ เดกเดฟเดซเต. | 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 | | เดธเด‚เด•เตเดทเดฟเดชเตเดค CJK (ๆ–‡่จ€) | `terse-cjk` | เด•เตเดฒเดพเดธเดฟเด•เตเด•เตฝ-เดšเตˆเดจเต€เดธเต เด…เดคเดฟเดธเด‚เด•เตเดทเดฟเดชเตเดค เดถเตˆเดฒเดฟ. | zh (เดฒเตŠเด•เตเด•เต‡เตฝ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเด‚: เดชเดฐเดฟเดนเดฐเดฟเดšเตเดš เดญเดพเดท `zh` เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเด‚ เดฒเดญเตเดฏเดฎเดพเด•เตเด‚) | เด“เดฐเต‹ เดถเตˆเดฒเดฟเด•เตเด•เตเด‚ `lite`, `full`, `ultra` เดŽเดจเตเดจเดฟเด™เตเด™เดจเต† เดฎเต‚เดจเตเดจเต เดคเต€เดตเตเดฐเดคเดพ เดจเดฟเดฒเด•เดณเตเดฃเตเดŸเต โ€” เด•เต‚เดŸเดพเดคเต† เด“เดฐเต‹ เดจเดฟเดฒเดฏเตเด‚ เดชเด™เตเด•เดฟเดŸเตเดŸ เดฌเต—เดฃเตเดŸเดฑเต€เดธเต เด•เตเดฒเต‹เดธเต‹เดŸเต†เดฏเดพเดฃเต เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเดคเต; เด‡เดคเต เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ, เดซเดฏเตฝ เดชเดพเดคเตเดคเตเด•เตพ, เด•เดฎเดพเตปเดกเตเด•เตพ, เดชเดฟเดถเด•เต เดธเตเดŸเตเดฐเดฟเด™เตเด™เตเด•เตพ, URLs, เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดต เด…เดคเต‡เดชเดŸเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. #### เด‡เตปเดœเด•เตเดทเตป เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต `applyOutputStyles()` (`open-sse/services/compression/outputStyles/apply.ts`) เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเดฟเดจเต† เด•เดพเดฑเตเดฑเดฒเต‹เด—เตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต (เด…เดœเตเดžเดพเดค ids-เด‰เด‚ เดฒเตŠเด•เตเด•เต‡เดฒเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเดพเดคเตเดค เดถเตˆเดฒเดฟเด•เดณเตเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ เดชเดฟเดถเด•เดพเด•เดฟเดฒเตเดฒ), เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด•เดพเดฑเตเดฑเดฒเต‹เด—เดฟเดฒเต† เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เดฌเต—เดฃเตเดŸเดฑเต€เดธเต เด•เตเดฒเต‹เดธเต **เด’เดฐเดฟเด•เตเด•เตฝ** เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เด’เดฐเตŠเดฑเตเดฑ เดเดกเด‚เดชเตŠเดŸเตเดŸเตปเดธเดฟ เดฎเดพเตผเด•เตเด•เดฑเดฟเดจเต (`[OmniRoute Output Styles]`) เดชเดฟเดจเตเดจเดพเดฒเต† เดซเดฒเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด‚เดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต โ€” เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดšเดพเตฝ เด’เดจเตเดจเตเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดพ เดญเดพเดทเดฏเตเด•เตเด•เต เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดฒเดญเตเดฏเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‡เด‚เด—เตเดฒเต€เดทเดฟเดจเต เดชเด•เดฐเด‚ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดตเตฝเด•เตเด•เดฐเดฟเดšเตเดš เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เด‡เตปเดœเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. #### เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚ เดกเดพเดทเตเดฌเต‹เตผเดกเดฟเตฝ: **Context โ†’ Settings โ†’ Compression** โ€” เด“เดฐเต‹ เดถเตˆเดฒเดฟเด•เตเด•เตเด‚ เด“เตบ/เด“เดซเต เดŸเต‹เด—เดฟเดณเตเด‚ เดฒเต†เดตเตฝ เดธเต†เดฒเด•เตเดŸเดฑเตเด‚ เด‰เดณเตเดณ เด“เดฐเต‹ เดจเดฟเดฐ. เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดพเดฑเตเดฑเดฟเด•เตเด•เดพเดฏเดฟ, เด•เด‚เดชเตเดฐเดทเตป เด•เต‹เตบเดซเดฟเด—เต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เด‡เดชเตเดฐเด•เดพเดฐเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต: ```json { "outputStyles": [ { "id": "i-have-adhd", "level": "full" }, { "id": "less-code", "level": "lite" } ] } ``` เดชเดฟเดจเตเดจเต‹เดŸเตเดŸเตเดณเตเดณ เด…เดจเตเดฏเต‹เดœเตเดฏเดค: เดฒเต†เด—เดธเดฟ `outputMode: "caveman"` เด•เต‹เด‚เดฌเต‹ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เด‡เดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ `terse-prose`-เดฒเต‡เด•เตเด•เต เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต; เดŽเดฒเตเดฒเดพ เดฒเต†เด—เดธเดฟ เดญเดพเดทเด•เดณเดฟเดฒเตเด‚ เดชเดดเดฏ เด‡เตปเดœเด•เตเดทเดจเตเดฎเดพเดฏเดฟ เด‡เดคเต เดฌเตˆเดฑเตเดฑเต เดคเดฒเดคเตเดคเดฟเตฝ เดธเดฎเดพเดจเดฎเดพเดฃเต. เดญเดพเดทเดพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต: `languageConfig.enabled` เด“เดฃเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, `autoDetect` เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเดท เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต (เด‡เตปเดชเตเดŸเตเดŸเต เดŽเดžเตเดšเดฟเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด…เดคเต‡ เดกเดฟเดฑเตเดฑเด•เตเดŸเตผ); `autoDetect` เด“เดซเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต `defaultLanguage` เดธเตเดฅเดฟเดฐเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด“เดซเต โ†’ เด‡เด‚เด—เตเดฒเต€เดทเต. เดถเตˆเดฒเดฟ ร— เดญเดพเดท เดฎเดพเดŸเตเดฐเดฟเด•เตเดธเต `tests/unit/compression/output-styles-i18n-matrix.test.ts` เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตเดฅเดฟเดฐเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต pt-BR เดตเดฟเดตเตผเดคเตเดคเดจเดฎเต†เด™เตเด•เดฟเดฒเตเด‚ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดค เด’เดฐเต เด’เดดเดฟเดตเดพเด•เตเด•เตฝ) เด‡เดฒเตเดฒเดพเดคเต† เดชเตเดคเดฟเดฏ เดถเตˆเดฒเดฟ เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ; เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดถเตˆเดฒเดฟเด•เตเด•เต เด’เดฐเต เดฒเตŠเด•เตเด•เต‡เตฝ เดจเดฟเดถเตเดถเดฌเตเดฆเดฎเดพเดฏเดฟ เดจเดทเตเดŸเดชเตเดชเต†เดŸเดพเดจเตเด‚ เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด’เดฐเต เดถเตˆเดฒเดฟ เดšเต‡เตผเด•เตเด•เดพเตป, [EXTENDING_COMPRESSION.md](./EXTENDING_COMPRESSION.md#adding-an-output-style) เด•เดพเดฃเตเด•. ### เดŸเต‚เตพ เดซเดฒ เด•เด‚เดชเตเดฐเดทเตป เดŸเต‚เตพ เดซเดฒเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ (เดซเด™เตเดทเตป เด•เต‹เดณเตเด•เตพ, เดเดœเดจเตเดฑเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเด•เตพ, เดคเดฟเดฐเดฏเตฝ เดซเดฒเด™เตเด™เตพ เดคเตเดŸเด™เตเด™เดฟเดฏเดต) `toolResultCompressor.ts` เดฎเตŠเดกเตเดฏเต‚เตพ **5 เดชเตเดฐเดคเตเดฏเต‡เด• เด•เด‚เดชเตเดฐเดทเตป เดคเดจเตเดคเตเดฐเด™เตเด™เตพ** เดจเตฝเด•เตเดจเตเดจเต: 1. **เดคเดฟเดฐเดฏเตฝ เดซเดฒ เด•เด‚เดชเตเดฐเดทเตป** โ€” เด†เดตเตผเดคเตเดคเดจ เดซเดฒเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดฎเดฟเด•เดšเตเดš N เดซเดฒเด™เตเด™เตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต 2. **เดซเดฏเตฝ เดฑเต€เดกเต เด•เด‚เดชเตเดฐเดทเตป** โ€” เดตเดฒเดฟเดฏ เดซเดฏเดฒเตเด•เตพ เดšเตเดฐเตเด•เตเด•เตเดจเตเดจเต, เดนเต†เดกเดฑเตเด•เตพ/เด‡เด‚เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต 3. **เด•เต‹เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เด•เด‚เดชเตเดฐเดทเตป** โ€” เด…เดคเตเดฏเดพเดตเดถเตเดฏเดฎเดพเดฏ stdout/stderr เดฎเดพเดคเตเดฐเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต 4. **เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด•เตเดตเดฑเดฟ เด•เด‚เดชเตเดฐเดทเตป** โ€” เดตเดฐเดฟเด•เตพ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เด…เดฎเดฟเดคเดตเดฟเดตเดฐเดฎเตเดณเตเดณ เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต 5. **API เดชเตเดฐเดคเดฟเด•เดฐเดฃ เด•เด‚เดชเตเดฐเดทเตป** โ€” null เดซเต€เตฝเดกเตเด•เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดฑเต‡เด•เตพ เดšเตเดฐเตเด•เตเด•เตเดจเตเดจเต #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เดŸเต‚เตพ เด•เต‹เดณเตเด•เตพ เด‰เดณเตเดณเดชเตเดชเต‹เตพ เดŸเต‚เตพ เดซเดฒ เด•เด‚เดชเตเดฐเดทเตป **เดŽเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเดฃเต**. เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. ### เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เดฎเต‹เดกเต **เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดŽเดžเตเดšเดฟเดจเตเด•เตพ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ** เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต โ€” เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด†เดฆเตเดฏเด‚ RTK (เดŸเต‚เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ 60-90% เดฒเดพเดญเด‚), เดคเตเดŸเตผเดจเตเดจเต Caveman (เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดŸเต†เด•เตเดธเตเดฑเตเดฑเดฟเตฝ 30% เด…เดงเดฟเด• เดฒเดพเดญเด‚). เด‡เดคเต **เด†เด•เต† 78-95% เดฒเดพเดญเด‚** เดจเตฝเด•เตเดจเตเดจเต. #### เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต ``` เด‡เตปเดชเตเดŸเตเดŸเต (1000 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ) โ†’ RTK (เด•เดฎเดพเตปเดกเต-เด…เดตเดฌเต‹เดงเดฎเตเดณเตเดณ เดซเดฟเตฝเดŸเตเดŸเตผ) โ†’ 200 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ โ†’ Caveman (เด…เดจเดพเดตเดถเตเดฏ เดชเดฆเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตฝ) โ†’ 140 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ โ†’ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต (140 เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, 86% เดฒเดพเดญเด‚) ``` #### เดŽเดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เด‡เดตเดฏเตเด•เตเด•เดพเดฏเดฟ เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•: - เดŸเต‚เตพ-เด•เต‡เดจเตเดฆเตเดฐเต€เด•เตƒเดค เดตเตผเด•เตเด•เตเดซเตเดฒเต‹เด•เตพ (เดเดœเดจเตเดฑเดฟเด•เต เด•เต‹เดกเดฟเด‚เด—เต, เด—เดตเต‡เดทเดฃเด‚) - เดšเต†เดฒเดตเต-เดชเตเดฐเดงเดพเดจเดฎเดพเดฏ เดฌเดพเดšเตเดšเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต - เดชเดฐเดฎเดพเดตเดงเดฟ เดŸเต‹เด•เตเด•เตบ เดฒเดพเดญเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดชเตเดชเต‹เตพ เด•เต‹เด‚เดฌเต‹ เดตเดดเดฟ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•: ```json { "strategy": "auto", "config": { "auto": { "modePack": "stacked" } } } ``` --- ## เด•เต‹เด‚เดชเตเดฐเดทเตป เด•เต‹เด‚เดฌเต‹ เด“เดตเตผเดฑเตˆเดกเตเด•เตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เด‰เดชเดฏเต‹เด—เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเด‚ เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด—เตเดฒเต‹เดฌเตฝ เด•เต‹เด‚เดชเตเดฐเดทเตป เดฎเต‹เดกเต **เด“เดฐเต‹ เด•เต‹เด‚เดฌเต‹เดฏเตเด•เตเด•เตเด‚** เด“เดตเตผเดฑเตˆเดกเต เดšเต†เดฏเตเดฏเดพเด‚: ```json { "id": "coding-combo", "strategy": "priority", "config": { "auto": { "weights": { "taskFit": 0.5 }, "modePack": "quality-first" } }, "compressionOverride": { "mode": "aggressive", "stackedPipelines": ["rtk", "caveman"], "preserveToolDefinitions": true } } ``` เด‡เดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเตเด•เตเด•เต เด‰เดชเด•เดพเดฐเดชเตเดฐเดฆเดฎเดพเดฃเต: - **เด•เต‹เดกเดฟเด‚เด—เต เด•เต‹เด‚เดฌเต‹เด•เตพ**: เดฆเต€เตผเด˜เดฎเดพเดฏ เดธเต†เดทเดจเตเด•เตพเด•เตเด•เดพเดฏเดฟ `aggressive` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• - **เดฆเตเดฐเตเดค เดšเต‹เดฆเตเดฏเต‹เดคเตเดคเดฐ เด•เต‹เด‚เดฌเต‹เด•เตพ**: เดตเต‡เด—เดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ `lite` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• - **เดŸเต‚เดณเตเด•เตพ เด•เต‚เดŸเตเดคเดฒเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เด‚เดฌเต‹เด•เตพ**: เดชเดฐเดฎเดพเดตเดงเดฟ เดฒเดพเดญเดคเตเดคเดฟเดจเดพเดฏเดฟ `stacked` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• - **เดชเตเดฐเตŠเดกเด•เตเดทเตป เด•เต‹เด‚เดฌเต‹เด•เตพ**: เด•เดพเดทเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ `cache-aware` เดฎเต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• --- ## เด‡เดคเตเด‚ เด•เดพเดฃเตเด• - [เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป](../reference/ENVIRONMENT.md) โ€” เด•เต‹เด‚เดชเตเดฐเดทเตป เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ - [เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ เด—เตˆเดกเต](../architecture/ARCHITECTURE.md) โ€” เด•เต‹เด‚เดชเตเดฐเดทเตป เดชเตˆเดชเตเดชเตเดฒเตˆเดจเดฟเดจเตเดฑเต† เด†เดจเตเดคเดฐเดฟเด• เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ - [เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด—เตˆเดกเต](../guides/USER_GUIDE.md) โ€” เด•เต‹เด‚เดชเตเดฐเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตฝ - [RTK เด•เต‹เด‚เดชเตเดฐเดทเตป](./RTK_COMPRESSION.md) โ€” RTK เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ, เดตเดฟเดถเตเดตเดพเดธ เดฎเต‹เดกเตฝ, เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃ เด—เต‡เดฑเตเดฑเต, เด…เดธเด‚เดธเตเด•เตƒเดค เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตฝ - [เด•เต‹เด‚เดชเตเดฐเดทเตป เดŽเตปเดœเดฟเดจเตเด•เตพ](./COMPRESSION_ENGINES.md) โ€” Caveman, RTK, เดธเตเดฑเตเดฑเดพเด•เตเด•เตเดกเต, API-เด•เตพ, MCP, เดกเดพเดทเตเดฌเต‹เตผเดกเต - [เด•เต‹เด‚เดชเตเดฐเดทเตป เดจเดฟเดฏเดฎเด™เตเด™เดณเตเดŸเต† เดซเต‹เตผเดฎเดพเดฑเตเดฑเต](./COMPRESSION_RULES_FORMAT.md) โ€” JSON เดฑเต‚เตพ-เดชเดพเด•เตเด•เต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต - [เด•เต‹เด‚เดชเตเดฐเดทเตป เดญเดพเดทเดพ เดชเดพเด•เตเด•เตเด•เตพ](./COMPRESSION_LANGUAGE_PACKS.md) โ€” เดญเดพเดทเดพ-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ Caveman เดจเดฟเดฏเดฎเด™เตเด™เตพ