caveman-plugin-dsh:讓 DSH 根智能體用 Caveman 風格簡短作答

前言

在 DSH(DeepSeek Harness)裏跑智能體時,模型默認傾向完整句子和鋪墊,長對話裏 token 消耗快、閱讀也慢。若只想在終端 TUI 或 Web 界面裏把根智能體的回覆壓成短句、保留技術事實,又不想改 dsh 核心或 fork,社區裏有一條純插件路徑:把上游 caveman 的 voice skills 打進 Cordis 服務,用 /caveman 開關和 TUI 角標控制。下面介紹維護者 farchanjo 發佈的 caveman-plugin-dsh(GitHub:farchanjo/caveman-plugin-dsh,SkillHub 分類:客戶端)。

這是什麼

caveman-plugin-dsh 是一個 plugin-only 的 DSH 插件:不 patch 核心、不額外 npm 依賴、無構建步驟。它隨包帶上 caveman / ultracave / megacave 三套 skills、常駐 system-prompt 片段、/caveman 命令,以及在 TUI 上的狀態角標(Web 側無 tuiStatus,無角標)。子智能體(subagent) deliberately 不受 voice 影響,委派出去的報告仍是正常 prose。

宿主需 dsh 0.17+(插件 manifest v0.15)。代碼爲純 ESM,lib/index.js 約 270 行;manifest 聲明 commands.dsh/v1alpha1#Command 與 commands.invoke 權限,無需 grants 文件。

核心功能

簡短回覆與檔位

開啓後,根智能體傾向用片段式表達、去掉 fluff,技術事實保留。檔位可通過命令或菜單選擇:

  • caveman / ultracave / megacave(對應 bundled 的 skills/*/SKILL.md)

/caveman 命令與口語切換

直接動詞示例:

/caveman on        # 從此簡短
/caveman off       # 恢復正常文風
/caveman status    # 當前模式
/caveman caveman|ultracave|megacave

不帶斜槓的口語也可觸發(如 “stop caveman”、”talk like caveman”);模糊句子在開啓決策模型時會先分類再執行。

頁腳菜單(TUI)

輸入 /caveman 或 /caveman help 會在 footer 打開數字嚮導,選數字只改本地狀態、不發給模型;q 關閉。菜單 120 秒後過期。完整選項見倉庫 README 表格(含 jev 開關、密鑰、模型列表等)。

可選決策模型 Jev

默認關閉;/caveman jev on 開啓後,鬆散措辭由 Jev 決策模型做 typed 分類(帶 confidence),不做文本生成。Provider 含 typesafe(默認)、openrouter,以及用會話模型的 main。密鑰存在狀態文件 ~/.config/caveman-plugin-dsh/config.json,不進環境變量。分類失敗、超時、401 等會被吞掉,不阻塞本輪對話。

持久化與 profile 配置

模式、檔位、jev 開關等寫入 config.json(目錄 0700,文件 0600)。profile 行可選 config:

Key 默認 含義
alwaysOn true 首次創建狀態文件時的初始 voice
decision.timeoutMs 1500 單次分類硬超時
decision.apiKey – 內聯 OpenRouter key(如 CI),優先於文件
commands true 註冊 /caveman
status true 顯示 TUI badge

調試:CAVE_DEBUG=1 會把 scope/classify 決策追加到 $TMPDIR/caveman-plugin-dsh.log。

兼容性說明

Host 狀態
dsh tui 0.17 voice、命令、角標可用
dsh web voice、命令可用;無角標
subagents 設計上排除,保持長文

本插件只移植 caveman 的 voice 半部分;上游「讀更少」的 input-compression proxy 目前沒有 dsh 插件 seam,未包含。

安裝與啓用

Requires dsh 0.17+。按 README,先取得倉庫本地路徑,再按使用的 profile 添加(安裝後需重啓 dsh):

git clone https://github.com/farchanjo/caveman-plugin-dsh.git
dsh plugin --profile tui add ./caveman-plugin-dsh   # terminal UI
dsh plugin --profile web add ./caveman-plugin-dsh   # web UI

移除:dsh plugin --profile <p> remove caveman-plugin-dsh。

插件以當前 dsh 進程權限運行;安裝前請自行審閱源碼與許可證(插件代碼 MIT;skills 與 activation rule 爲 Apache-2.0,組合爲 MIT AND Apache-2.0)。Node 引擎要求見 package.json:^22.19 || >=24,peer @deepseek-ai/cordis ^4.0.1。

典型用法

  1. 安裝並重啓 dsh 後,默認 alwaysOn: true 時首次運行會創建狀態文件並開啓簡短模式(可在 profile config 裏設 alwaysOn: false)。
  2. 臨時關閉:/caveman off;恢復:/caveman on。
  3. 需要菜單調檔位或 jev:/caveman,按 footer 提示輸入數字。
  4. 若常用自然語言切換,可 /caveman jev on 並配置 provider/key(見 README「Decision model」「Keys and thresholds」)。

profile 示例:

- id: caveman-plugin-dsh
  config:
    alwaysOn: false

適用場景與注意

適合:長期在 TUI/Web 裏用 DSH、希望根會話省 token、又需要隨時切回正常 prose 的開發者。不適合指望子智能體也變成 caveman 文風——設計上子 agent 保持完整報告。

開啓 Jev 時,候選用戶消息與 on/off 狀態會發往所選 provider(main 則走會話 LLM);離線或低 confidence 時回退啓發式。OpenRouter 與 TypeSafe 的 confidence 門限刻度不可直接對比,換模型宜重調。

DSH 生態強調「一切皆插件」;SkillHub(目錄頁)是社區目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

caveman-plugin-dsh 用零依賴 Cordis 插件把 caveman voice 接到 dsh 的 tui 與 web profile:/caveman、TUI 角標與可選 Jev 分類,改的是根智能體表達方式,不動核心。詳情與 issue 見 GitHub 倉庫,插件索引見 SkillHub 目錄頁。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜