* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line â the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
39 KiB
ðïž Prompt Compression Guide â OmniRoute (æ¥æ¬èª)
ð Languages: ðºðž English · ðªð¹ am · ðžðŠ ar · ðŠð¿ az · ð§ð¬ bg · ð§ð© bn · ðšð¿ cs · ð©ð° da · ð©ðª de · ð¬ð· el · ðªðž es · ðªðª et · ð®ð· fa · ð«ð® fi · ð«ð· fr · ð®ðª ga · ð®ð³ gu · ð³ð¬ ha · ð®ð± he · ð®ð³ hi · ðð· hr · ððº hu · ðŠð² hy · ð®ð© id · ð³ð¬ ig · ð®ð¹ it · ð¬ðª ka · ð°ð km · ð®ð³ kn · ð°ð· ko · ð±ð¹ lt · ð±ð» lv · ð®ð³ ml · ð®ð³ mr · ð²ðŸ ms · ð²ð¹ mt · ð²ð² my · ð³ðµ ne · ð³ð± nl · ð³ðŽ no · ð®ð³ or · ð®ð³ pa · ðµð phi · ðµð± pl · ðµð¹ pt · ð§ð· pt-BR · ð·ðŽ ro · ð·ðº ru · ð±ð° si · ðžð° sk · ðžð® sl · ð·ðž sr · ðžðª sv · ð°ðª sw · ð®ð³ ta · ð®ð³ te · ð¹ð th · ð¹ð· tr · ðºðŠ uk-UA · ðµð° ur · ðºð¿ uz · ð»ð³ vi · ð³ð¬ yo · ðšð³ zh-CN · ð¹ðŒ zh-TW
察象ãšãªãã³ã³ããã¹ããèªåçã«15ïœ95%åæžããŸããæŠèŠã«ã€ããŠã¯ãREADMEã®å§çž®ã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
æŠèŠ
OmniRouteã¯ããªã¯ãšã¹ããäžæµãããã€ããŒã«å°éããåã«ããã¢ã¯ãã£ãã«å®è¡ããããã¢ãžã¥ãŒã«åŒã®ããã³ããå§çž®ãã€ãã©ã€ã³ãå®è£ ããŠããŸããããã«ãããã¯ãŒã¯ãããŒã倿Žããããšãªããééçã«ããŒã¯ã³ãåæžã§ããŸãã
ã¯ã©ã€ã¢ã³ããªã¯ãšã¹ã
â å§çž®æŠç¥ã»ã¬ã¯ã¿ãŒ
â ã³ã³ãã«ãããªãŒããŒã©ã€ãïŒ â ã³ã³ãèšå®ã䜿çš
â èªåããªã¬ãŒã®ãããå€ïŒ â èªåã¢ãŒãã䜿çš
â ããã©ã«ãã¢ãŒãïŒ â ã°ããŒãã«èšå®ã䜿çš
â ãªãïŒ â å§çž®ãã¹ããã
â éžæãããå§çž®ã¢ãŒã
â ãªãïŒå§çž®ãªã
â ã©ã€ãïŒå®å
šãªç©ºçœïŒæžåŒã®ã¯ãªãŒã³ã¢ããïŒçŽ15%ïŒ
â ã¹ã¿ã³ããŒãïŒé»æèª¿ã«ããäžèŠèªã®é€å»ïŒçŽ30%ïŒ
â ã¢ã°ã¬ãã·ãïŒå±¥æŽã®çµå¹Žå§çž®ïŒèŠçŽïŒçŽ50%ïŒ
â ãŠã«ãã©ïŒãã¥ãŒãªã¹ãã£ãã¯ãªæåãïŒã³ãŒããããã¯ã®å§çž®ïŒçŽ75%ïŒ
â RTKïŒã³ãã³ããèæ
®ããã¿ãŒããã«ïŒããŒã«åºåã®ãã£ã«ã¿ãªã³ã°ïŒäžæµåŽã§60ïœ90%ã®ç¯å²ïŒ
â ã¹ã¿ãã¯ïŒé åºä»ãããããã«ããšã³ãžã³ãã€ãã©ã€ã³ãéåžžã¯RTKã®åŸã«Cavemanãå®è¡ïŒå¯Ÿè±¡éšåã§78ïœ95%ã®ç¯å²ïŒ
â å§çž®æžã¿ãªã¯ãšã¹ã â ãããã€ããŒ
å§çž®ã¢ãŒã
ãªã
å§çž®ã¯é©çšãããŸããããã¹ãŠã®ã¡ãã»ãŒãžã倿Žãããã«ãã®ãŸãŸæž¡ãããŸãã
ã©ã€ãã¢ãŒãïŒçŽ15%åæžãã¬ã€ãã³ã·ãŒ1msæªæºïŒ
æãå®å šãªã¢ãŒãã§ããæå³ã¯äžå倿ŽãããæžåŒã®ã¿ãã¯ãªãŒã³ã¢ããããŸãã
| ææ³ | 説æ |
|---|---|
collapseWhitespace |
é£ç¶ãã空è¡ãçµ±åããè¡æ«ã®ç©ºçœãé€å»ãã |
dedupSystemPrompt |
éè€ããã·ã¹ãã ã¡ãã»ãŒãžãåé€ãã |
compressToolResults |
åé·ãªããŒã«ïŒé¢æ°åºåãå§çž®ãã |
removeRedundantContent |
ç¹°ãè¿ãããæç€ºãåé€ãã |
replaceImageUrls |
base64ç»åããŒã¿URIãççž®ãã |
æé©ãªçšéïŒ åžžææå¹ã§ã®å©çšãå®å šæ§ãéèŠãªã¯ãŒã¯ãããŒã
ã¹ã¿ã³ããŒãã¢ãŒãïŒçŽ30%åæžïŒ
Cavemanã«çæ³ãåŸãã¢ãŒãã§ãæå³ãç¶æããªããäžèŠèªãåé·ãªè¡šçŸãåé€ããŸãã
- äžèŠèªïŒãpleaseãããI thinkãããbasicallyãããactuallyãïŒãåé€
- åé·ãªè¡šçŸãç°¡æœåïŒãin order toãâãtoãããas a result ofãâãbecauseãïŒ
- äžå¯§ãªå©æ²è¡šçŸãåé€ïŒãWould you mind...ãããIf you could possibly...ãïŒ
- ã³ãŒãã£ã³ã°çšããã³ããåãã«èª¿æŽããã30以äžã®æ£èŠè¡šçŸã«ãŒã«
æé©ãªçšéïŒ æ¥åžžçãªã³ãŒãã£ã³ã°ã¯ãŒã¯ãããŒãã³ã¹ããéèŠããããŒã ã
ã¢ã°ã¬ãã·ãã¢ãŒãïŒçŽ50%åæžïŒ
é·æéã®ã»ãã·ã§ã³åãã®ã¹ããŒããªå±¥æŽç®¡çæ©èœã§ãã
- ã¡ãã»ãŒãžã®çµå¹Žå§çž® â å€ãã¡ãã»ãŒãžã»ã©æ®µéçã«åŒ·ãå§çž®
- ããŒã«çµæã®èŠçŽ â é·ãããŒã«åºåãèŠçŽã«çœ®æ
- æ§é çæŽåæ§ã¬ãŒã â
tool_useãštool_resultã®ãã¢ã®æŽåæ§ãç¶æ - ã³ã³ããã¹ããŠã£ã³ããŠã®èæ ® â ã¢ãã«ããšã®ããŒã¯ã³å¶éãéµå®
æé©ãªçšéïŒ é·æéã®ãããã°ã»ãã·ã§ã³ãå€§èŠæš¡ãªã³ãŒãããŒã¹ã
ãŠã«ãã©ã¢ãŒãïŒçŽ75%åæžïŒ
ããŒã¯ã³ãç¹ã«éèŠãªã·ããªãªåãã®æå€§å§çž®ã¢ãŒãã§ãã
- ãã¥ãŒãªã¹ãã£ãã¯ãªæåã â é¢é£æ§ã®ãããå€ãäžåãã¡ãã»ãŒãžãåé€
- ã³ãŒããããã¯ã®å§çž® â å埩çãªã³ãŒãäŸãå§çž®
- äºåæ¢çŽ¢ã«ããåãè©°ã â ã³ã³ããã¹ããŠã£ã³ããŠã«å¯Ÿããæé©ãªåãè©°ãäœçœ®ãç¹å®
- ã¢ã°ã¬ãã·ãã¢ãŒãã®å šæ©èœãå«ã
æé©ãªçšéïŒ ã³ã³ããã¹ãäžéã«ç¹°ãè¿ãéããå Žåã
RTKã¢ãŒãïŒäžæµåŽã§60ïœ90%ã®ç¯å²ïŒ
RTKã¢ãŒãã¯ãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã®ã»ãã·ã§ã³ã«çŸããåé·ãªããŒã«åºååãã«æé©åãããŠããŸãã
git statusãgit diffãgit logããã¹ãã©ã³ããŒãTypeScript/Vite/Webpackãã«ããESLint/Biome/Prettierãnpm auditïŒã€ã³ã¹ããŒã«ãDockerãã°ãã€ã³ãã©åºåãæ±çšã·ã§ã«åºåãªã©ã®ã³ãã³ãïŒåºåã¯ã©ã¹ãæ€åºopen-sse/services/compression/engines/rtk/filters/ã«ããJSONãã£ã«ã¿ãŒããã¯ãé©çš- ãããžã§ã¯ããŸãã¯ã°ããŒãã«ã®
filters.tomlãã¡ã€ã«ããRTK TOML schema v1ãã£ã«ã¿ãŒãã€ã³ããŒãããã€ã³ã©ã€ã³ãã¹ãã«ããæ€èšŒãšãããžã§ã¯ããã¡ã€ã«ã«å¯Ÿããä¿¡é Œã²ãŒãã宿œ - ã€ã³ã©ã€ã³æ€èšŒãµã³ãã«ãåãã49åã®çµã¿èŸŒã¿ãã£ã«ã¿ãŒãæäŸ
- ANSIå¶åŸ¡ã·ãŒã±ã³ã¹ãããã°ã¬ã¹ããŒãéè€è¡ã察åŠäžèŠãªãã€ãºãåé€
- 倱æããšã©ãŒãèŠåã倿Žããããã¡ã€ã«ãèŠçŽãé·ãåºåã®æ«å°Ÿãä¿æ
- ä¿¡é Œã²ãŒãä»ããããžã§ã¯ããã£ã«ã¿ãŒãã°ããŒãã«ãã£ã«ã¿ãŒãããã³å¿ èŠã«å¿ããŠç·šéæžã¿ã®çåºåã埩å ããæ©èœããµããŒã
æé©ãªçšéïŒ ã·ã§ã«ããã«ãããã¹ããgitãgrepããã¡ã€ã«åºåã®ãã©ã³ã¹ã¯ãªãããå«ããšãŒãžã§ã³ãã»ãã·ã§ã³ã
ã¹ã¿ãã¯ã¢ãŒãïŒå¯Ÿè±¡éšåã§78ïœ95%ã®ç¯å²ïŒ
ã¹ã¿ãã¯ã¢ãŒãã¯ãè€æ°ã®å§çž®ãšã³ãžã³ã決å®è«çãªé åºã§å®è¡ããŸããããã©ã«ãã®ãã€ãã©ã€ã³ã¯æ¬¡ã®ãšããã§ãã
RTK -> Caveman
ãã®é åºã§ã¯ããŸãã¿ãŒããã«ïŒããŒã«åºåãã³ã³ãã¯ãã«ãããã®åŸãæ®ãã®èªç¶èšèªããã³ããã«Cavemanã®æå³çå§çž®ãé©çšããŸããã¹ã¿ãã¯ãã€ãã©ã€ã³ã¯ãã°ããŒãã«ã«èšå®ããããšããã«ãŒãã£ã³ã°ã³ã³ãã«å²ãåœãŠãããå§çž®ã³ã³ããéããŠèšå®ããããšãã§ããŸãã
æé©ãªçšéïŒ å€§éã®ããŒã«ãã°ã«ã人éã«ããæç€ºãã¢ã·ã¹ã¿ã³ãã®èŠçŽãæ··åšããã³ã³ããã¹ãã
ã¢ããã¹ããªãŒã ã®åæžçèšç®
OmniRoute ã§ã¯ãå§çž®ã«ããåæžå¹æããã¢ããã¹ããªãŒã ãããžã§ã¯ãã®ãã³ãããŒã¯ãš OmniRoute ç¬èªã®ãšã³ãžã³æ§æãšãã 2 ã€ã®æ å ±æºã«åºã¥ããŠèª¬æããŠããŸãã
| æ å ±æº | ããã§äœ¿çšããã¢ããã¹ããªãŒã README ã®æ°å€ |
|---|---|
| Caveman | åºåããŒã¯ã³ã ~75% æžå°ããã³ãããŒã¯ã§ã®å¹³ååºååæžç 65%ãç¯å² 22-87%ãå
¥åå§çž®ããŒã«ã§ ~46% |
| RTK | ã³ãã³ãåºåã 60-90% åæžããµã³ãã«ã»ãã·ã§ã³ã§ã¯ ~118,000 -> ~23,900 ããŒã¯ã³ãã€ãŸã 79.7% ã®åæžïŒ~80%ïŒ |
éè€ããããŒã«ïŒã³ã³ããã¹ãã®ãã€ããŒãã«å¯ŸããŠãOmniRoute ã®ããã©ã«ãæ§æã§ã¯ãšã³ãžã³ã次ã®é åºã§çµã¿åãããŸãã
RTK -> Caveman
çµã¿åãããåæžçã¯å ç®ã§ã¯ãªããä¹ç®ã§èšç®ãããŸãã
combined = 1 - (1 - RTK ã®åæžç) * (1 - Caveman ã®å
¥ååæžç)
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ïŒã¯ã
ã³ãŒããããã¯ãURLãèŠåºããããŒãžã§ã³ããŸãã¯ãã¹ãŠå€§æåã®å®æ°èå¥åãåé€ã»å€æŽãããããª
æžãæãã®éä¿¡ãæåŠããŸãã
ããã¯ãã°ã§ã¯ãªããæ³å®ãããå®å šãªåäœã§ããäž»ã«æŽçããããã¡ã€ã«ãèªã¿åã£ãã grep ããããã ã³ãŒãã£ã³ã°ã»ãã·ã§ã³ã§ã¯ãå§çž®ãå®å šã«æå¹åããŠããŠãç·åæžçã¯æ§ããã«ãªããŸããäžæ¹ã倱æã ç¹°ãè¿ãã«ãŒãã倧éã®åºåãè¡ããªã³ã¿ãŒã«ééããã»ãã·ã§ã³ã§ã¯ããã®ãã©ãã£ãã¯ã«å¯Ÿã㊠78-95% ã® åæžçãæå€§éã«åŸãããŸããåäžã»ãã·ã§ã³ã®ç·åæžçãäœãããšã ããæ ¹æ ã«ãå§çž®ã®èšå®ã誀ã£ãŠãããš å€æããªãã§ãã ããããŸããå ã®ããŒã«åºåãå®éã«åé·ã ã£ããã©ããã確èªããŠãã ããã
ããŒã¯ã³åæžã®å¯èŠå
å§çž®ãªã: LLM ã«éä¿¡ãããããŒã¯ã³æ° 47K
Lite äœ¿çšæ: éä¿¡ãããããŒã¯ã³æ° 40K ïŒ15% åæž â å®å
šã§åžžææå¹ïŒ
Standard äœ¿çšæ: éä¿¡ãããããŒã¯ã³æ° 33K ïŒ30% åæž â caveman-speak ã«ãŒã«ïŒ
Aggressive äœ¿çšæ: éä¿¡ãããããŒã¯ã³æ° 24K ïŒ50% åæž â ãšã€ãžã³ã° + èŠçŽïŒ
Ultra äœ¿çšæ: éä¿¡ãããããŒã¯ã³æ° 12K ïŒ75% åæž â ãã¥ãŒãªã¹ãã£ãã¯ãªæåãïŒ
RTK äœ¿çšæ: éä¿¡ãããããŒã¯ã³æ° 19K-5K ïŒã³ãã³ãïŒããŒã«åºåã 60-90% åæžïŒ
Stacked äœ¿çšæ: éä¿¡ãããããŒã¯ã³æ° 10K-2.5K ïŒå¯Ÿè±¡ãšãªã RTK+Caveman ã®ç¯å²ã§ 78-95% åæžïŒ
èšå®
ããã·ã¥ããŒã
Dashboard â Context & Cache ã«ç§»åããŸãã
- Caveman â ã¢ãŒãéžæãèšèªããã¯ããã¬ãã¥ãŒãã°ããŒãã«ããã©ã«ã
- RTK â ã³ãã³ããã£ã«ã¿ãŒã®ãã¬ãã¥ãŒãRTK ã®å®å šèšå®ããã£ã«ã¿ãŒã«ã¿ãã°
- Compression Combos â ã«ãŒãã£ã³ã°ã³ã³ãã«å²ãåœãŠããååä»ãã®ãšã³ãžã³ãã€ãã©ã€ã³
- Auto-Trigger Threshold â ããŒã¯ã³æ°ããããå€ãè¶ ãããšãã«å§çž®ãèªåçã«æå¹å
ã³ã³ãããšã®ãªãŒããŒã©ã€ã
Dashboard â Context & Cache â Compression Combos ã§ãå§çž®ã³ã³ããã«ãŒãã£ã³ã°ã³ã³ãã«å²ãåœãŠãŸãã
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
ããã«ãããææãµãã¹ã¯ãªãã·ã§ã³ã§ã¯ Lite ã¢ãŒããç¶æããªãããç¡æãããã€ããŒãã³ãŒãã£ã³ã°åããããã€ããŒã§å€æ®µå§çž®ã䜿çšã§ããŸãã
ãã®ãã³ã³ãããšã®ãªãŒããŒã©ã€ããå²ãåœãŠã¯ãã«ãŒãã£ã³ã°ã³ã³ãã®å§çž®ã¢ãŒãã®ãªãŒããŒã©ã€ãïŒ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:<id> |
æå¹åãããŠããå Žåã«åäžã®ãšã³ãžã³ã䜿çšããŸãïŒäŸ: engine:rtkïŒã |
<combo> |
ååä»ãã³ã³ããæåã«ååïŒå€§æåãšå°æåãåºå¥ããªãïŒã次㫠ID ã§ç §åããŸãã |
é©çšããããã©ã³ã¯ãX-OmniRoute-Compression: <mode>; source=<source> ã¬ã¹ãã³ã¹ããããŒã§è¿ãããŸãã<source> ã¯ãrequest-headerãrouting-overrideãactive-profileãauto-triggerãdefaultããŸã㯠off ã®ããããã§ãã
API
# å§çž®èšå®ãååŸ
curl http://localhost:20128/api/settings/compression
# å§çž®èšå®ãæŽæ°
curl -X PUT http://localhost:20128/api/settings/compression \
-H "Content-Type: application/json" \
-d '{"defaultMode":"stacked","autoTriggerMode":"stacked","autoTriggerTokens":32000}'
# ç¹å®ã® RTK/stacked ãã€ããŒãããã¬ãã¥ãŒ
curl -X POST http://localhost:20128/api/compression/preview \
-H "Content-Type: application/json" \
-d '{"mode":"rtk","messages":[{"role":"tool","content":"npm test output here"}]}'
# RTK ãã£ã«ã¿ãŒããã¯ãäžèŠ§è¡šç€º
curl http://localhost:20128/api/context/rtk/filters
# ãªãã·ã§ã³ã®ã³ãã³ãã¡ã¿ããŒã¿ã䜿çšã㊠RTK ãçŽæ¥ãã¹ã
curl -X POST http://localhost:20128/api/context/rtk/test \
-H "Content-Type: application/json" \
-d '{"command":"npm test","text":"FAIL tests/example.test.ts\nError: boom"}'
ä¿è·ããããã®
å§çž®ãšã³ãžã³ã¯ã以äžãåžžã«ä¿æããŸãïŒ
- â ã³ãŒããããã¯ïŒãã§ã³ã¹åœ¢åŒããã³ã€ã³ã©ã€ã³ïŒ
- â URLããã³ãã¡ã€ã«ãã¹
- â JSONæ§é ããã³æ§é åããŒã¿
- â èå¥åããã³ä¿è·å¯Ÿè±¡ã®æè¡ããŒã¯ã³
- â æ°åŒ
- â ããŒã«ïŒé¢æ°åŒã³åºãã®å®çŸ©
- â ã·ã¹ãã ããã³ããïŒliteã¢ãŒãã®å ŽåïŒ
RTKã®çåºåãªã«ããªãŒã§ã¯ãäœããã®ããŒã¿ãæ°žç¶åããåã«ãäžè¬çãªAPIããŒãBearerããŒã¯ã³ãSlackããŒã¯ã³ãAWSã¢ã¯ã»ã¹ããŒã ãã¹ã¯ãŒããããŒã¯ã³ãã·ãŒã¯ã¬ãããç§å¿åããŸãã
å§çž®çµ±èš
å§çž®ããããã¹ãŠã®ãªã¯ãšã¹ãã«ã¯ããµãŒããŒãã°å ã«çµ±èšæ å ±ãå«ãŸããŸãïŒ
{
"originalTokens": 47200,
"compressedTokens": 40120,
"savingsPercent": 15.0,
"techniquesUsed": ["collapseWhitespace", "dedupSystemPrompt"],
"mode": "lite",
"engine": "caveman",
"compressionComboId": "coding-agent-stack",
"durationMs": 0.8,
"rtkRawOutputPointers": []
}
ãã§ãŒãºå¥ããŒãããã
| ãã§ãŒãº | ã¢ãŒã | ã¹ããŒã¿ã¹ |
|---|---|---|
| Phase 1 | Off, Lite | â ãªãªãŒã¹æžã¿ |
| Phase 2 | Standard, Aggressive, Ultra | â ãªãªãŒã¹æžã¿ |
| Phase 3 | RTK, Stacked, Compression Combos | â ãªãªãŒã¹æžã¿ |
| Phase 4 | Output Styles, SLM-tier Ultra, eval harness | â ãªãªãŒã¹æžã¿ |
| Phase 4C | é©å¿åã³ã³ããã¹ãäºç®ïŒããã€ã€ã«ãïŒâ ã³ã³ãã¥ãŒããšã³ãžã³ + APIïŒPUT /api/settings/compressionã®contextBudgetïŒ+ ããã·ã¥ããŒãã®ã¢ãŒãïŒããªã·ãŒå¶åŸ¡ |
â ãªãªãŒã¹æžã¿ |
è¬èŸ
Standardã¢ãŒãã®å§çž®ã«ãŒã«ã¯ãJuliusBrusseeã«ããCavemanïŒâ 51K+ïŒâ 話é¡ãšãªã£ããå€ãã®ããŒã¯ã³ã䜿ãããå°ãªãããŒã¯ã³ã§äºè¶³ããããšãããããžã§ã¯ã â ã«çæ³ãåŸãŠããŸããCavemanã§ã¯ãåºåããŒã¯ã³ã~75%æžå°ããã³ãããŒã¯å¹³åã®åºååæžçã65%ãåºååæžçã®ç¯å²ã22-87%ãå
¥åå§çž®ããŒã«ã®åæžçã~46%ãšå ±åãããŠããŸãã
RTKã¢ãŒãã¯ãRTK AIã«ããRTK - Rust Token Killer â ã¿ãŒããã«ããã«ãããã¹ããgitãããã³ããŒã«åºåã®ãã£ã«ã¿ãªã³ã°ã«å¯Ÿå¿ãã髿§èœãªã³ãã³ãåºåå§çž®ãããžã§ã¯ã â ã«çæ³ãåŸãŠããŸããRTKã§ã¯60-90%ã®åæžçãå ±åãããŠãããREADMEã®ãµã³ãã«ã»ãã·ã§ã³ã§ã¯~80%ã®åæžã瀺ãããŠããŸãã
é«åºŠãªå§çž®ã·ã¹ãã
7ã€ã®æšæºã¢ãŒãã«å ããŠãOmniRouteã«ã¯ãã³ã³ããã¹ãã«åºã¥ããŠèªåçã«åäœããè€æ°ã®é«åºŠãªå§çž® ã·ã¹ãã ãå«ãŸããŠããŸãã
ãã£ãã·ã¥å¯Ÿå¿å§çž®
äžéšã®ãããã€ããŒïŒããã³ãããã£ãã·ã¥ã䜿çšããAnthropicãªã©ïŒã¯ãããã³ããã®äžéšããã£ãã·ã¥ããŠã³ã¹ããšã¬ã€ãã³ã·ãŒãåæžã§ããããã³ãããã£ãã·ã¥ããµããŒãããŠããŸãã ãã£ãã·ã¥ãæå¹ãªå Žåãç©æ¥µçãªå§çž®ã«ãã£ãŠãã£ãã·ã¥æžã¿ããŒã¯ã³ã倿Žããããã£ãã·ã¥ãç¡å¹ã«ãªããããå®éã«ã¯ããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸãã
cachingAware.tsã¢ãžã¥ãŒã«ã¯ããã£ãã·ã¥ã³ã³ããã¹ããæ€åºããããã«å¿ããŠ
å§çž®æŠç¥ã調æŽããããšã§ããã®åé¡ã解決ããŸãã
ä»çµã¿
- ãã£ãã·ã¥ã³ã³ããã¹ããæ€åº â ãªã¯ãšã¹ãæ¬æã§
cache_controlããŒã«ãŒãã¹ãã£ã³ããŸã - ãã£ãã·ã¥å¯Ÿå¿ãããã€ããŒãç¹å® â 察象ãããã€ããŒããã£ãã·ã¥ããµããŒãããŠããã確èªããŸã
- æŠç¥ãèª¿æŽ â ãã£ãã·ã¥å¯Ÿå¿ãããã€ããŒã§ã¯
aggressive/ultraãstandardã«ããŠã³ã°ã¬ãŒãããŸã - ã·ã¹ãã ããã³ãããã¹ããã â ã·ã¹ãã ããã³ããã¯éåžžãã£ãã·ã¥ããããããå§çž®ããŸãã
- 決å®è«çãªå€æãäœ¿çš â äžè²«ããåºåãçæãã倿ã®ã¿ã䜿çšããŸã
ã³ãŒãäŸ
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ïŒïŒLiteå§çž®ïŒç©ºçœãæžåŒã®æŽçïŒ
- å€ãã¿ãŒã³ïŒ9+ïŒïŒCavemanå§çž®ïŒäžèŠèªã®é€å»ãèŠçŽïŒ
- éåžžã«å€ãã¿ãŒã³ïŒ20+ïŒïŒå€§å¹ ã«èŠçŽãããåé€
ã³ãŒãäŸ
import { applyAging } from "@omniroute/open-sse/services/compression/progressiveAging";
const messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "What is 2+2?" },
{ role: "assistant", content: "4" },
// ... ããã«50ã¿ãŒã³ ...
];
const { messages: aged, saved } = applyAging(messages, {
verbatim: 3, // æåã®3ã¿ãŒã³ïŒåæã®ãŸãŸ
light: 8, // ã¿ãŒã³4ïœ8ïŒLiteå§çž®
moderate: 20, // ã¿ãŒã³9ïœ20ïŒCavemanå§çž®
// ã¿ãŒã³21以éïŒå€§å¹
ãªèŠçŽ
});
// saved = åæžãããããŒã¯ã³æ°
䜿çšããã¿ã€ãã³ã°
ããã°ã¬ãã·ããšãŒãžã³ã°ã¯ãaggressiveã¢ãŒããšultraã¢ãŒãã§ã¯åžžã«æå¹ã§ããç¹ã«æ¬¡ã®çšéã§å¹æãçºæ®ããŸãã
- é·æéã«ãããã³ãŒãã£ã³ã°ã»ãã·ã§ã³
- è€æ°æ¥ã«ãŸãããäŒè©±
- 倿°ã®ããŒã«åŒã³åºãã䌎ããšãŒãžã§ã³ãåã¯ãŒã¯ãããŒ
åå§äººåºåã¢ãŒã
outputMode.tsã¢ãžã¥ãŒã«ã¯ãã¢ãã«èªäœã«å§çž®ãããç°¡æœãªåºåïŒãåå§äººãã¹ã¿ã€ã«ïŒãçæãããããã®ã·ã¹ãã ããã³ããæç€ºã泚å
¥ããŸãã
ä»çµã¿
å ¥åãå§çž®ãã代ããã«ããã®ã¢ãŒãã§ã¯æ¬¡ã®ãããªã·ã¹ãã ããã³ããã远å ããŸãã
ãæå°éã®èšèã§åçããŠãã ããã瀟亀èŸä»€ã¯çããŠãã ãããçãæã䜿çšããŠãã ãããã
ããã¯ç¹ã«æ¬¡ã®çšéã§å¹æãçºæ®ããŸãã
- ã³ãŒãçæïŒç°¡æœãªåºå = ããå°ãªãããŒã¯ã³ïŒ
- ç°¡åãªQ&AïŒè©³ãã説æãäžèŠïŒ
- ãããåŠçïŒã¹ã«ãŒããããæå€§åïŒ
䜿çšããã¿ã€ãã³ã°
åå§äººåºåã¢ãŒãã¯ãªããã€ã³ã§ããcomboèšå®ã§æ¬¡ã®ããã«æå®ããŸãã
{
"strategy": "auto",
"config": {
"auto": {
"outputMode": "caveman"
}
}
}
åºåã¹ã¿ã€ã«ïŒã«ã¿ãã°ïŒ
äžèšã®åå§äººåºåã¢ãŒãã¯ãåŸæ¥ã®åäžã¹ã¿ã€ã«æ¹åŒã§ãããã§ãŒãº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 |
ã¢ã¯ã·ã§ã³ãæåã«æç€ºïŒèª¬ææããå ã«ã³ãã³ãããã¹ãã¹ãããããæç€ºïŒããçªå·ä»ãã®æéãªæé ãå ·äœçãªæ¬¡ã®ã¹ãããã1ã€ã ã瀺ããŸããå眮ããèŠçŽãç· ãã®èšèã¯äœ¿çšããŸããã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ã®3ã€ã®åŒ·åºŠã¬ãã«ãçšæãããŠããŸãããã¹ãŠã®ã¬ãã«ã®æ«å°Ÿã«ã¯å
±éã®å¢çæ¡é
ã远å ãããã³ãŒããããã¯ããã¡ã€ã«ãã¹ãã³ãã³ãããšã©ãŒæååãURLãèå¥åããã®ãŸãŸç¶æãããŸãã
æ³šå ¥ã®ä»çµã¿
applyOutputStyles()ïŒopen-sse/services/compression/outputStyles/apply.tsïŒã¯ãéžæå
容ãã«ã¿ãã°ãšç
§åããŠè§£æ±ºããŸãïŒäžæãªIDããã±ãŒã«ãäžèŽããªãã¹ã¿ã€ã«ã¯åé€ããããšã©ãŒã«ã¯ãªããŸããïŒãéžæããæç€ºãã«ã¿ãã°é ã«é£çµããå¢çæ¡é
ãäžåºŠã ã远å ããŠããã®çµæãåäžã®åªçæ§ããŒã«ãŒïŒ[OmniRoute Output Styles]ïŒã®åŸãã«ããã·ã¹ãã ããã³ããã®å
é ãžé
眮ããŸããåé©çšããŠãäœãèµ·ãããŸãããæ€åºããããªã¯ãšã¹ãèšèªã®ç¿»èš³ãååšããå Žåã¯ãè±èªã®ä»£ããã«ããŒã«ã©ã€ãºãããæç€ºã泚å
¥ãããŸãã
æå¹åããæ¹æ³
ããã·ã¥ããŒãã§ã¯ãContext â Settings â Compressionã«ç§»åããŸããåã¹ã¿ã€ã«ã«ããªã³/ãªãã®åãæ¿ããšã¬ãã«éžæãåããè¡ã1ã€ãã€è¡šç€ºãããŸããããã°ã©ã ãã䜿çšããå Žåãå§çž®èšå®ã§ã¯éžæå å®¹ãæ¬¡ã®ããã«ä¿åãããŸãã
{
"outputStyles": [
{ "id": "i-have-adhd", "level": "full" },
{ "id": "less-code", "level": "lite" }
]
}
åŸæ¹äºææ§ïŒåŸæ¥ã®outputMode: "caveman" comboèšå®ãåŒãç¶ãæ©èœããterse-proseã«ãããã³ã°ãããŸããåŸæ¥ã®åèšèªã§ã¯ã以åã®æ³šå
¥å
容ãšãã€ãåäœã§åäžã§ãã
èšèªéžæïŒlanguageConfig.enabledããªã³ã®å ŽåãautoDetectã¯ææ°ã®ãŠãŒã¶ãŒã¡ãã»ãŒãžã®èšèªãéžæããŸãïŒå
¥åãšã³ãžã³ãšåãæ€åºåšã䜿çšïŒãautoDetectããªãã«ãããšãdefaultLanguageã«åºå®ãããŸãããªãã®å Žåã¯è±èªã«ãªããŸãã
ã¹ã¿ã€ã« à èšèªãããªãã¯ã¹ã¯ãtests/unit/compression/output-styles-i18n-matrix.test.tsã«ãã£ãŠåºå®ãããŠããŸããæ°ããã¹ã¿ã€ã«ã¯ãå°ãªããšãpt-BR翻蚳ïŒãŸãã¯æç€ºçã«è¿œè·¡ãããäŸå€ïŒããªããã°ãªãªãŒã¹ã§ãããæ¢åã®ã¹ã¿ã€ã«ãããã±ãŒã«ãéç¥ãªã倱ãããããšããããŸãããã¹ã¿ã€ã«ã远å ããæ¹æ³ã«ã€ããŠã¯ãEXTENDING_COMPRESSION.mdãåç
§ããŠãã ããã
ããŒã«çµæã®å§çž®
toolResultCompressor.tsã¢ãžã¥ãŒã«ã¯ãããŒã«çµæïŒé¢æ°åŒã³åºãããšãŒãžã§ã³ãã®åºåãæ€çŽ¢çµæãªã©ïŒåãã«5ã€ã®å°çšå§çž®æŠç¥ãæäŸããŸãã
- æ€çŽ¢çµæã®å§çž® â éè€ããçµæãåé€ããäžäœNä»¶ãç¶æããŸã
- ãã¡ã€ã«èªã¿åãã®å§çž® â 倧ããªãã¡ã€ã«ãåãè©°ããããããŒãšã€ã³ããŒããç¶æããŸã
- ã³ãŒãå®è¡ã®å§çž® â å¿ èŠäžå¯æ¬ ãªstdout/stderrã®ã¿ãç¶æããŸã
- ããŒã¿ããŒã¹ã¯ãšãªã®å§çž® â è¡æ°ãå¶éããåé·ãªã¡ã¿ããŒã¿ãåé€ããŸã
- APIã¬ã¹ãã³ã¹ã®å§çž® â nullãã£ãŒã«ããåé€ããé åãç°¡æœã«ããŸã
䜿çšããã¿ã€ãã³ã°
ããŒã«åŒã³åºããååšããå ŽåãããŒã«çµæã®å§çž®ã¯åžžã«æå¹ã§ããèšå®ã¯äžèŠã§ãã
ã¹ã¿ãã¯ãã€ãã©ã€ã³
ã¹ã¿ãã¯ã¢ãŒãã§ã¯ãè€æ°ã®ãšã³ãžã³ãé çªã«å®è¡ããŸããéåžžã¯ãæåã«RTKïŒããŒã«åºåã60ïœ90%åæžïŒãå®è¡ããæ¬¡ã«CavemanïŒæ®ãã®ããã¹ããããã«30%åæžïŒãå®è¡ããŸããããã«ãããåèš78ïœ95%ã®åæžãå®çŸããŸãã
ä»çµã¿
å
¥åïŒ1000ããŒã¯ã³ïŒ
â RTKïŒã³ãã³ã察å¿ãã£ã«ã¿ãŒïŒâ 200ããŒã¯ã³
â CavemanïŒåé·è¡šçŸã®åé€ïŒâ 140ããŒã¯ã³
â åºåïŒ140ããŒã¯ã³ã86%åæžïŒ
䜿çšããã¿ã€ãã³ã°
ã¹ã¿ãã¯ã¢ãŒãã¯ã次ã®çšéã§äœ¿çšããŸãã
- ããŒã«ãå€çšããã¯ãŒã¯ãããŒïŒãšãŒãžã§ã³ãåã³ãŒãã£ã³ã°ã調æ»ïŒ
- ã³ã¹ããéèŠãããããåŠç
- ããŒã¯ã³åæžéãæå€§åããå¿ èŠãããå Žå
comboã§æ¬¡ã®ããã«èšå®ããŸãã
{
"strategy": "auto",
"config": {
"auto": {
"modePack": "stacked"
}
}
}
ã³ã³ãåäœã®å§çž®ãªãŒããŒã©ã€ã
ããŸããŸãªãŠãŒã¹ã±ãŒã¹ã«å¿ããŠåäœã现ãã調æŽãããããã°ããŒãã«ãªå§çž®ã¢ãŒããã³ã³ãåäœã§ãªãŒããŒã©ã€ãã§ããŸãã
{
"id": "coding-combo",
"strategy": "priority",
"config": {
"auto": {
"weights": { "taskFit": 0.5 },
"modePack": "quality-first"
}
},
"compressionOverride": {
"mode": "aggressive",
"stackedPipelines": ["rtk", "caveman"],
"preserveToolDefinitions": true
}
}
ããã¯æ¬¡ã®çšéã«åœ¹ç«ã¡ãŸãã
- ã³ãŒãã£ã³ã°çšã³ã³ã: é·æéã®ã»ãã·ã§ã³ã«ã¯
aggressiveã¢ãŒããäœ¿çš - ç°¡å㪠Q&A çšã³ã³ã: é«éãªå¿çã«ã¯
liteã¢ãŒããäœ¿çš - ããŒã«ãå€çšããã³ã³ã: æå€§éã®åæžã«ã¯
stackedã¢ãŒããäœ¿çš - æ¬çªç°å¢çšã³ã³ã: ãã£ãã·ã¥æ©èœãæã€ãããã€ããŒã«ã¯
cache-awareã¢ãŒãã䜿çš
é¢é£é ç®
- ç°å¢èšå® â å§çž®ã«é¢ããç°å¢å€æ°
- ã¢ãŒããã¯ãã£ã¬ã€ã â å§çž®ãã€ãã©ã€ã³ã®å éšæ§é
- ãŠãŒã¶ãŒã¬ã€ã â å§çž®ã®å©çšéå§æ¹æ³
- RTK å§çž® â RTK ãã£ã«ã¿ãŒãä¿¡é Œã¢ãã«ãæ€èšŒã²ãŒããçåºåã®åŸ©å
- å§çž®ãšã³ãžã³ â CavemanãRTKãã¹ã¿ãã¯ãAPIãMCPãããã·ã¥ããŒã
- å§çž®ã«ãŒã«åœ¢åŒ â JSON ã«ãŒã«ããã¯åœ¢åŒ
- å§çž®èšèªãã㯠â èšèªåºæã® Caveman ã«ãŒã«