# ๐Ÿ—œ๏ธ 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) ยท ๐Ÿ‡ฎ๐Ÿ‡ณ [ml](../../../ml/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) ยท ๐Ÿ‡ต๐Ÿ‡ญ [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 เจšเจฟเฉฑเจคเจฐ เจกเจพเจŸเจพ URIs เจจเฉ‚เฉฐ เจ›เฉ‹เจŸเจพ เจ•เจฐเฉ‹ | **เจ‡เจธ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ†:** เจนเจฎเฉ‡เจธเจผเจพ-เจšเจพเจฒเฉ‚ เจตเจฐเจคเฉ‹เจ‚, เจธเฉเจฐเฉฑเจ–เจฟเจ†-เจจเจพเจœเจผเฉเจ• เจตเจฐเจ•เจซเจผเจฒเฉ‹เฅค ### เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฎเฉ‹เจก (~30% เจฌเจšเจค) [Caveman](https://github.com/JuliusBrussee/caveman) เจคเฉ‹เจ‚ เจชเฉเจฐเฉ‡เจฐเจฟเจค โ€” เจ…เจฐเจฅ เจจเฉ‚เฉฐ เจฌเจฐเจ•เจฐเจพเจฐ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจซเจผเจพเจฒเจคเฉ‚ เจธเจผเจฌเจฆ เจ…เจคเฉ‡ เจฌเฉ‡เจฒเฉ‹เฉœเฉ€ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเจพเจ•-เจฐเจšเจจเจพ เจนเจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ: - เจซเจผเจพเจฒเจคเฉ‚ เจธเจผเจฌเจฆ เจนเจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ ("เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡", "เจฎเฉ‡เจฐเฉ‡ เจ–เจผเจฟเจ†เจฒ เจตเจฟเฉฑเจš", "เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš", "เจ…เจธเจฒ เจตเจฟเฉฑเจš") - เจฌเฉ‡เจฒเฉ‹เฉœเฉ‡ เจฒเฉฐเจฎเฉ‡ เจตเจพเจ•เจพเจ‚เจธเจผ เจธเฉฐเจ–เฉ‡เจช เจ•เจฐเจฆเจพ เจนเฉˆ ("เจ•เจฐเจจ เจฆเฉ‡ เจ‰เจฆเฉ‡เจธเจผ เจจเจพเจฒ" โ†’ "เจ•เจฐเจจ เจฒเจˆ", "เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚" โ†’ "เจ•เจฟเจ‰เจ‚เจ•เจฟ") - เจจเจฟเจฎเจฐ เจ…เจจเจฟเจธเจผเจšเจฟเจคเจคเจพ เจตเจพเจฒเฉ€ เจญเจพเจธเจผเจพ เจนเจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ ("เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจคเจฐเจพเจœเจผ เจนเฉ‹เจตเฉ‡เจ—เจพ...", "เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเฉฐเจญเจต เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฐ เจธเจ•เฉ‹...") - เจ•เฉ‹เจกเจฟเฉฐเจ— เจชเฉเจฐเฉŒเจ‚เจชเจŸเจพเจ‚ เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจฟเจค 30+ regex เจจเจฟเจฏเจฎ **เจ‡เจธ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ†:** เจฐเฉ‹เจœเจผเจพเจจเจพ เจ•เฉ‹เจกเจฟเฉฐเจ— เจตเจฐเจ•เจซเจผเจฒเฉ‹, เจฒเจพเจ—เจค เจชเฉเจฐเจคเฉ€ เจธเจšเฉ‡เจค เจŸเฉ€เจฎเจพเจ‚เฅค ### เจ…เจ—เจฐเฉˆเจธเจฟเจต เจฎเฉ‹เจก (~50% เจฌเจšเจค) เจฒเฉฐเจฎเฉ‡ เจธเฉˆเจธเจผเจจเจพเจ‚ เจฒเจˆ เจธเจฎเจพเจฐเจŸ เจ‡เจคเจฟเจนเจพเจธ เจชเฉเจฐเจฌเฉฐเจงเจจ: - **เจธเฉเจจเฉ‡เจนเจพ เจเจœเจฟเฉฐเจ—** โ€” เจชเฉเจฐเจพเจฃเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจ•เฉเจฐเจฎเจตเจพเจฐ เจตเฉฑเจง เจ•เฉฐเจชเฉเจฐเฉˆเฉฑเจธ เจนเฉเฉฐเจฆเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ - **เจŸเฉ‚เจฒ เจจเจคเฉ€เจœเจพ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ** โ€” เจฒเฉฐเจฎเฉ‡ เจŸเฉ‚เจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจ•เฉฑเจŸเจฟเจ† เจœเจพเจ‚ เจนเจŸเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจชเจนเจฟเจฒเฉ€เจ†เจ‚/เจ†เจ–เจผเจฐเฉ€ เจฒเจพเจˆเจจเจพเจ‚, เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ€ เจซเจฟเจฒเจŸเจฐเจฟเฉฐเจ—, JSON เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจฆเจพ เจธเฉฐเจ•เฉเจšเจจ) - **เจธเฉฐเจฐเจšเจจเจพเจคเจฎเจ• เจ…เจ–เฉฐเจกเจคเจพ เจธเฉเจฐเฉฑเจ–เจฟเจ†** โ€” เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ `tool_use` + `tool_result` เจœเฉ‹เฉœเฉ‡ เจ‡เจ•เจธเจพเจฐ เจฐเจนเจฟเจฃ - **เจธเฉฐเจฆเจฐเจญ เจตเจฟเฉฐเจกเฉ‹ เจœเจพเจ—เจฐเฉ‚เจ•เจคเจพ** โ€” เจนเจฐ เจฎเจพเจกเจฒ เจฆเฉ€ เจŸเฉ‹เจ•เจจ เจธเฉ€เจฎเจพ เจฆเจพ เจ†เจฆเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ **เจ‡เจธ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ†:** เจตเจฟเจธเจคเฉเจฐเจฟเจค เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจธเฉˆเจธเจผเจจ, เจตเฉฑเจกเฉ‡ เจ•เฉ‹เจกเจฌเฉ‡เจธเฅค ### เจ…เจฒเจŸเจฐเจพ เจฎเฉ‹เจก (~75% เจฌเจšเจค) เจŸเฉ‹เจ•เจจ-เจจเจพเจœเจผเฉเจ• เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจฒเจˆ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ: - **เจนเจฟเจŠเจฐเจฟเจธเจŸเจฟเจ• เจ›เจพเจ‚เจŸเฉ€** โ€” เจ—เฉฑเจฆ เจฆเฉ€ เจธเจ•เฉ‹เจฐ-เจ…เจงเจพเจฐเจฟเจค เจŸเฉ‹เจ•เจจ เจ›เจพเจ‚เจŸเฉ€ - **เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจธเฉฐเจญเจพเจฒ** โ€” เจซเฉˆเจ‚เจธ เจ•เฉ€เจคเฉ‡ เจ•เฉ‹เจก เจฌเจฒเจพเจ•, เจ‡เจจเจฒเจพเจˆเจจ เจ•เฉ‹เจก, URLs เจ…เจคเฉ‡ เจชเจ›เจพเจฃเจ•เจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจŸเฉŒเจฎเจธเจŸเฉ‹เจจ เจ•เจฐเจ•เฉ‡ เจฎเฉเฉœ เจธเจผเจฌเจฆ-เจฌ-เจธเจผเจฌเจฆ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ•เจฆเฉ‡ เจตเฉ€ เจ›เจพเจ‚เจŸเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ - **เจตเจฟเจ•เจฒเจชเจฟเจ• 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 schema 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% ``` เจ‡เจน `78-95%` เจ…เฉฐเจ• เจ‰เจฆเฉ‹เจ‚ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ RTK เจ…เจคเฉ‡ Caveman เจฆเฉ‹เจตเฉ‡เจ‚ เจ‡เฉฑเจ•เฉ‹ เจ‡เจจเจชเฉเฉฑเจŸ/เจ•เจพเจ‚เจŸเฉˆเจ•เจธเจŸ เจชเฉ‡เจฒเฉ‹เจก เจจเฉ‚เฉฐ เจ˜เจŸเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เจฃเฅค 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` เจฎเฉ‡เจฒ เจธเฉ‚เจšเฉ€, เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจซเจผเจพเจˆเจฒ เจฐเฉ€เจก, เจ†เจฎ เจ—เฉฑเจฒเจฌเจพเจคเฉ€ เจฒเจฟเจ–เจค) เจ‰เฉฑเจคเฉ‡ เจšเจฒเจพเจˆ เจ—เจˆ เจ‰เจนเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ **เจฒเจ—เจญเจ—-เจธเจฟเจซเจผเจฐ เจฌเฉฑเจšเจค** เจชเฉˆเจฆเจพ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจนเจŸเจพเจ‰เจฃ เจฒเจˆ เจ•เฉเจ เจตเฉ€ เจฆเฉเจนเจฐเจพเจ‡เจ† เจนเฉ‹เจ‡เจ† เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจ…เจคเฉ‡ `validateCompression()` (`validation.ts`) เจ…เจœเจฟเจนเฉ€ เจฎเฉเฉœ-เจฒเจฟเจ–เจค เจญเฉ‡เจœเจฃ เจคเฉ‹เจ‚ เจ‡เจจเจ•เจพเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เฉ‹เจก เจฌเจฒเจพเจ•เจพเจ‚, URLs, เจธเจฟเจฐเจฒเฉ‡เจ–เจพเจ‚, เจตเจฐเจœเจจเจพเจ‚, เจœเจพเจ‚ ALL-CAPS เจ•เจพเจ‚เจธเจŸเฉˆเจ‚เจŸ เจ†เจˆเจกเฉˆเจ‚เจŸเฉ€เจซเจพเจ‡เจฐเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพ เจœเจพเจ‚ เจฌเจฆเจฒ เจฆเฉ‡เจตเฉ‡เฅค เจ‡เจน เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเจพ เจ—เจฟเจ†, เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจฟเจนเจพเจฐ เจนเฉˆ, เจ•เฉ‹เจˆ เจฌเฉฑเจ— เจจเจนเฉ€เจ‚: เจ‡เฉฑเจ• เจ•เฉ‹เจกเจฟเฉฐเจ— เจธเฉˆเจธเจผเจจ เจœเฉ‹ เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจพเจซเจผ เจซเจผเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจฆเจพ/grep เจ•เจฐเจฆเจพ เจนเฉˆ, เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจฎเจฐเฉฑเจฅ เจนเฉ‹เจฃ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ เจ•เฉเฉฑเจฒ เจฌเฉฑเจšเจค เจ˜เฉฑเจŸ เจฆเฉ‡เจ–เฉ‡เจ—เจพ, เจœเจฆเจ•เจฟ เจ‡เฉฑเจ• เจ…เจœเจฟเจนเจพ เจธเฉˆเจธเจผเจจ เจœเฉ‹ เจ…เจธเจซเจฒ เจนเฉ‹ เจฐเจนเฉ‡ เจฒเฉ‚เจช เจœเจพเจ‚ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจฃ เจตเจพเจฒเฉ‡ linter เจจเจพเจฒ เจŸเจ•เจฐเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจ‰เจธ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจ‰เฉฑเจคเฉ‡ เจชเฉ‚เจฐเฉ€ 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 เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจ…เจคเฉ‡ เจซเจฟเจฒเจŸเจฐ เจ•เฉˆเจŸเจพเจฒเจพเจ— - **เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจ•เฉฐเจฌเฉ‹** โ€” เจฐเจพเจŠเจŸเจฟเฉฐเจ— เจ•เฉฐเจฌเฉ‹เจœเจผ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเฉ€เจ†เจ‚ เจจเจพเจฎเจฟเจค เจ‡เฉฐเจœเจฃ เจชเจพเจˆเจชเจฒเจพเจˆเจจเจพเจ‚ - **เจ†เจŸเฉ‹-เจŸเฉเจฐเจฟเจ—เจฐ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก** โ€” เจŸเฉ‹เจ•เจจ เจ—เจฟเจฃเจคเฉ€ เจฆเฉ‡ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก เจคเฉ‹เจ‚ เจตเฉฑเจง เจœเจพเจฃ 'เจคเฉ‡ เจ†เจชเจฃเฉ‡-เจ†เจช เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹ ### เจชเฉเจฐเจคเฉ€-เจ•เฉฐเจฌเฉ‹ เจ“เจตเจฐเจฐเจพเจˆเจก `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 ``` เจ‡เจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจญเฉเจ—เจคเจพเจจเจธเจผเฉเจฆเจพ เจธเจฌเจธเจ•เฉเจฐเจฟเจชเจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจฒเจพเจˆเจŸ เจฎเฉ‹เจก เจฌเจฐเจ•เจฐเจพเจฐ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจฎเฉเจซเจผเจค/เจ•เฉ‹เจกเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ 'เจคเฉ‡ เจธเจŸเฉˆเจ•เจก เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน "เจชเฉเจฐเจคเฉ€-เจ•เฉฐเจฌเฉ‹ เจ“เจตเจฐเจฐเจพเจˆเจก" เจ…เจธเจพเจˆเจจเจฎเฉˆเจ‚เจŸ **เจฐเจพเจŠเจŸเจฟเฉฐเจ—-เจ•เฉฐเจฌเฉ‹ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจฎเฉ‹เจก** เจ“เจตเจฐเจฐเจพเจˆเจก (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` เจฌเฉ‡เจจเจคเฉ€ เจนเฉˆเจกเจฐ เจญเฉ‡เจœเฉ‹เฅค เจ‡เจธ เจฆเฉ€ เจคเจฐเจœเฉ€เจน เจธเจญ เจคเฉ‹เจ‚ เจ‰เฉฑเจšเฉ€ เจนเฉˆ โ€” เจ‡เจน เจฐเจพเจŠเจŸเจฟเฉฐเจ—-เจ•เฉฐเจฌเฉ‹ เจ“เจตเจฐเจฐเจพเจˆเจก, เจธเจฐเจ—เจฐเจฎ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ, เจ†เจŸเฉ‹-เจŸเฉเจฐเจฟเจ—เจฐ เจ…เจคเฉ‡ เจชเฉˆเจจเจฒ เจกเจฟเจซเจพเจฒเจŸ เจคเฉ‹เจ‚ เจ‰เฉฑเจชเจฐ เจนเฉˆเฅค เจ…เจฃเจœเจพเจฃ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจฃเจกเจฟเฉฑเจ เจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจฌเฉ‡เจจเจคเฉ€ เจ•เจฆเฉ‡ เจตเฉ€ เจฐเฉฑเจฆ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€) เจ…เจคเฉ‡ เจ—เจฒเฉ‹เจฌเจฒ เจฎเจพเจธเจŸเจฐ เจธเจตเจฟเฉฑเจš เจซเจฟเจฐ เจตเฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ: เจœเจฆเฉ‹เจ‚ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจ—เจฒเฉ‹เจฌเจฒ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเฉฐเจฆ เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ เจนเฉˆเจกเจฐ เจ‡เจธ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพเฅค เจฎเฉเฉฑเจฒ: | เจฎเฉเฉฑเจฒ | เจชเฉเจฐเจญเจพเจต | | ------------- | ----------------------------------------------------------------------------------------------------------- | | `off` | เจ‡เจธ เจฌเฉ‡เจจเจคเฉ€ เจฒเจˆ เจ•เฉ‹เจˆ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจจเจนเฉ€เจ‚เฅค | | `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"}' ``` --- ## เจ•เฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉฑเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจ‡เฉฐเจœเจฃ **เจนเจฎเฉ‡เจธเจผเจพ เจ‡เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ:** - โœ… เจ•เฉ‹เจก เจฌเจฒเจพเจ• (เจซเฉˆเจ‚เจธเจก เจ…เจคเฉ‡ เจ‡เจจเจฒเจพเจˆเจจ) - โœ… URLs เจ…เจคเฉ‡ เจซเจผเจพเจˆเจฒ เจชเจพเจฅ - โœ… 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 (`contextBudget` on `PUT /api/settings/compression`) + เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจฎเฉ‹เจก/เจจเฉ€เจคเฉ€ เจ•เฉฐเจŸเจฐเฉ‹เจฒ | โœ… เจœเจพเจฐเฉ€ เจ•เฉ€เจคเจพ | --- ## เจงเฉฐเจจเจตเจพเจฆ Standard เจฎเฉ‹เจก เจฆเฉ‡ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจจเจฟเจฏเจฎ **[JuliusBrussee](https://github.com/JuliusBrussee)** เจฆเฉ‡ **[Caveman](https://github.com/JuliusBrussee/caveman)** (โญ 51K+) เจคเฉ‹เจ‚ เจชเฉเจฐเฉ‡เจฐเจฟเจค เจนเจจ โ€” เจตเจพเจ‡เจฐเจฒ "เจœเจฆเฉ‹เจ‚ เจฅเฉ‹เฉœเฉเจนเฉ‡ เจŸเฉ‹เจ•เจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจŸเฉ‹เจ•เจจ เจ•เจฟเจ‰เจ‚ เจตเจฐเจคเจฃเฉ‡" เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเฅค Caveman เจฎเฉเจคเจพเจฌเจ• เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจŸเฉ‹เจ•เจจ `~75%` เจ˜เฉฑเจŸ, เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• 'เจคเฉ‡ เจ”เจธเจค เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฌเฉฑเจšเจค `65%`, เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฐเฉ‡เจ‚เจœ `22-87%`, เจ…เจคเฉ‡ เจ‡เฉฑเจ• `~46%` เจ‡เจจเจชเฉเฉฑเจŸ-เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจŸเฉ‚เจฒ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค 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` เจฎเฉ‹เจกเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจน เจ—เจพเจˆเจก เจ•เจตเจฐ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€), เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจญเจพเจ— เจ‰เจนเจจเจพเจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจตเจฐ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจฎเฉ‹เจกเจพเจ‚ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจœเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ: เจŸเฉ‚เจฒ เจจเจคเฉ€เจœเจพ เจธเฉฐเจ•เฉเจšเจจ เจ…เจคเฉ‡ เจชเฉเจฐเจ—เจคเฉ€เจธเจผเฉ€เจฒ เจเจœเจฟเฉฐเจ— เจนเจฎเจฒเจพเจตเจฐ เจ‡เฉฐเจœเจฃ เจฆเฉ‡ เจชเฉœเจพเจ… 1 เจ…เจคเฉ‡ 2 เจนเจจ (เจนเจฎเจฒเจพเจตเจฐ เจฎเฉ‹เจก เจ…เจคเฉ‡ เจธเจŸเฉˆเจ• เจ•เฉ€เจคเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฆเจพ เจ‡เฉฑเจ• `aggressive` เจชเฉœเจพเจ…), เจธเจŸเฉˆเจ• เจ•เฉ€เจคเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจ‰เจน เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจธเจŸเฉˆเจ•เจก เจฎเฉ‹เจก เจšเฉฑเจฒเจฆเจพ เจนเฉˆ, เจ•เฉˆเจธเจผ-เจ…เจตเฉ‡เจ…เจฐ เจธเฉฐเจ•เฉเจšเจจ เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฒเจˆ `aggressive` เจ…เจคเฉ‡ `ultra` เจจเฉ‚เฉฐ `standard` เจตเจฟเฉฑเจš เจกเจพเจŠเจจเจ—เฉเจฐเฉ‡เจก เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจธเฉฐเจ•เฉเจšเจจ เจšเจพเจฒเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฎเฉˆเจจ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฎเฉ‹เจก เจ…เจคเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจธเจŸเจพเจˆเจฒ เจšเฉ‹เจฃเจตเฉ€เจ†เจ‚ เจธเจฟเจธเจŸเจฎ-เจชเฉเจฐเฉŒเจฎเจชเจŸ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจนเจจ, เจœเฉ‹ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเฉฐเจฆ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจฌเฉ‡เจจเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉเจšเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฌเจœเจพเจ เจฎเจพเจกเจฒ เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจฐเฉ‚เจช เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค ### เจ•เฉˆเจธเจผ-เจ…เจตเฉ‡เจ…เจฐ เจธเฉฐเจ•เฉเจšเจจ เจ•เฉเจ เจชเฉเจฐเจฆเจพเจคเจพ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเฉเจฐเฉŒเจฎเจชเจŸ เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจตเจพเจฒเจพ Anthropic) **เจชเฉเจฐเฉŒเจฎเจชเจŸ เจ•เฉˆเจธเจผเจฟเฉฐเจ—** เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เจค เจ…เจคเฉ‡ เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€ เจ˜เจŸเจพเจ‰เจฃ เจฒเจˆ เจชเฉเจฐเฉŒเจฎเจชเจŸ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจ•เฉˆเจธเจผ เจ•เจฐเจจ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจธเจฎเจฐเฉฑเจฅ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจนเจฎเจฒเจพเจตเจฐ เจธเฉฐเจ•เฉเจšเจจ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจจเฉ‚เฉฐ **เจจเฉเจ•เจธเจพเจจ** เจชเจนเฉเฉฐเจšเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจŸเฉ‹เจ•เจจเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจ•เฉˆเจธเจผ เจ…เจตเฉˆเจง เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค `cachingAware.ts` เจฎเฉ‹เจกเฉ€เจŠเจฒ **เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจธเฉฐเจฆเจฐเจญ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพ เจ•เฉ‡** เจ…เจคเฉ‡ เจ‰เจธ เจ…เจจเฉเจธเจพเจฐ **เจธเฉฐเจ•เฉเจšเจจ เจฐเจฃเจจเฉ€เจคเฉ€ เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจ•เฉ‡** เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค #### เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ 1. **เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจธเฉฐเจฆเจฐเจญ เจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ“** โ€” `cache_control` เจฎเจพเจฐเจ•เจฐเจพเจ‚ เจฒเจˆ เจฌเฉ‡เจจเจคเฉ€ เจฌเฉŒเจกเฉ€ เจจเฉ‚เฉฐ เจธเจ•เฉˆเจจ เจ•เจฐเจฆเจพ เจนเฉˆ 2. **เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเฉ‹** โ€” เจœเจพเจ‚เจšเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจŸเจพเจฐเจ—เฉ‡เจŸ เจชเฉเจฐเจฆเจพเจคเจพ เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ 3. **เจฐเจฃเจจเฉ€เจคเฉ€ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเฉ‹** โ€” เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจฒเจˆ `aggressive`/`ultra` เจจเฉ‚เฉฐ `standard` เจตเจฟเฉฑเจš เจกเจพเจŠเจจเจ—เฉเจฐเฉ‡เจก เจ•เจฐเจฆเจพ เจนเฉˆ 4. **เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเฉŒเจฎเจชเจŸ เจ›เฉฑเจกเฉ‹** โ€” เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเฉŒเจฎเจชเจŸ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ‡เจธ เจฒเจˆ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉเจšเจฟเจค เจจเจพ เจ•เจฐเฉ‹ เจฐเจฃเจจเฉ€เจคเฉ€ เจนเฉˆเจฒเจชเจฐ เจ‡เฉฑเจ• `deterministicOnly` เจซเจฒเฉˆเจ— เจตเฉ€ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจฏเฉ‹เจœเจจเจพ เจฌเจฟเจฒเจกเจฐ เจ•เฉ‡เจตเจฒ เจฐเจฃเจจเฉ€เจคเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ โ€” เจ‡เจธ เจตเฉ‡เจฒเฉ‡ เจกเจพเจŠเจจเจธเจŸเฉเจฐเฉ€เจฎ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจตเฉ€ เจ‡เจธ เจซเจฒเฉˆเจ— เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจชเฉœเฉเจนเจฆเจพเฅค #### เจ•เฉ‹เจก เจ‰เจฆเจพเจนเจฐเจจ ```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 } ``` #### เจ•เจฆเฉ‹เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ เจ•เฉˆเจธเจผ-เจ…เจตเฉ‡เจ…เจฐ เจธเฉฐเจ•เฉเจšเจจ **เจนเจฎเฉ‡เจธเจผเจพ เจšเจพเจฒเฉ‚** เจนเฉเฉฐเจฆเจพ เจนเฉˆ โ€” เจ•เจฟเจธเฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚เฅค เจ‡เจน เจ‰เจฆเฉ‹เจ‚ เจธเจฐเจ—เจฐเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจธเฉฐเจ•เฉเจšเจจ เจšเจพเจฒเฉ‚ เจนเฉ‹เจตเฉ‡ เจ…เจคเฉ‡ เจŸเจพเจฐเจ—เฉ‡เจŸ เจชเฉเจฐเจฆเจพเจคเจพ เจชเฉเจฐเฉŒเจฎเจชเจŸ เจ•เฉˆเจธเจผเจฟเฉฐเจ— (Anthropic, OpenAI, เจ†เจฆเจฟ) เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉ‹เจตเฉ‡; เจธเจชเจธเจผเจŸ `cache_control` เจฎเจพเจฐเจ•เจฐเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ โ€” เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ•เฉˆเจธเจผเจฟเฉฐเจ— เจชเฉเจฐเจฆเจพเจคเจพ เจนเฉ€ เจกเจพเจŠเจจเจ—เฉเจฐเฉ‡เจก เจจเฉ‚เฉฐ เจŸเฉเจฐเจฟเจ—เจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจธเจฟเจฐเจซเจผ เจฎเจพเจฐเจ•เจฐ เจ•เจฆเฉ‡ เจตเฉ€ เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ (เจฎเจพเจฐเจ•เจฐ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เฉˆเจธเจผ เจŸเฉˆเจฒเฉ€เจฎเฉˆเจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจซเฉ€เจก เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจฐเจฃเจจเฉ€เจคเฉ€ เจซเฉˆเจธเจฒเฉ‡ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚)เฅค ### เจชเฉเจฐเจ—เจคเฉ€เจธเจผเฉ€เจฒ เจเจœเจฟเฉฐเจ— เจฒเฉฐเจฌเฉ€เจ†เจ‚ เจ—เฉฑเจฒเจฌเจพเจคเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเฉเจจเฉ‡เจนเจพ เจŸเจฐเจจ เจ‡เจ•เฉฑเจ เฉ‡ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจชเจฐ เจชเฉเจฐเจพเจฃเฉ‡ เจŸเจฐเจจ เจ˜เฉฑเจŸ เจชเฉเจฐเจธเฉฐเจ—เจฟเจ• เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค `progressiveAging.ts` เจฎเฉ‹เจกเฉ€เจŠเจฒ **เจŸเจฐเจจ เจฆเฉ‚เจฐเฉ€ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ** (เจฆเฉ‚เจฐเฉ€ เจ—เฉฑเจฒเจฌเจพเจค เจฆเฉ‡ เจ…เฉฐเจค เจคเฉ‹เจ‚ เจฎเจพเจชเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ)เฅค เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจกเจฟเจซเจพเจฒเจŸเจพเจ‚ (`verbatim: 2, light: 2, moderate: 3`) เจจเจพเจฒ: - **เจ†เจ–เจฐเฉ€ 2 เจŸเจฐเจจ (เจฆเฉ‚เจฐเฉ€ โ‰ค 2)**: เจœเจฟเจ‰เจ‚ เจฆเฉ‡ เจคเจฟเจ‰เจ‚ เจฐเฉฑเจ–เฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ - **เจฆเฉ‚เจฐเฉ€ 3**: เจ•เฉ‡เจตเจฎเฉˆเจจ เจธเฉฐเจ•เฉเจšเจจ (เจซเจผเจœเจผเฉ‚เจฒ เจธเจฎเฉฑเจ—เจฐเฉ€ เจนเจŸเจพเจ‰เจฃเจพ) - **เจฆเฉ‚เจฐเฉ€ 4+**: เจ…เจธเจฟเจธเจŸเฉˆเจ‚เจŸ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเจพ เจธเจพเจฐ เจฌเจฃเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ; เจตเจฐเจคเฉ‹เจ‚เจ•เจพเจฐ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจฒเจพเจˆเจจ เจคเฉฑเจ• เจ˜เจŸเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจฆเฉ€ เจธเฉ€เจฎเจพ 120 เจ…เฉฑเจ–เจฐ เจนเฉˆ; เจนเฉ‹เจฐ เจญเฉ‚เจฎเจฟเจ•เจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉ‡เฉœเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพเฅค เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเฉŒเจฎเจชเจŸ, เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจเจœ เจ•เฉ€เจคเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจจเจตเจพเจ‚ เจตเจฐเจคเฉ‹เจ‚เจ•เจพเจฐ เจธเฉเจจเฉ‡เจนเจพ เจฆเฉ‚เจฐเฉ€ เจฆเฉ€ เจชเจฐเจตเจพเจน เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจนเจฎเฉ‡เจธเจผเจพ เจœเจฟเจ‰เจ‚ เจฆเฉ‡ เจคเจฟเจ‰เจ‚ เจฐเฉฑเจ–เฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ•เฉเจ เจตเฉ€ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจนเจŸเจพเจ‡เจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพ, เจ…เจคเฉ‡ เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจกเจฟเจซเจพเจฒเจŸเจพเจ‚ เจจเจพเจฒ `light` เจฌเฉˆเจ‚เจก เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ (`light`, `verbatim` เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเฉˆ)เฅค #### เจ•เฉ‹เจก เจ‰เจฆเจพเจนเจฐเจจ ```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: เจนเจฒเจ•เจพ เจธเฉฐเจ•เฉเจšเจจ moderate: 20, // เจฆเฉ‚เจฐเฉ€ <= 20: เจ•เฉ‡เจตเจฎเฉˆเจจ เจธเฉฐเจ•เฉเจšเจจ fullSummary: 5, // เจ•เจฟเจธเจฎ เจฆเฉเจ†เจฐเจพ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ, เจฌเฉˆเจ‚เจกเจฟเฉฐเจ— เจ•เฉ‹เจก เจฆเฉเจ†เจฐเจพ เจจเจนเฉ€เจ‚ เจชเฉœเฉเจนเจฟเจ† เจœเจพเจ‚เจฆเจพ // เจฆเฉ‚เจฐเฉ€ > 20: เจธเจพเจฐ เจฌเจฃเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ…เจธเจฟเจธเจŸเฉˆเจ‚เจŸ) / เจชเจนเจฟเจฒเฉ€ เจฒเจพเจˆเจจ เจฐเฉฑเจ–เฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ (เจตเจฐเจคเฉ‹เจ‚เจ•เจพเจฐ) }); // saved = เจฌเจšเจพเจ เจ—เจ เจŸเฉ‹เจ•เจจเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ ``` #### เจ•เจฆเฉ‹เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ เจชเฉเจฐเจ—เจคเฉ€เจธเจผเฉ€เจฒ เจเจœเจฟเฉฐเจ— `aggressive` เจฎเฉ‹เจก เจฒเจˆ **เจนเจฎเฉ‡เจธเจผเจพ เจšเจพเจฒเฉ‚** เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ โ€” เจ‡เจน `compressAggressive()` เจฆเจพ เจชเฉœเจพเจ… 2 เจนเฉˆเฅค Ultra เจฎเฉ‹เจก เจ‡เจธเจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจšเจฒเจพเจ‰เจ‚เจฆเจพเฅค เจ‡เจน เจ–เจผเจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจฒเจˆ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจนเฉˆ: - เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจคเฉฑเจ• เจšเฉฑเจฒเจฃ เจตเจพเจฒเฉ‡ เจ•เฉ‹เจกเจฟเฉฐเจ— เจธเฉˆเจธเจผเจจ - เจ•เจˆ เจฆเจฟเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ—เฉฑเจฒเจฌเจพเจคเจพเจ‚ - เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจŸเฉ‚เจฒ เจ•เจพเจฒเจพเจ‚ เจตเจพเจฒเฉ‡ เจเจœเฉฐเจŸเจฟเจ• เจตเจฐเจ•เจซเจฒเฉ‹ ### เจ•เฉ‡เจตเจฎเฉˆเจจ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฎเฉ‹เจก เจ•เฉ‡เจตเจฎเฉˆเจจ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฎเฉ‹เจก **เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเฉŒเจฎเจชเจŸ เจนเจฆเจพเจ‡เจคเจพเจ‚** เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ เจœเฉ‹ เจฎเจพเจกเจฒ เจจเฉ‚เฉฐ เจธเฉฐเจ–เฉ‡เจช เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจฃ เจฒเจˆ เจ•เจนเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ โ€” `lite` เจชเฉฑเจงเจฐ เจชเฉ‚เจฐเฉ‡ เจตเจพเจ• เจฐเฉฑเจ–เจฃ เจตเจพเจฒเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจœเจตเจพเจฌ เจฎเฉฐเจ—เจฆเจพ เจนเฉˆ, `full` เจ‡เจธเจจเฉ‚เฉฐ "เจšเฉเจธเจค เจ—เฉเจซเจผเจพ-เจฎเจจเฉเฉฑเจ– เจตเจพเจ‚เจ— เจธเฉฐเจ–เฉ‡เจช เจœเจตเจพเจฌ เจฆเฉ‡เจฃ" เจฒเจˆ เจ•เจนเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ `ultra` เจคเจพเจฐ-เจธเฉเจจเฉ‡เจนเจพ เจธเจผเฉˆเจฒเฉ€ เจฆเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฎเฉฐเจ—เจฆเจพ เจนเฉˆ; เจนเจฆเจพเจ‡เจคเจพเจ‚ เจธเจฟเจฐเจซเจผ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ‰เจน เจ‡เจธเจฆเฉ€ เจ—เจพเจฐเฉฐเจŸเฉ€ เจจเจนเฉ€เจ‚ เจฆเฉ‡ เจธเจ•เจฆเฉ€เจ†เจ‚เฅค เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจ‡เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ `applyOutputStyles()` (`open-sse/services/compression/outputStyles/apply.ts`) เจฐเจพเจนเฉ€เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ: `open-sse/handlers/chatCore.ts` เจชเจนเจฟเจฒเจพเจ‚ เจฌเฉˆเจ•เจตเจฐเจก-เจ•เฉฐเจชเฉˆเจŸเฉ€เจฌเจฟเจฒเจŸเฉ€ เจธเจผเจฟเจฎ (`resolveOutputStyleSelection()` เจœเฉ‹ `open-sse/services/compression/outputStyles/backCompat.ts` เจตเจฟเฉฑเจš เจนเฉˆ) เจจเจพเจฒ เจšเฉ‹เจฃ เจฆเจพ เจจเจฟเจฐเจงเจพเจฐเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ `outputStyles` เจ–เจพเจฒเฉ€ เจนเฉ‹เจฃ เจตเฉ‡เจฒเฉ‡ เจธเจฎเจฐเฉฑเจฅ `cavemanOutputMode` เจจเฉ‚เฉฐ `cavemanOutputMode.intensity` 'เจคเฉ‡ `terse-prose` เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจธเจŸเจพเจˆเจฒ เจจเจพเจฒ เจฎเฉˆเจช เจ•เจฐเจฆเจพ เจนเฉˆ (เจนเฉ‡เจ เจพเจ‚ เจฌเฉˆเจ•เจตเจฐเจก-เจ•เฉฐเจชเฉˆเจŸเฉ€เจฌเจฟเจฒเจŸเฉ€ เจตเฉ‡เจ–เฉ‹); เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจ–เจพเจฒเฉ€ `outputStyles` เจšเฉ‹เจฃ เจœเจฟเจตเฉ‡เจ‚ เจนเฉˆ เจคเจฟเจตเฉ‡เจ‚ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ `cavemanOutputMode.enabled` เจ…เจคเฉ‡ `intensity` เจฆเจพ เจ•เฉ‹เจˆ เจชเฉเจฐเจญเจพเจต เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ, เจœเจฆเจ•เจฟ เจ‡เจธเจฆเจพ `autoClarity` เจŸเฉŒเจ—เจฒ เจซเจฟเจฐ เจตเฉ€ เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค `outputMode.ts` เจตเจฟเฉฑเจš เจนเจฆเจพเจ‡เจค เจŸเฉˆเจ•เจธเจŸ (`CAVEMAN_INSTRUCTION_BY_LANGUAGE`), เจธเจฎเฉฑเจ—เจฐเฉ€ เจฌเจพเจˆเจชเจพเจธ เจ…เจคเฉ‡ เจ‰เจน เจชเจฒเฉ‡เจธเจฎเฉˆเจ‚เจŸ เจนเฉˆเจฒเจชเจฐ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฐเจœเฉˆเจ•เจธเจผเจจ เจตเจฐเจคเจฆเจพ เจนเฉˆ; เจ‡เจธเจฆเฉ‡ เจ†เจชเจฃเฉ‡ `applyCavemanOutputMode()` เจ‡เฉฐเจœเฉˆเจ•เจŸเจฐ เจฆเจพ เจ•เฉ‹เจˆ เจชเฉเจฐเฉ‹เจกเจ•เจธเจผเจจ เจ•เจพเจฒเจฐ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค #### เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ‡เจน เจฎเฉ‹เจก เจ‡เจจเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉเจšเจฟเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค เจ‡เจน system prompt เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจนเจฆเจพเจ‡เจค เจฌเจฒเจพเจ• เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ (เจนเฉ‡เจ เจพเจ‚ เจ‡เฉฐเจœเฉˆเจ•เจธเจผเจจ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจตเฉ‡เจ–เฉ‹), เจ…เจคเฉ‡ เจฌเฉ‡เจจเจคเฉ€ เจฒเจˆ เจšเฉเจฃเจฟเจ† เจ—เจฟเจ† เจ•เฉ‹เจˆ เจตเฉ€ เจ‡เจจเจชเฉเฉฑเจŸ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจซเจฟเจฐ เจตเฉ€ เจ‰เจธ body เจ‰เฉฑเจคเฉ‡ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเฉเจฃ เจ‡เจน เจฌเจฒเจพเจ• เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจนเจฐ เจชเฉฑเจงเจฐ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ†เจ‰เจฃ เจตเจพเจฒเฉ€ เจธเจพเจ‚เจเฉ€ boundaries clause เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ…เฉฐเจ—เจฐเฉ‡เจœเจผเฉ€ `full` เจชเฉฑเจงเจฐ เจ‡เจน เจ•เจนเจฟเฉฐเจฆเจพ เจนเฉˆ: > "เจธเจฟเจ†เจฃเฉ‡ เจ—เฉเจซเจผเจพเจตเจพเจธเฉ€ เจตเจพเจ‚เจ— เจธเฉฐเจ–เฉ‡เจช เจœเจตเจพเจฌ เจฆเจฟเจ“เฅค articles (a/an/the), filler (just/really/basically/actually/simply), เจธเจผเจฟเจธเจผเจŸเจพเจšเจพเจฐเจ• เจธเจผเจฌเจฆ เจ…เจคเฉ‡ เจ…เจจเจฟเจธเจผเจšเจฟเจคเจคเจพ เจฆเจฐเจธเจพเจ‰เจฃ เจตเจพเจฒเฉ‡ เจธเจผเจฌเจฆ เจนเจŸเจพเจ“เฅค เจตเจพเจ•เจพเจ‚เจธเจผ เจ เฉ€เจ• เจนเจจเฅค เจ›เฉ‹เจŸเฉ‡ เจธเจฎเจพเจจเจพเจฐเจฅเจ• เจธเจผเจฌเจฆ เจตเจฐเจคเฉ‹ (extensive เจฆเฉ€ เจฅเจพเจ‚ big, implement เจฆเฉ€ เจฅเจพเจ‚ fix)เฅค เจธเจพเจฐเจพ เจคเจ•เจจเฉ€เจ•เฉ€ เจคเฉฑเจค, code, errors, URLs, identifiers เจฌเจฟเจฒเจ•เฉเจฒ เจธเจนเฉ€ เจฐเฉฑเจ–เฉ‹เฅค" เจ‡เจน เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจจเฉเจนเจพเจ‚ เจฒเจˆ เจตเจงเฉ€เจ† เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ: - Code generation (เจตเจงเฉ‡เจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจ†เจ‰เจŸเจชเฉเฉฑเจŸ = เจ˜เฉฑเจŸ tokens) - เจคเฉเจฐเฉฐเจค Q&A (เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเจฟเจ†เจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚) - Batch processing (throughput เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ•เจฐเฉ‹) #### เจ•เจฆเฉ‹เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ Caveman output mode **opt-in** เจนเฉˆเฅค เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจšเจพเจฒเฉ‚ เจนเฉ‹เจฃ 'เจคเฉ‡ (`enabled: true`, Compression Settings เจชเฉฐเจจเฉ‡ เจ‰เฉฑเจคเฉ‡ master toggle เจšเจพเจฒเฉ‚), เจ‡เจธเจจเฉ‚เฉฐ `cavemanOutputMode.enabled` เจจเจพเจฒ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹; `intensity` `lite`, `full` เจœเจพเจ‚ `ultra` เจšเฉเจฃเจฆเจพ เจนเฉˆ: ```json { "enabled": true, "cavemanOutputMode": { "enabled": true, "intensity": "full" } } ``` เจ•เจฟเจธเฉ‡ compression combo เจฆเจพ **Output Mode** toggle (`outputMode`, `outputModeIntensity` เจตเจฟเฉฑเจš เจชเฉฑเจงเจฐ) เจ‰เจจเฉเจนเจพเจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฒเจˆ เจ‡เจนเฉ€ switch เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจจเฉเจนเจพเจ‚ เจ‰เฉฑเจคเฉ‡ เจ‰เจน combo เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ `omniroute_set_compression_engine` MCP tool เจ†เจชเจฃเฉ‡ boolean `outputMode` argument เจฐเจพเจนเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจฒเจฟเจ–เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจ–เจพเจฒเฉ€ `outputStyles` เจšเฉ‹เจฃ เจจเฉ‚เฉฐ เจ‡เจธ switch เจ‰เฉฑเจคเฉ‡ เจคเจฐเจœเฉ€เจน เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆเฅค Dashboard เจตเจฟเฉฑเจš, **Terse prose** output style เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจจเจพเจฒ เจ‰เจนเฉ€ เจฌเจฒเจพเจ• inject เจนเฉเฉฐเจฆเจพ เจนเฉˆ (เจนเฉ‡เจ เจพเจ‚ Output Styles เจตเฉ‡เจ–เฉ‹)เฅค ### Output Styles (เจ•เฉˆเจŸเจพเจฒเฉŒเจ—) เจ‰เฉฑเจชเจฐ เจฆเจฟเฉฑเจคเจพ Caveman output mode **legacy single-style path** เจนเฉˆเฅค Phase 4 เจจเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ composable output styles เจฆเฉ‡ เจ‡เฉฑเจ• เจ•เฉˆเจŸเจพเจฒเฉŒเจ— เจตเจฟเฉฑเจš เจ†เจฎ เจ•เฉ€เจคเจพ: `OUTPUT_STYLE_CATALOG`, `open-sse/services/compression/outputStyles/catalog.ts` เจตเจฟเฉฑเจšเฅค เจนเจฐ style เจ‡เฉฑเจ• system-prompt เจนเจฆเจพเจ‡เจค เจนเฉˆ เจœเฉ‹ เจฎเจพเจกเจฒ เจจเฉ‚เฉฐ เจ–เฉเจฆ เจ˜เฉฑเจŸ เจฎเจนเจฟเฉฐเจ—เจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจฃ เจฒเจˆ เจ•เจนเจฟเฉฐเจฆเฉ€ เจนเฉˆ; styles เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เฉ‡ เจšเจพเจฒเฉ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจน catalog เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš inject เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค | Style | `id` | เจ‡เจน เจ•เฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ | เจนเจฆเจพเจ‡เจค เจฆเฉ€เจ†เจ‚ เจญเจพเจธเจผเจพเจตเจพเจ‚ | | ------------------------------ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- | | เจธเฉฐเจ–เฉ‡เจช เจ—เฉฑเจฆ | `terse-prose` | Filler/articles/hedging เจนเจŸเจพเจ“; เจคเจ•เจจเฉ€เจ•เฉ€ เจคเฉฑเจค เจฌเจฟเจฒเจ•เฉเจฒ เจธเจนเฉ€ เจฐเฉฑเจ–เฉ‹เฅค legacy caveman output mode เจตเจพเจฒเจพ เจนเฉ€ เจชเจพเจ  (เจนเจตเจพเจฒเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจฎเฉเฉœ เจฒเจฟเจ–เจฟเจ† เจจเจนเฉ€เจ‚)เฅค | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | เจ˜เฉฑเจŸ code | `less-code` | YAGNI เจชเฉŒเฉœเฉ€: เจธเจญ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเจพ เจ•เจพเจฐเจ—เจฐ เจฌเจฆเจฒเจพเจ…, เจฌเจฟเจจเจพเจ‚ เจฎเฉฐเจ—เฉ€เจ†เจ‚ abstractions เจจเจนเฉ€เจ‚เฅค | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | Ponytail (เจ†เจฒเจธเฉ€ senior dev) | `ponytail` | "เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† code เจ‰เจน เจนเฉˆ เจœเฉ‹ เจ•เจฆเฉ‡ เจฒเจฟเจ–เจฟเจ† เจนเฉ€ เจจเจพ เจ—เจฟเจ† เจนเฉ‹เจตเฉ‡": reuse > rewrite, root cause > symptom, เจธเจญ เจคเฉ‹เจ‚ เจ›เฉ‹เจŸเจพ เจ•เจพเจฐเจ—เจฐ diffเฅค | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | เจฎเฉˆเจจเฉ‚เฉฐ ADHD เจนเฉˆ (action-first) | `i-have-adhd` | เจชเจนเจฟเจฒเจพเจ‚ เจ•เจพเจฐเจตเจพเจˆ (เจ—เฉฑเจฆ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ command/path/snippet), เจจเฉฐเจฌเจฐเจฌเฉฑเจง เจธเฉ€เจฎเจฟเจค เจ•เจฆเจฎ, เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ เฉ‹เจธ เจ…เจ—เจฒเจพ เจ•เจฆเจฎ, เจ•เฉ‹เจˆ preamble/recap/closers เจจเจนเฉ€เจ‚เฅค [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 filter | `antislop-ui` | เจนเจฐ visual technique เจจเฉ‚เฉฐ เจฎเจ•เจธเจฆ เจฆเฉ€ เจœเจพเจ‚เจš เจชเจพเจธ เจ•เจฐเจจเฉ€ เจฒเจพเจœเจผเจฎเฉ€ เจนเฉˆ (hierarchy, identity, readability); เจ•เฉ‹เจˆ default gradients/glass/glow เจจเจนเฉ€เจ‚, เจธเฉ€เจฎเจฟเจค palette, เจ•เฉ‹เจˆ template layouts เจจเจนเฉ€เจ‚เฅค เจฆเฉ‹เจตเฉ‡เจ‚ antislop styles no-dead-controls / no-fabricated-claims boundary เจœเฉ‹เฉœเจฆเฉ‡ เจนเจจเฅค | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | Antislop copy เจ…เจคเฉ‡ human filter | `antislop-copy` | เจ–เจพเจธ copy (เจ•เฉ‹เจˆ em dash, generic CTAs, buzzwords, chatbot closers เจœเจพเจ‚ เจ˜เฉœเฉ‡ เจนเฉ‹เจ เจคเฉฑเจฅ เจจเจนเฉ€เจ‚), เจจเจพเจฒ เจนเฉ€ เจฒเฉ‹เจ•เจพเจ‚ เจฒเจˆ เจจเจฟเจฏเจฎ: WCAG AA contrast, เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃ เจตเจพเจฒเจพ focus, keyboard reach, empty/loading/error states, mobile reflowเฅค | en, pt-BR, es, de, fr, it, ru, zh, ja, id, vi | | เจธเฉฐเจ–เฉ‡เจช CJK (ๆ–‡่จ€) | `terse-cjk` | `full`/`ultra` เจœเจตเจพเจฌ Classical Chinese (ๆ–‡่จ€) เจตเจฟเฉฑเจš; `lite` เจธเจฟเจฐเจซเจผ function words, เจธเจผเจฟเจธเจผเจŸเจพเจšเจพเจฐเจ• เจธเจผเจฌเจฆเจพเจ‚ เจœเจพเจ‚ เจธเจœเจพเจตเจŸ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจธเฉฐเจ–เฉ‡เจช เจœเจตเจพเจฌ เจฎเฉฐเจ—เจฆเจพ เจนเฉˆเฅค | zh (locale-gated, เจนเฉ‡เจ เจพเจ‚ เจตเฉ‡เจ–เฉ‹) | เจนเจฐ style เจคเจฟเฉฐเจจ intensity levels โ€” `lite`, `full`, `ultra` โ€” เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจนเจฐ level เจธเจพเจ‚เจเฉ€ boundaries clause (`outputMode.ts` เจตเจฟเฉฑเจš `SHARED_BOUNDARIES`) เจจเจพเจฒ เจ–เจคเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ code blocks, file paths, commands, errors เจ…เจคเฉ‡ URLs เจจเฉ‚เฉฐ เจฌเจฟเจฒเจ•เฉเจฒ เจธเจนเฉ€ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค `terse-prose` เจ…เจคเฉ‡ `terse-cjk` level texts เจ‰เจธ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจš identifiers เจตเฉ€ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจจเฅค `terse-cjk` เจฆเฉ‹ เจฅเจพเจตเจพเจ‚ เจ‰เฉฑเจคเฉ‡ `zh` เจฒเจˆ locale-gated เจนเฉˆเฅค Compression Settings เจชเฉฐเจจเจพ เจ‡เจธ เจฆเฉ€ row เจธเจฟเจฐเจซเจผ เจ‰เจฆเฉ‹เจ‚ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ dashboard UI language เจšเฉ€เจจเฉ€ (`zh-CN` เจœเจพเจ‚ `zh-TW`) เจนเฉ‹เจตเฉ‡, เจ…เจคเฉ‡ `applyOutputStyles()` เจ‡เจธเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‰เจฆเฉ‹เจ‚ inject เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ resolved language (เจนเฉ‡เจ เจพเจ‚ Language selection เจตเฉ‡เจ–เฉ‹) `zh` เจนเฉ‹เจตเฉ‡เฅค Row เจจเฉ‚เฉฐ เจฒเฉเจ•เจพเจ‰เจฃ เจจเจพเจฒ saved `terse-cjk` selection เจธเจพเจซเจผ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€: settings API เจ•เจฟเจธเฉ‡ เจตเฉ€ style id เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจชเฉฐเจจเฉ‡ เจ‰เฉฑเจคเฉ‡ เจนเฉ‹เจฐ styles เจจเฉ‚เฉฐ save เจ•เจฐเจจ เจจเจพเจฒ เจ‡เจน เจฌเจฃเฉ€ เจฐเจนเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, `applyOutputStyles()` language check เจนเฉ€ เจ‡เจ•เฉฑเจฒเจพ locale gate เจนเฉˆเฅค #### เจ‡เฉฐเจœเฉˆเจ•เจธเจผเจจ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ `applyOutputStyles()` (`open-sse/services/compression/outputStyles/apply.ts`) เจšเฉ‹เจฃ เจจเฉ‚เฉฐ เจ•เฉˆเจŸเจพเจฒเจพเจ— เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ (เจ…เจฃเจœเจพเจฃ ids เจ…เจคเฉ‡ locale เจจเจพเจฒ เจฎเฉ‡เจฒ เจจเจพ เจ–เจพเจฃ เจตเจพเจฒเฉ€เจ†เจ‚ styles เจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจน เจ•เจฆเฉ‡ เจตเฉ€ เจ—เจฒเจคเฉ€ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€; เจ…เจœเจฟเจนเฉ€ เจšเฉ‹เจฃ เจœเฉ‹ เจ•เจฟเจธเฉ‡ style เจคเฉฑเจ• เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€, body เจจเฉ‚เฉฐ เจฌเจฟเจจเจพเจ‚ เจฌเจฆเจฒเฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ `no_styles` เจตเจœเฉ‹เจ‚ เจ›เฉฑเจกเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ), เจšเฉเจฃเฉ€เจ†เจ‚ เจนเฉ‹เจˆเจ†เจ‚ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจŸเจพเจฒเจพเจ— เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ, boundaries clause เจจเฉ‚เฉฐ **เจ‡เฉฑเจ• เจตเจพเจฐ** เจœเฉ‹เฉœเจฆเจพ เจนเฉˆ (เจจเจพเจฒ เจนเฉ€ safety clause, `SAFETY_BOUNDARIES` เจœเจพเจ‚ เจ‡เจธเจฆเจพ เจ…เจจเฉเจตเจพเจฆ, เจœเจฆเฉ‹เจ‚ `less-code` เจœเจพเจ‚ `ponytail` เจšเฉเจฃเจฟเจ† เจ—เจฟเจ† เจนเฉ‹เจตเฉ‡), เจ…เจคเฉ‡ block เจจเฉ‚เฉฐ เจ‡เฉฑเจ•เฉ‹ idempotency marker (`[OmniRoute Output Styles]`) เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉเฉœ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจ•เฉ‹เจˆ เจคเจฌเจฆเฉ€เจฒเฉ€ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค เจœเจฆเฉ‹เจ‚ เจนเฉฑเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจญเจพเจธเจผเจพ (เจนเฉ‡เจ เจพเจ‚ Language selection เจตเฉ‡เจ–เฉ‹) เจฆเจพ เจ…เจจเฉเจตเจพเจฆ เจ‰เจชเจฒเจฌเจง เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ เจ…เฉฐเจ—เจฐเฉ‡เจœเจผเฉ€ เจฆเฉ€ เจฅเจพเจ‚ เจธเจฅเจพเจจเจ• เจฌเจฃเจพเจˆ เจนเจฆเจพเจ‡เจค เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ—เฉˆเจฐ-เจ–เจพเจฒเฉ€ `messages` array เจตเจพเจฒเฉ€ body เจ‰เฉฑเจคเฉ‡, idempotency เจœเจพเจ‚เจš content bypass เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจšเฉฑเจฒเจฆเฉ€ เจนเฉˆ: เจœเจฆเฉ‹เจ‚ `[OmniRoute Output Styles]` marker เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ top-level `system` field (เจ‡เฉฑเจ• string เจœเจพเจ‚ content-block array) เจตเจฟเฉฑเจš, เจœเจพเจ‚ string content เจตเจพเจฒเฉ‡ system message เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆ เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ body เจจเฉ‚เฉฐ `already_applied` เจตเจœเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจฌเจฆเจฒเฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉ‹เจˆ keyword เจœเจพเจ‚เจš เจจเจนเฉ€เจ‚ เจšเฉฑเจฒเจฆเฉ€เฅค เจจเจนเฉ€เจ‚ เจคเจพเจ‚ content bypass (`open-sse/services/compression/outputMode.ts` เจตเจฟเฉฑเจš `shouldBypassCavemanOutputMode()`) เจ†เจ–เจฐเฉ€ เจคเจฟเฉฐเจจ messages เจฆเฉ‡ text เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ€ role เจ•เฉ‹เจˆ เจตเฉ€ เจนเฉ‹เจตเฉ‡, เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจ‰เจน text เจ‡เจธเจฆเฉ‡ security, irreversible-action เจœเจพเจ‚ clarification keywords เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉ‹เจตเฉ‡, เจœเจพเจ‚ เจ•เฉเจฐเจฎ-เจธเฉฐเจตเฉ‡เจฆเจจเจธเจผเฉ€เจฒ sequence เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ เจชเฉ‚เจฐเฉ‡ turn เจฒเจˆ styles เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ: `first`, `then`, `after that`, `before`, `rollback` เจœเจพเจ‚ `backup`, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ 240 characters เจฆเฉ‡ เจ…เฉฐเจฆเจฐ `delete`, `drop`, `migrate`, `deploy` เจœเจพเจ‚ `release` เจ†เจตเฉ‡เฅค bypass เจ‰เจฆเฉ‹เจ‚ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ **Auto-Clarity Bypass** toggle (`cavemanOutputMode.autoClarity`, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจšเจพเจฒเฉ‚) เจšเจพเจฒเฉ‚ เจนเฉ‹เจตเฉ‡; toggle เจจเฉ‚เฉฐ เจฌเฉฐเจฆ เจ•เจฐเจจ เจจเจพเจฒ keyword เจœเจพเจ‚เจš เจ›เฉฑเจก เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ bypass turn เจจเฉ‚เฉฐ เจ…เฉฑเจ—เฉ‡ เจœเจพเจฃ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ `placeSystemInstruction()` (เจ‰เจธเฉ‡ file เจตเจฟเฉฑเจš), เจœเฉ‹ เจ•เจฆเฉ‡ เจตเฉ€ เจจเจตเจพเจ‚ `messages[0]` เจจเจนเฉ€เจ‚ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ, block เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเจฟเจ†เจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฎเจฟเจฒเจฃ เจตเจพเจฒเฉ€ เจฅเจพเจ‚ เจ‰เฉฑเจคเฉ‡ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ: 1. string content เจตเจพเจฒเจพ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ system message: block เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ text เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค 2. top-level `system` field: block เจจเฉ‚เฉฐ string เจฆเฉ‡ text เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจพเจ‚ content-block array เจตเจฟเฉฑเจš เจจเจตเฉ‡เจ‚ text block เจตเจœเฉ‹เจ‚ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค 3. string content เจตเจพเจฒเจพ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ†เจ‰เจฃ เจตเจพเจฒเจพ เจชเจนเจฟเจฒเจพ system message: block เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ text เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค 4. เจ‰เจชเจฐเฉ‹เจ•เจค เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ•เฉ‹เจˆ เจจเจนเฉ€เจ‚: block เจจเฉ‚เฉฐ `messages` เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ system message เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค `messages` array เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ body เจ‰เฉฑเจคเฉ‡ (เจœเจพเจ‚ เจ–เจพเจฒเฉ€ array เจตเจพเจฒเฉ€ body เจ‰เฉฑเจคเฉ‡), เจ•เฉ‹เจˆ content bypass เจจเจนเฉ€เจ‚ เจšเฉฑเจฒเจฆเจพ เจ…เจคเฉ‡ top-level `system` field เจฆเฉ€ เจœเจพเจ‚เจš เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€เฅค block เจจเฉ‚เฉฐ string `instructions` field เจฆเฉ‡ text เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจœเฉ‹เฉœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเจฆ เจคเฉฑเจ• เจ‰เจธ field เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ `[OmniRoute Output Styles]` marker เจจเจพ เจนเฉ‹เจตเฉ‡; เจ‰เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš body เจจเฉ‚เฉฐ `already_applied` เจตเจœเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจฌเจฆเจฒเฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ body เจตเจฟเฉฑเจš string `instructions` field เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจชเจฐ `input` (เจ‡เฉฑเจ• string เจœเจพเจ‚ array) เจฎเฉŒเจœเฉ‚เจฆ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ block `instructions` เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจธ field เจตเจฟเฉฑเจš เจฎเฉŒเจœเฉ‚เจฆ เจ•เจฟเจธเฉ‡ เจตเฉ€ non-string value เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเฉ€ body เจœเจฟเจธ เจตเจฟเฉฑเจš เจจเจพ string `instructions` field เจนเฉ‹เจตเฉ‡ เจ…เจคเฉ‡ เจจเจพ เจนเฉ€ string เจœเจพเจ‚ array `input`, เจ‰เจธเจจเฉ‚เฉฐ เจฌเจฟเจจเจพเจ‚ เจฌเจฆเจฒเฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ `no_messages` เจตเจœเฉ‹เจ‚ skip เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค #### เจธเจฎเจฐเฉฑเจฅ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ dashboard เจตเจฟเฉฑเจš: **Compression Context โ†’ Compression Settings** (`/dashboard/context/settings`), Output styles เจญเจพเจ—: เจนเจฐ style เจฒเจˆ เจ‡เฉฑเจ• row, เจœเจฟเจธ เจตเจฟเฉฑเจš on/off toggle เจ…เจคเฉ‡ level selector เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค styles เจ‰เจฆเฉ‹เจ‚ inject เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจœเจฆเฉ‹เจ‚ compression เจ–เฉเจฆ เจšเจพเจฒเฉ‚ เจนเฉ‹เจตเฉ‡ (page เจฆเจพ master toggle, `enabled`)เฅค **Auto-Clarity Bypass** toggle **Caveman** page (`/dashboard/context/caveman`) เจฆเฉ‡ **Output Mode** card เจตเจฟเฉฑเจš เจนเฉˆเฅค Programmatically, compression config เจšเฉ‹เจฃ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ persist เจ•เจฐเจฆเฉ€ เจนเฉˆ: ```json { "outputStyles": [ { "id": "i-have-adhd", "level": "full" }, { "id": "less-code", "level": "lite" } ] } ``` Back-compat: เจœเจฆเฉ‹เจ‚ `outputStyles` เจ–เจพเจฒเฉ€ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, legacy `cavemanOutputMode.enabled` setting, `cavemanOutputMode.intensity` เจ‰เฉฑเจคเฉ‡ `terse-prose` เจจเจพเจฒ map เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจซเจฟเจฐ block `[OmniRoute Output Styles]` marker เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเจฆเจ•เจฟ legacy `applyCavemanOutputMode()` injector `[OmniRoute Caveman Output Mode]` เจฒเจฟเจ–เจฆเจพ เจธเฉ€เฅค marker เจคเฉ‹เจ‚ เจนเฉ‡เจ เจพเจ‚, text en, pt-BR, es, de, fr, it, ru, id เจ…เจคเฉ‡ vi เจตเจฟเฉฑเจš legacy injection เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆ; ja เจ…เจคเฉ‡ zh เจตเจฟเฉฑเจš boundaries clause เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ space เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค `terse-prose` เจฆเจพ pt-BR, es, de, fr, it, ru, zh, ja, id เจ…เจคเฉ‡ vi เจตเจฟเฉฑเจš เจ…เจจเฉเจตเจพเจฆ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจœเจฟเจธ request เจฆเฉ€ resolved language `hu` เจนเฉ‹เจตเฉ‡, เจ‰เจธเจจเฉ‚เฉฐ เจ‰เฉฑเจฅเฉ‡ เจ…เฉฐเจ—เจฐเฉ‡เจœเจผเฉ€ text เจฎเจฟเจฒเจฆเจพ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ legacy injector เจ‡เจธเจฆเจพ Hungarian text เจตเจฐเจคเจฆเจพ เจธเฉ€เฅค Output-style language selection (`outputStyles/apply.ts` เจตเจฟเฉฑเจš `resolveOutputStyleLanguage()`): `languageConfig.enabled` เจšเจพเจฒเฉ‚ เจนเฉ‹เจฃ เจ‰เฉฑเจคเฉ‡, `autoDetect` request เจฆเฉ€ `messages` array เจตเจฟเฉฑเจš text เจตเจพเจฒเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจจเจตเฉ‡เจ‚ user message เจฆเจพ sample เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ (string content, เจœเจพเจ‚ เจ‡เจธเจฆเฉ‡ content parts เจฆเจพ `text`) เจ…เจคเฉ‡ เจ‡เจธ เจ‰เฉฑเจคเฉ‡ Caveman engine เจฆเจพ detector (`detectCompressionLanguage()`) เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค Han characters เจ…เจคเฉ‡ เจ•เฉ‹เจˆ kana เจจเจพ เจฐเฉฑเจ–เจฃ เจตเจพเจฒเฉ‡ text เจฒเจˆ detector `zh` เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ; เจจเจนเฉ€เจ‚ เจคเจพเจ‚ เจ‡เจน `it`, `pt-BR`, `es`, `de`, `fr`, `ru`, `ja`, `hu` เจ…เจคเฉ‡ `id` เจตเจฟเฉฑเจšเฉ‹เจ‚ เจธเจญ เจคเฉ‹เจ‚ เจตเฉฑเจง hint matches เจตเจพเจฒเฉ€ language เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจ•เฉ‹เจˆ match เจจเจพ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ `en` เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ โ€” เจœเจฟเจธ text เจจเฉ‚เฉฐ เจ‡เจน classify เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ, เจ‰เจธ เจฒเจˆ English เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, `defaultLanguage` เจ•เจฆเฉ‡ เจจเจนเฉ€เจ‚, เจ…เจคเฉ‡ styles เจฆเฉ‡ เจจเจพเจฒ `vi` text เจฆเจฟเฉฑเจคเจพ เจนเฉ‹เจฃ เจฆเฉ‡ เจฌเจพเจตเจœเฉ‚เจฆ `vi` เจ•เจฆเฉ‡ detect เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€เฅค Responses API body เจ†เจชเจฃเฉ‡ turns เจจเฉ‚เฉฐ `input` เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ€ เจนเฉˆ, เจœเจฟเจธเจฆเจพ sample เจจเจนเฉ€เจ‚ เจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ, เจ‡เจธ เจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ `defaultLanguage`, เจซเจฟเจฐ English เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ `messages` เจตเจฟเฉฑเจš เจ•เจฟเจธเฉ‡ user message เจ•เฉ‹เจฒ text เจจเจพ เจนเฉ‹เจตเฉ‡, เจœเจพเจ‚ `autoDetect` เจฌเฉฐเจฆ เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ `defaultLanguage` เจฒเจพเจ—เฉ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจซเจฟเจฐ Englishเฅค `languageConfig.enabled` เจฌเฉฐเจฆ เจนเฉ‹เจฃ เจ‰เฉฑเจคเฉ‡ language English เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ โ€” เจœเจฆ เจคเฉฑเจ• request เจ‰เฉฑเจคเฉ‡ เจ•เฉ‹เจˆ compression combo เจฒเจพเจ—เฉ‚ เจจเจพ เจนเฉ‹เจตเฉ‡ (request เจฆเฉ‡ routing combo เจจเฉ‚เฉฐ assign เจ•เฉ€เจคเจพ combo, เจœเจพเจ‚ built-in stacked pipeline เจฒเจˆ chatCore เจตเฉฑเจฒเฉ‹เจ‚ fallback เจ•เฉ€เจคเจพ default compression combo): combo เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจจเจพเจฒ เจ‰เจธ request เจฒเจˆ `languageConfig.enabled` เจšเจพเจฒเฉ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ `defaultLanguage` เจจเฉ‚เฉฐ combo เจฆเฉ‡ language packs เจคเฉ‹เจ‚ set เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจœเฉ‡ saved value combo เจฆเฉ‡ packs เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉˆ เจคเจพเจ‚ เจ‰เจนเฉ€, เจจเจนเฉ€เจ‚ เจคเจพเจ‚ combo เจฆเจพ เจชเจนเจฟเจฒเจพ pack, เจœเฉ‹ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš `en` เจนเฉเฉฐเจฆเจพ เจนเฉˆ), เจœเจฆเจ•เจฟ saved `autoDetect` (เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจšเจพเจฒเฉ‚) เจซเจฟเจฐ เจตเฉ€ เจฒเจพเจ—เฉ‚ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆเฅค Caveman input engine เจ†เจชเจฃเฉ‡ rule-pack เจฆเฉ€ language เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจšเฉเจฃเจฆเจพ เจนเฉˆ โ€” เจนเจฐ text part เจฎเฉเจคเจพเจฌเจ• เจ…เจคเฉ‡, auto-detect เจฌเฉฐเจฆ เจนเฉ‹เจฃ เจ‰เฉฑเจคเฉ‡, `enabledPacks` เจฆเฉ‡ เจ†เจงเจพเจฐ เจ‰เฉฑเจคเฉ‡ gated เจนเฉ‹ เจ•เฉ‡เฅค เจธเจผเฉˆเจฒเฉ€ ร— เจญเจพเจธเจผเจพ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจจเฉ‚เฉฐ `tests/unit/compression/output-styles-i18n-matrix.test.ts` เจฆเฉเจ†เจฐเจพ เจชเจฟเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ: เจนเจฐ เจ•เฉˆเจŸเจพเจฒเจพเจ— เจธเจผเฉˆเจฒเฉ€ เจฒเจˆ เจŸเฉˆเจธเจŸ เจฆเฉ‡ `BASELINE_LANGUAGES` เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจเจ‚เจŸเจฐเฉ€ เจฒเจพเจœเจผเจฎเฉ€ เจนเฉˆ; เจœเจฟเจนเฉœเฉ€ เจธเจผเฉˆเจฒเฉ€ locale-gated เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‰เจธ เจจเจพเจฒ pt-BR เจ…เจจเฉเจตเจพเจฆ เจญเฉ‡เจœเจฃเจพ เจฒเจพเจœเจผเจฎเฉ€ เจนเฉˆ (locale-gated `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`**: `::` เจฐเฉ‚เจช เจฆเฉ€ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจฒเจพเจˆเจจ เจตเจพเจฒเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€, เจœเจฟเฉฑเจฅเฉ‡ เจชเจนเจฟเจฒเฉ‡ เจ•เฉ‹เจฒเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเจพเจฒเฉ‡ เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ whitespace เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€, เจธเจฟเจฐเจซเจผ เจ‰เจนเฉ€ เจฒเจพเจˆเจจเจพเจ‚ เจฐเฉฑเจ–เจฆเฉ€ เจนเฉˆ, เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง 30, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเฉ‹เจฐ เจฎเฉ‡เจฒเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ…เจคเฉ‡ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€เจ†เจ‚ เจซเจผเจพเจˆเจฒเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ; เจนเจฐ เจนเฉ‹เจฐ เจฒเจพเจˆเจจ เจนเจŸเจพ เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจฐเจฃเจจเฉ€เจคเฉ€ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ…เจœเจฟเจนเฉ€ เจ‡เฉฑเจ• เจฒเจพเจˆเจจ เจนเฉ€ เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจ‡เจธ เจฒเจˆ `12:30:45` เจตเจฐเจ—เฉ‡ timestamp เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€ เจฒเฉŒเจ— เจฒเจพเจˆเจจ เจตเฉ€ เจ—เจฟเจฃเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค 3. **`shellOutput`**: เจ‰เจน เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจœเจฟเจธ เจตเจฟเฉฑเจš ANSI CSI sequence (`ESC[` เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ…เฉฐเจ• เจœเจพเจ‚ semicolons เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เฉฑเจ• เจ…เฉฑเจ–เจฐ, เจœเจฟเจตเฉ‡เจ‚ color codes เจตเจฟเฉฑเจš) เจœเจพเจ‚ เจŸเฉˆเจ•เจธเจŸ เจตเจฟเฉฑเจš เจ•เจฟเจคเฉ‡ เจตเฉ€ whitespace เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ `$` เจนเฉ‹เจตเฉ‡, เจ‰เจน sequences เจ—เฉเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ (เจนเฉ‹เจฐ escapes, เจœเจฟเจตเฉ‡เจ‚ `ESC[?25l` เจœเจพเจ‚ OSC window-title sequence, เจฐเฉฑเจ–เฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ) เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€เจ†เจ‚ เจ†เจ–เจผเจฐเฉ€ 50 เจฒเจพเจˆเจจเจพเจ‚ เจฐเฉฑเจ–เจฆเฉ€ เจนเฉˆ, เจœเจฆเจ•เจฟ เจฒเจ—เจพเจคเจพเจฐ เจฆเฉเจนเจฐเจพเจˆเจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจธเจฎเฉ‡เจŸ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจœเจพเจ‚เจš `json` เจ…เจคเฉ‡ `errorMessage` เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจšเฉฑเจฒเจฆเฉ€ เจนเฉˆ, เจ…เจœเจฟเจนเฉ‡ `$` เจตเจพเจฒเฉ€ JSON เจœเจพเจ‚ error เจ†เจ‰เจŸเจชเฉเฉฑเจŸ `shellOutput` เจšเจพเจฒเฉ‚ เจนเฉ‹เจฃ เจฆเฉŒเจฐเจพเจจ เจ‰เจจเฉเจนเจพเจ‚ เจคเฉฑเจ• เจ•เจฆเฉ‡ เจจเจนเฉ€เจ‚ เจชเจนเฉเฉฐเจšเจฆเฉ€เฅค 4. **`json`**: 2,000 เจ…เฉฑเจ–เจฐเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจฆเจพ JSON payload เจœเฉ‹ `{` เจœเจพเจ‚ `[` เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ (เจตเจฟเจ•เจฒเจชเจฟเจ• whitespace เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ) เจ…เจคเฉ‡ parse เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ‰เจธเจฆเจพ เจธเจพเจฐ เจฌเจฃเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ: 7 เจคเฉ‹เจ‚ เจตเฉฑเจง items เจตเจพเจฒเฉ€ array เจ†เจชเจฃเฉ‡ เจชเจนเจฟเจฒเฉ‡ 5 เจ…เจคเฉ‡ เจ†เจ–เจผเจฐเฉ€ 2 items เจ…เจคเฉ‡ เจ†เจชเจฃเฉ€ เจ•เฉเฉฑเจฒ เจ—เจฟเจฃเจคเฉ€ เจฐเฉฑเจ–เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ object เจ†เจชเจฃเฉ€เจ†เจ‚ เจชเจนเจฟเจฒเฉ€เจ†เจ‚ 20 keys เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจนเจฐ nested object เจœเจพเจ‚ array value เจจเฉ‚เฉฐ `{โ€ฆN keys}` placeholder เจจเจพเจฒ เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (array เจฒเจˆ, N เจ‰เจธเจฆเฉ€ length เจนเฉˆ) เจ…เจคเฉ‡ เจชเจนเจฟเจฒเฉ€เจ†เจ‚ 20 เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเจŸเจพเจˆเจ†เจ‚ keys เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ•เจฐเจจ เจตเจพเจฒเจพ `_remaining__keys` marker เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค Scalar values เจชเฉ‚เจฐเฉ€เจ†เจ‚ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ‡เจธ เจฒเจˆ 20 keys เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจ…เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ nested values เจตเจพเจฒเจพ object เจธเจฟเจฐเจซเจผ เจฆเฉเจฌเจพเจฐเจพ indent เจนเฉเฉฐเจฆเจพ เจนเฉˆ โ€” minified object เจตเจฟเฉฑเจš เจ…เฉฑเจ–เจฐ เจตเจง เจœเจพเจ‚เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‰เจน เจฌเจฆเจฒเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพเจ‚เจฆเจพเฅค 5. **`errorMessage`**: เจ‰เจน เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เจฟเจคเฉ‡ เจตเฉ€ เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ letter case เจตเจฟเฉฑเจš `error:`, `error ` (เจธเจผเจฌเจฆ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ‡เฉฑเจ• เจธเจชเฉ‡เจธ, เจœเจฟเจตเฉ‡เจ‚ `no error found` เจตเจฟเฉฑเจš), `[error]`, `exception:`, `exception `, `[exception]` เจœเจพเจ‚ `traceback` เจนเฉ‹เจตเฉ‡, เจ†เจชเจฃเฉ€ เจชเจนเจฟเจฒเฉ€ เจฒเจพเจˆเจจ, เจ…เจ—เจฒเฉ€เจ†เจ‚ 10 เจฒเจพเจˆเจจเจพเจ‚ เจ…เจคเฉ‡ เจ†เจ–เจผเจฐเฉ€ 3 เจฒเจพเจˆเจจเจพเจ‚ เจฐเฉฑเจ–เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจจเฉเจนเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ€ เจฅเจพเจ‚ `โ€ฆ [N frames elided] โ€ฆ` marker เจฒเจ—เจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค Marker เจธเจฟเจฐเจซเจผ เจ‰เจฆเฉ‹เจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจชเจนเจฟเจฒเฉ€ เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ 13 เจคเฉ‹เจ‚ เจตเฉฑเจง เจฒเจพเจˆเจจเจพเจ‚ เจนเฉ‹เจฃ, เจ‡เจธ เจฒเจˆ 14 เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจฒเจพเจˆเจจเจพเจ‚ เจตเจพเจฒเฉ€ error เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ›เฉ‹เจŸเฉ€ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ (12 เจœเจพเจ‚ 13 เจฒเจพเจˆเจจเจพเจ‚ เจ‰เฉฑเจคเฉ‡ เจ†เจ–เจผเจฐเฉ€ 3 เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจฐเฉฑเจ–เฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉเจนเจฐเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ)เฅค เจ•เจฟเจธเฉ‡ เจฐเจฃเจจเฉ€เจคเฉ€ เจฆเฉ‡ เจฎเฉ‡เจฒ เจ–เจพเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจญเจพเจตเฉ‡เจ‚ เจ‰เจน เจ•เฉเจ เจตเฉ€ เจจเจพ เจฌเจšเจพเจตเฉ‡, เจฌเจพเจ…เจฆ เจฆเฉ€เจ†เจ‚ เจฐเจฃเจจเฉ€เจคเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจ…เจœเจผเจฎเจพเจˆเจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚เฅค เจœเจฆเฉ‹เจ‚ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ€ เจฐเจฃเจจเฉ€เจคเฉ€ เจ•เฉ‹เจˆ เจ…เจจเฉเจฎเจพเจจเจฟเจค tokens เจจเจนเฉ€เจ‚ เจฌเจšเจพเจ‰เจ‚เจฆเฉ€ (เจฒเฉฐเจฌเจพเจˆ รท 4, เจ‰เฉฑเจชเจฐ เจตเฉฑเจฒ round เจ•เฉ€เจคเฉ€) โ€” เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ 25 เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจฒเจพเจˆเจจเจพเจ‚ เจตเจพเจฒเฉ€ code-like เจซเจผเจพเจˆเจฒ, เจœเจพเจ‚ 2,000 เจ…เฉฑเจ–เจฐเจพเจ‚ เจคเฉ‹เจ‚ เจตเฉฑเจง เจชเจฐ 7 เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ items เจตเจพเจฒเฉ€ JSON array โ€” เจคเจพเจ‚ aggressive engine เจฎเฉ‚เจฒ tool result เจจเฉ‚เฉฐ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ: เจฆเฉ‹เจตเฉ‡เจ‚ callers (`compressAggressive()` เจ…เจคเฉ‡ `compressAnthropicToolResultBlock()`) `saved` เจฆเฉ‡ 0 เจœเจพเจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจนเฉ‹เจฃ เจ‰เฉฑเจคเฉ‡ เจฎเฉ‚เจฒ เจจเฉ‚เฉฐ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจจ, เจœเจฆเจ•เจฟ `compressToolResult()` เจ–เฉเจฆ เจซเจฟเจฐ เจตเฉ€ เจ‰เจธ เจฐเจฃเจจเฉ€เจคเฉ€ เจฆเฉ€ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆเฅค Tool-result เจ•เจฆเจฎ เจ…เฉฐเจคเจฟเจฎ เจซเจผเฉˆเจธเจฒเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ: engine เจฆเจพ fallback summarizer เจซเจฟเจฐ เจตเฉ€ 8,192 เจ…เฉฑเจ–เจฐเจพเจ‚ เจคเฉ‹เจ‚ เจฒเฉฐเจฌเฉ‡ `tool` เจœเจพเจ‚ `function` เจธเฉเจจเฉ‡เจนเฉ‡ เจจเฉ‚เฉฐ เจ›เฉ‹เจŸเจพ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ (`maxTokensPerMessage`, 2,048, เจ—เฉเจฃเจพ 4)เฅค #### เจ•เจฆเฉ‹เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ Tool result compression aggressive engine เจฆเจพ เจ•เจฆเจฎ 1 เจนเฉˆ (`open-sse/services/compression/aggressive.ts` เจตเจฟเฉฑเจš `compressAggressive()`), เจ‡เจธ เจฒเจˆ เจ‡เจน Aggressive mode เจตเจฟเฉฑเจš เจ…เจคเฉ‡ stacked pipeline เจฆเฉ‡ `aggressive` เจ•เจฆเจฎ เจตเจฟเฉฑเจš เจšเฉฑเจฒเจฆเจพ เจนเฉˆเฅค เจ‡เจน OpenAI-shape `tool` เจ…เจคเฉ‡ `function` เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจ…เจคเฉ‡ Anthropic `tool_result` blocks เจฆเฉ‡ เจ…เฉฐเจฆเจฐเจฒเฉ‡ เจŸเฉˆเจ•เจธเจŸ เจจเฉ‚เฉฐ เจ•เฉฐเจชเฉเจฐเฉˆเฉฑเจธ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจนเจฐ เจฐเจฃเจจเฉ€เจคเฉ€ เจฆเจพ `aggressive.toolStrategies` เจ…เจงเฉ€เจจ เจ†เจชเจฃเจพ switch เจนเฉˆ, เจ…เจคเฉ‡ เจธเจพเจฐเฉ‡ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจšเจพเจฒเฉ‚ เจนเจจเฅค Dashboard เจตเจฟเฉฑเจš, compression เจšเจพเจฒเฉ‚ เจนเฉ‹เจฃ เจ…เจคเฉ‡ default mode Aggressive เจนเฉ‹เจฃ เจฆเฉŒเจฐเจพเจจ switches Caveman เจชเฉฐเจจเฉ‡ เจฆเฉ€ **Advanced** view เจตเจฟเฉฑเจš เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค ### เจธเจŸเฉˆเจ•เจก เจชเจพเจˆเจชเจฒเจพเจˆเจจ stacked mode **เจ•เจˆ engines เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎเจตเจพเจฐ** เจšเจฒเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ โ€” เจ†เจฎ เจคเฉŒเจฐ เจ‰เฉฑเจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ RTK (tool output เจ‰เฉฑเจคเฉ‡ 60-90% เจฌเจšเจค), เจซเจฟเจฐ เจฌเจพเจ•เฉ€ เจŸเฉˆเจ•เจธเจŸ เจ‰เฉฑเจคเฉ‡ Caveman (~46% input เจฌเจšเจค)เฅค เจ‡เจ•เฉฑเจ เฉ‡ เจ•เจฐเจจ เจ‰เฉฑเจคเฉ‡, เจ‡เจน **78-95% เจฏเฉ‹เจ— เจฐเฉ‡เจ‚เจœ** เจฌเจฃเจฆเฉ€ เจนเฉˆ (เจ‰เฉฑเจชเจฐ Upstream Savings Math เจตเฉ‡เจ–เฉ‹): `1 - (1 - 0.60..0.90) ร— (1 - 0.46)` เจฆเฉ€ เจ”เจธเจค โ‰ˆ89% เจนเฉˆเฅค #### เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ ``` เจ‡เจจเจชเฉเฉฑเจŸ (1000 tokens) โ†’ RTK (command-aware filter) โ†’ 200 tokens โ†’ Caveman (filler removal) โ†’ 108 tokens โ†’ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ (108 tokens, ~89% เจฌเจšเจค) ``` #### เจ•เจฆเฉ‹เจ‚ เจตเจฐเจคเจฃเจพ เจนเฉˆ stacked mode เจจเฉ‚เฉฐ เจ‡เจจเฉเจนเจพเจ‚ เจฒเจˆ เจตเจฐเจคเฉ‹: - Tool-heavy workflows (agentic coding, research) - เจฒเจพเจ—เจค-เจธเฉฐเจตเฉ‡เจฆเจจเจธเจผเฉ€เจฒ batch processing - เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง token เจฌเจšเจค เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡ Stacked pipelines เจจเฉ‚เฉฐ global `stackedPipeline` compression setting เจฐเจพเจนเฉ€เจ‚, เจœเจพเจ‚ routing combo เจจเฉ‚เฉฐ เจฆเจฟเฉฑเจคเฉ‡ named compression combo เจฐเจพเจนเฉ€เจ‚ configure เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ‰เฉฑเจชเจฐ Per-Combo Override เจตเฉ‡เจ–เฉ‹) โ€” auto-combo `modePack` เจฐเจพเจนเฉ€เจ‚ เจจเจนเฉ€เจ‚ (เจ‰เจน field เจธเจฟเจฐเจซเจผ auto-combo model selection เจจเฉ‚เฉฐ เจฎเฉเฉœ weight เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ `stacked` เจ•เฉ‹เจˆ เจตเฉˆเจง pack name เจจเจนเฉ€เจ‚ เจนเฉˆ)เฅค --- ## เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจ•เจพเจ‚เจฌเฉ‹ เจ“เจตเจฐเจฐเจพเจˆเจก เจตเฉฑเจ–-เจตเฉฑเจ– เจตเจฐเจคเฉ‹เจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจฒเจˆ เจตเจฟเจนเจพเจฐ เจจเฉ‚เฉฐ เจฌเจพเจฐเฉ€เจ•เฉ€ เจจเจพเจฒ เจ…เจจเฉเจ•เฉ‚เจฒ เจ•เจฐเจจ เจตเจพเจธเจคเฉ‡, เจคเฉเจธเฉ€เจ‚ เจ—เจฒเฉ‹เจฌเจฒ เจ•เฉฐเจชเฉเจฐเฉˆเจธเจผเจจ เจฎเฉ‹เจก เจจเฉ‚เฉฐ **เจนเจฐเฉ‡เจ• เจ•เจพเจ‚เจฌเฉ‹ เจฒเจˆ** เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: ```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 เจจเจฟเจฏเจฎ