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 相关优化,可先安装再对着面板读数,而不是凭体感猜冷热。

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

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

Xiaoye