dsh-cache-report:看清提示缓存被谁吃掉了

前言

DeepSeek Harness(DSH)使用提示缓存来降低 token 消耗,缓存按前缀精确匹配。当会话进入长周期后,再安装插件、启停组件或切换权限档,工具定义发生变化,会导致后续整个上下文(系统提示 + 全部历史)按全价重算一遍。很多人看到命中率下降,却不知道是哪个操作导致的。

dsh-cache-report 是 DSH 的提示缓存命中率与工具块成本报表工具。它只注册斜杠命令,不注册任何工具,不影响工具表,不会破坏现有缓存。安装后通过一条命令就能看到今天的 token 花在哪、哪次操作最贵、哪个插件在“吃”缓存。

是什么

dsh-cache-report 是由 youran0faust 维护的 DSH 插件,分类为工作流。它读取本机 DSH 会话日志,统计缓存命中率、未命中 token 数量、工具块成本,并按原因(如工具表变化、历史压缩等)进行归因。所有计算在本机完成,不联网、不上传。

安装

前置条件:DSH(@deepseek-ai/dsh)+ Node.js ≥ 20。

作为 DSH 插件安装:

dsh plugin --profile web add github:youran0faust/dsh-cache-report#main

安装后重启 DSH(或使用 patchReload: live 热加载),在会话输入框输入:

/cache-report

命令

输入 作用
/cache-report 不带参数 = today:今天的命中率 + 大额重算归因
/cache-report days 7 近 7 天趋势表
/cache-report tools 30 工具块成本 / 按插件拆分 / 从未被调用的死重
/cache-report before-after 24 近 24 小时:工具表变化时间线 + 重算代价 + 真实台账花费
/cache-report debug 7 格式自检:DSH 会话格式是否仍符合预期
/cache-report help 用法

独立脚本用法相同:node lib/report.mjs days 7。

怎么读:命中率是比率陷阱

命中率 = 命中 / (命中 + 未命中)。但只盯比率容易被上下文长度稀释或放大:

  • 长会话:命中率 96%,每次请求 token 190k,实际花销高
  • 短会话:命中率 80%,每次请求 token 148k,实际花销更低

比率掉了,账单可能反而降了。真正该看的是「未命中 token 的绝对值」,那才是按全价计费的部分。

工具把单请求未命中 ≥ 5 万 token(阈值 DSH_REPORT_BIG 可调)的事件称为大额重算,并按原因归类:

归因 含义 能否控制
toolset-change 装/卸插件、启停组件、切权限档 能 —— 攒着一起改,改完开新会话
compaction 历史压缩(长会话的必然代价) 半能 —— 会话别拖太长
session-start 新会话冷启动 正常开销
resume 恢复旧会话 正常开销

三条实用规则

  1. 插件攒着一起装,装完开新会话。中途装一个,当前会话的历史就得全价重算一遍。
  2. 别在长会话里切模型 / 切权限档。同样会改变前缀。
  3. 看未命中 token 的绝对值,不看百分比。

数据来源与隐私

读的是本机 DSH 会话日志:$DSH_HOME/sessions/ 下的 session.v*.jsonl.zstd(多帧 zstd,脚本按魔数切帧逐帧解)。只用其中的用量数字与工具表:

  • assistant/message → usage.inputTokens(未命中)/ usage.cacheReadTokens(命中)
  • request/header → 当时的工具定义列表 + reason(initial / series / resume / change)

不会打印任何对话内容、文件内容或密钥;tools 只输出工具名字。所有计算在本机完成,不联网、不上传。

局限

  • token 数是估算:工具表按 ASCII字符/4 + 非ASCII字符/1.5 估算,误差约 ±10%。
  • 归因是启发式的:按「大额重算之前最近的一个原因事件」判定,压缩与工具表变化挨得近时可能归错。
  • 只覆盖能观测到的:读的是 DSH 落盘的会话日志,未落盘或被清理的会话不计入。
  • zstd 依赖 Node ≥ 22.15(node:zlib 的 zstd API)。更低的 Node 会报错。

卸载

dsh plugin --profile web remove dsh-cache-report

独立脚本直接删目录即可。它不写任何配置、不常驻进程、不留状态。

生态背景

DSH 理念是「一切皆插件」,本插件收录在社区目录,与 DeepSeek / 幻方无官方从属关系。

参考资料

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

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

小夜