12|輸出壓縮成穴居人講話(JuliusBrussee/caveman)

🎯 一句話:把 Agent 的輸出壓成「穴居人講話」——去冠詞、去填充詞、去客套,保留否定詞/技術詞/程式碼/數字不動,實測平均省 65% 輸出 token。
- Repo:https://github.com/JuliusBrussee/caveman
- 這篇只講
skills/caveman/(MIT,單一 Skill,無需安裝其他東西)——repo 本體是更大的產品(proxy/CLI/runtime,BSL-1.1),本站不裝那部分 - 相容:README 宣稱支援 30+ 種 Agent(Claude Code、Gemini、Cursor、Windsurf、Cline…),本站只驗證 Claude Code

repo 頁面 About 寫著「why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman」,本身就用 caveman 語氣寫。截圖時已有 98.3k star、5.7k fork——規模遠超一般個人 Skill 專案,skills/caveman/ 只是其中一小塊。
只裝 Skill,不裝 CLI/proxy
repo 分兩塊授權:skills/、CLI、Agent SDK 是 MIT;接 provider 流量做壓縮的 runtime/proxy 引擎是 BSL-1.1(2030-06-21 才轉 Apache-2.0)。README 給的完整安裝指令會一路裝到 @caveman-ai/cli 和 caveman setup --install(本地 proxy,攔截並壓縮輸入輸出流量)——這篇文章與本站不採用這條路,理由:
- Skill 是純 prompt 層的行為指示(改 Claude 怎麼說話),MIT、無執行期依賴,符合本站「複製進
.claude/skills/在地化」的慣例(見 00|總覽)。 - proxy/CLI 是攔截 provider 流量的執行期元件,牽涉信任邊界與授權(BSL-1.1),不是「抄一份 Skill 檔案」這麼單純,需要另外評估才能裝。
要用只需要 skills/caveman/SKILL.md 這一份檔案。
Skill 做什麼
六個強度分級:
| 強度 | 做法 |
|---|---|
lite | 只去掉填充詞/模糊語氣詞,冠詞與完整句子保留 |
full(預設) | 去冠詞,允許片語不成句,用短同義詞,去裝飾性內容 |
ultra | 連接詞能省則省(前提是語意不流失),去冗長縮寫 |
wenyan-lite | 半文言,去填充詞但保留語法結構 |
wenyan-full | 文言文極簡句式,實測字數減 80–90% |
wenyan-ultra | 文言文美學下的極限縮寫 |
去掉的東西:冠詞、填充詞(just/really/basically)、客套話、模糊語氣(hedging)。 保留不動的東西:否定詞(not/never/no)、技術詞彙、程式碼區塊、API 名稱、錯誤字串、數字與單位、使用者原本使用的語言。 明講不要做的事:工具呼叫過程口白、裝飾性表格/emoji、自創縮寫、因果箭頭符號。
自動恢復正常語氣的例外:安全警告、不可逆操作的確認、多步驟序列(片語化容易被誤讀時)——這幾種情境即使開著 caveman 模式也不壓縮,避免「省字省出事故」。
作用範圍只在聊天輸出:程式碼註解、文件、commit message、第三方訊息不受影響,維持正常語氣——這點跟本站 00|總覽 分類地圖裡「輸出風格層」的定位一致,跟 i-have-adhd(03)同屬「怎麼講話」這一層,但一個是格式(答案放第一行),一個是壓縮率(去冗字)。
觸發詞:「caveman mode」「talk like caveman」「less tokens」「be brief」、/caveman;關閉只認 "stop caveman" 或 "normal mode"。
值得抄的一件事
用「保留清單」而不是「刪除清單」定義壓縮邊界。 大多數壓縮/精簡類 Skill 容易寫成「不要講廢話」這種模糊指令;caveman 反過來明確列「否定詞/程式碼/錯誤字串/數字」這些絕對不能壓縮的東西,再加一組「安全警告/不可逆操作」的自動例外規則——邊界寫清楚,壓縮才不會壓到語意跑掉。