dsh-cache-hit-monitor:在 DSH 側欄實時查看 Prompt Cache 命中率

前言

在 DSH(DeepSeek Harness)裏跑長對話或反覆改 prompt 時,模型側的 prompt cache 是否命中,會直接影響延遲和輸入 token 成本。Host 側已有會話投影(tokenUsage、contextPressure),但默認界面不一定把「命中率」和「按請求的歷史」擺在一眼能掃到的地方。

下面介紹社區插件 dsh-cache-hit-monitor(維護者 Billwu18,分類:客戶端)。它在 DSH Web 右側邊欄增加一個儀表頁,把當前會話的 prompt-cache 遙測畫成寄存器、點陣命中率與「堆芯」歷史板,數據來自 Host 已有投影,插件本身不髮網絡請求。

這是什麼

dsh-cache-hit-monitor 是面向 DSH Web 平臺的客戶端插件(dsh.client.platform: web)。Host 端 index.js 僅導出空的 apply,用於在 Loader 中註冊、啓用/禁用;實際展示全部由瀏覽器端的 client.js(React、DSH browser-module 格式)完成。

插件通過 useProjection 讀取 Host 已計算的 tokenUsage 與 contextPressure。摺疊邏輯依賴 Host 側的 @deepseek-ai/dsh-token-meter。無額外依賴、無構建步驟。

核心功能

側欄新增一個 Tab;每個頁面加載會自動打開一次該 Tab,便於直接看到面板,關閉方式與其他 Tab 相同。Tab 註冊爲 keepMounted: true,切換 Tab 時儘量不因 remount 丟本地記錄的歷史。

面板由四塊「錶盤」組成:

錶盤 內容
Hit rate(命中率) 會話 cache 命中率以 5×7 點陣百分比顯示;另有 settled 請求數、上一請求的命中率、該請求距今時間,以及相對當前 prompt 總量的 28 燈條。
Register bank(寄存器組) 四個互不重疊的 cache 桶:cache read、cache write、uncached input、output;展示會話累計與按比例點亮的燈行。
Reactor core(堆芯) 每個已 settled 的請求一格,最新在左上;顏色表示該次命中率,直徑與請求 token 相對板上最重請求有關,越舊越淡。懸停 title 可看精確的 read / write / uncached / output 拆分。
Context pressure(上下文壓力) 壓力 token 相對上下文窗口。

命中率怎麼算

輸出 token 不計入命中率(生成 token 不可 cache,計入會虛高):

hit rate = cache read / (cache read + cache write + uncached input)

堆芯格子的含義

  • Ink:該次請求的命中率,單色強度漸變。
  • Diameter:sqrt(request tokens / heaviest request on the board),避免大冷啓動把小請求擠沒。
  • Fade:越靠下越暗表示越舊。

板高由 ROWS 4 / 6 / 9 控制最大行數;列數由側欄寬度自適應,窄側欄同樣歷史會佔更多行。 CLR 僅清空當前會話在本插件內存裏的記錄,不修改 Host 數據。

標題旁:實心紅點表示本會話至少有一次 settled 請求;空環表示尚無記錄。寄存器組是會話總量,燈條相對當前屏上最大桶比例縮放。

安裝與啓用

要求(與 README 一致):

  • DSH:>=0.1.7-rc.1 <0.2.0-0
  • 平臺:web(dsh plugin --profile web)
  • React 18+(由 DSH Web UI 提供)
  • Node >=20 僅用於倉庫內測試腳本,運行插件不需要 Node

從 GitHub 安裝:

dsh plugin --profile web add github:Billwu18/dsh-cache-hit-monitor

也可在 Web UI 的 Plugin Manager 中安裝。安裝後刷新頁面即可;開發時若本地路徑安裝,Host 按文件修改時間重讀產物,改 client.js 後刷新即可,無需重啓 dsh web。

插件以當前 DSH 進程及 Web 會話權限運行;安裝前請自行查看源碼與 MIT 許可證。SkillHub 目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

典型用法

  1. 在符合版本要求的 DSH Web 環境中執行上述 dsh plugin --profile web add 命令(或通過 Plugin Manager 添加)。
  2. reload 頁面,側欄應自動出現 Cache Hit Monitor 相關 Tab。
  3. 正常對話、發請求;每有一次請求 settled,命中率點陣、寄存器與會話累計會更新,堆芯增加一格。
  4. 需要對比窄/寬側欄下歷史密度時,拖動側欄寬度觀察列數與行填充變化。
  5. 做 A/B prompt 或長上下文實驗時,用堆芯顏色與 title 拆分覈對單次請求,而非只看會話平均點陣。
  6. 想只看新一段實驗時,點 CLR 清本地歷史(不影響 Host 日誌)。

界面支持英文與中文 locale,其他語言回退英文;深淺主題下表盤刻意偏暗,外圍 chrome 跟隨 --dsw-* token。

適用場景與注意

適合誰

  • 在 DSH Web 裏調試 agent、長 system prompt 或重複前綴,需要直觀看 prompt cache 是否起作用。
  • 需要按請求回顧命中率走勢,而不是隻在日誌裏翻 token 明細。

隱私與數據

  • 僅讀本地 session projection;無網絡請求、無對外遙測;歷史除內存外不落盤。CLR 只清 Tab 內狀態。

兼容與宿主

  • 需要 Host 提供 sidebarRightTabs 服務及上述投影。
  • Host 端插件無業務邏輯,禁用/卸載按 DSH 常規插件流程即可。

結尾

dsh-cache-hit-monitor 把 Host 已有的 tokenUsage / contextPressure 收成側欄儀表:寄存器看桶佔比,點陣看會話命中率,堆芯看逐次請求。若你在 Web 端做 prompt-cache 相關優化,可先安裝再對着面板讀數,而不是憑體感猜冷熱。

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

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

小夜