與開發(fā)完全指南)
如何為Caveman添加新的Compressor壓縮器注冊(cè)與開發(fā)完全指南【免費(fèi)下載鏈接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman項(xiàng)目地址: https://gitcode.com/GitHub_Trending/caveman1/cavemanCaveman 是一款面向 AI Agent 的 Token 壓縮引擎核心賣點(diǎn)是用最少的 token 把事辦成——通過壓縮器Compressor把 JSON、日志、代碼等上下文縮減最多 65%。當(dāng)你想支持一種新內(nèi)容類型比如 Markdown 表格、SVG、數(shù)據(jù)庫(kù)查詢結(jié)果就需要為 Caveman 注冊(cè)一個(gè)新的 Compressor。本文用通俗的方式講清楚壓縮器注冊(cè)機(jī)制、開發(fā)步驟、安全等級(jí)聲明和測(cè)試要求幫助你從零到提交 PR。一、先搞懂Caveman 的壓縮器注冊(cè)機(jī)制Caveman 的引擎采用「檢測(cè) → 查注冊(cè)表 → 壓縮 → 門禁校驗(yàn)」的流水線。所有 Compressor 都集中在engine/compressors/目錄下由一張**注冊(cè)表Registry**統(tǒng)一路由Compressor 接口每個(gè)壓縮器只需實(shí)現(xiàn) 3 個(gè)方法見 compressor.goContentType()返回它負(fù)責(zé)的內(nèi)容類型名如json、logSafetyClass()聲明自身在 S0–S4 安全階梯上的等級(jí)Compress(input)純字節(jié)變換成功返回壓縮結(jié)果任何解析失敗都返回okfalse引擎會(huì)把原始字節(jié)原樣透?jìng)鱢ail-closed 設(shè)計(jì)Registry一張「內(nèi)容類型 → Compressor」的映射表。Default()函數(shù)一次性注冊(cè)全部 15 個(gè)內(nèi)置壓縮器你的新壓縮器也在這里上崗。type Compressor interface { ContentType() string SafetyClass() safety.Class Compress(input []byte) (out []byte, ok bool) }內(nèi)置 Compressor 一覽內(nèi)容類型壓縮器選擇方式j(luò)sonJSON 數(shù)組折疊保留錯(cuò)誤項(xiàng)、首尾元素自動(dòng)檢測(cè)log日志降噪保留 ERROR/FATAL 行自動(dòng)檢測(cè)code源碼精簡(jiǎn)tree-sitter / go-ast 雙實(shí)現(xiàn)自動(dòng)檢測(cè)diff/search-result/text/html/tabular/config/terminal對(duì)應(yīng)專用壓縮器自動(dòng)檢測(cè)toon/a11y/toolschema/repetition等高級(jí)變換僅顯式指定Options.Type幾個(gè)設(shè)計(jì)要點(diǎn)值得新手特別注意純字節(jié)變換Compressor 不數(shù) token、不存恢復(fù)記錄、不碰網(wǎng)絡(luò)——這些由引擎核心負(fù)責(zé)所以每個(gè)壓縮器都是自包含、可獨(dú)立測(cè)試的模塊。確定性 冪等相同輸入永遠(yuǎn)得到相同輸出且壓縮結(jié)果再壓縮不會(huì)變化。更小的門禁壓縮結(jié)果必須比原文小否則引擎丟棄結(jié)果、回退原文。有損可恢復(fù)聲明為 S4有損的壓縮器原始字節(jié)必須先存入 CCR 恢復(fù)存儲(chǔ)engine/ccr/模型后續(xù)可按 handle 取回原文。二、開發(fā)新 Compressor 的 5 個(gè)步驟步驟 1新建一個(gè)壓縮器文件在engine/compressors/下新建文件如markdown.go參照 json.go 或 config.go 的寫法定義一個(gè)結(jié)構(gòu)體持有可調(diào)參數(shù)如保留行數(shù)、閾值并提供NewXxx() Compressor構(gòu)造函數(shù)。以 config 壓縮器為例它用一組正則識(shí)別 YAML/TOML/INI結(jié)構(gòu)體里只有minLines、keepHead、keepTail等幾個(gè)參數(shù)非常輕量。步驟 2聲明安全等級(jí)安全等級(jí)由壓縮方法本身決定寫在 engine/safety/safety.go 的階梯里等級(jí)含義是否可改模型可見字節(jié)是否需要 CCR 恢復(fù)S0 / S1元數(shù)據(jù)、緩存提示類否否S2 / S3結(jié)構(gòu)性 / 行為性變更是否S4有損壓縮絕大多數(shù)壓縮器是是且必須披露丟棄了什么如果你做的壓縮會(huì)刪減模型可見內(nèi)容折疊數(shù)組、省略行就老老實(shí)實(shí)聲明 S4。步驟 3實(shí)現(xiàn) fail-closed 的 Compress三條鐵律可對(duì)照 compressor.go 頂部注釋有界解析不要無(wú)限制地遞歸解析避免內(nèi)存爆炸任何疑問都放棄解析失敗、結(jié)構(gòu)不支持、沒有把握 → 返回(nil, false)絕不輸出看起來差不多的結(jié)果省略要留標(biāo)記像日志壓縮器那樣用... N lines elided (caveman)標(biāo)記折疊區(qū)域讓模型知道內(nèi)容被省略且可恢復(fù)。步驟 4在 Default 注冊(cè)表中注冊(cè)打開 compressor.go 的Default()函數(shù)加一行r.Register(NewMarkdown())。這里有個(gè)進(jìn)階細(xì)節(jié)如果自動(dòng)檢測(cè)可能誤判比如 Markdown 和純文本很難區(qū)分學(xué) TOON 和 a11y 的做法——注冊(cè)但只允許顯式指定類型到達(dá)不進(jìn)自動(dòng)檢測(cè)鏈如果你的壓縮器編譯產(chǎn)物永遠(yuǎn)路由不到把它加進(jìn)manifestExcluded白名單。否則它會(huì)進(jìn)入能力清單導(dǎo)致RegistrySHA256變化讓所有已發(fā)布的 Cave Build 鎖在運(yùn)行期失效——這是注冊(cè)時(shí)最容易踩的坑。步驟 5接入內(nèi)容檢測(cè)如需自動(dòng)選擇自動(dòng)檢測(cè)邏輯在 engine/detect.go順序是嚴(yán)格 JSON → 終端輸出 → diff → HTML → 表格 → 代碼 → 日志 → 搜索結(jié)果 → 配置 → 兜底text。新增檢測(cè)信號(hào)時(shí)注意信號(hào)必須是確定性、可證的參考 ANSI 轉(zhuǎn)義序列作為終端判定依據(jù)的做法——只有終端輸出才合法攜帶它低置信度內(nèi)容一律落入text交給保守壓縮器兜底。三、Compressor 測(cè)試怎么寫參考 log_test.go 的測(cè)試套路一個(gè)好壓縮器的測(cè)試至少覆蓋 4 類用例用例驗(yàn)證點(diǎn)核心行為錯(cuò)誤/關(guān)鍵行被保留噪音被折疊輸出出現(xiàn)省略標(biāo)記體積門禁輸出嚴(yán)格小于輸入冪等性壓縮結(jié)果二次壓縮保持不變失敗回退畸形輸入返回okfalse原樣透?jìng)鳒y(cè)試 fixture 放在engine/compressors/testdata/邊界用例空輸入、恰好閾值長(zhǎng)度、超大輸入用真實(shí)數(shù)據(jù)支撐發(fā)布任何性能聲明前必須有 fixture 背書要求見 extending.md。四、提交前檢查清單 ? 無(wú)歧義的內(nèi)容類型名 已聲明的安全等級(jí)? 有界解析、確定性輸出、冪等? 非法輸入回退原始字節(jié)fail-closed? S4 輸出已接入 CCR 恢復(fù)存儲(chǔ)? 明確選擇方式自動(dòng)檢測(cè) or 僅顯式指定? 覆蓋有效/無(wú)效/輸出變大/邊界的 fixture 測(cè)試? 更新Default()注冊(cè)表及 engine.md 中的注冊(cè)器數(shù)量與文檔五、關(guān)鍵文件路徑速查路徑說明engine/compressors/compressor.goCompressor 接口、Registry 與 Default 注冊(cè)表engine/compressors/json.goJSON 壓縮器省略標(biāo)記、BM25 相關(guān)性選取engine/compressors/config.goYAML/TOML/INI 壓縮器engine/compressors/html.goHTML 正文提取純 Go 可讀性啟發(fā)式engine/detect.go內(nèi)容類型自動(dòng)檢測(cè)路由engine/safety/safety.goS0–S4 安全等級(jí)注冊(cè)表engine/ccr/有損壓縮的原始字節(jié)恢復(fù)存儲(chǔ)docs/technical/engine.md壓縮引擎官方文檔含流水線圖docs/technical/extending.md擴(kuò)展指南新增壓縮器要求清單掌握「接口三方法 注冊(cè)表 安全等級(jí) fail-closed 測(cè)試」這四件套你就能像維護(hù)者一樣為 Caveman 貢獻(xiàn)一個(gè)穩(wěn)健的新 Compressor 了?!久赓M(fèi)下載鏈接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman項(xiàng)目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考