前言¶
DeepSeek Harness(DSH)在每次模型调用里会持久化 provider 用量:inputTokens、cacheReadTokens、cacheWriteTokens、outputTokens 等。前缀缓存命中时,计费与未命中差异很大——README 以 deepseek-flash 为例:非高峰缓存命中约 \(0.003 / 1M tokens**,未命中约 **\)0.15 / 1M tokens,约 50×。这些数据分散在各次 assistant/message 里,默认界面不会把「一共省了多少钱、命中率多少、峰谷时段多花了多少」汇总到一页。
Cacheback(仓库 yunhenk/dsh-cacheback)是社区维护的 DSH 插件(维护者 yunhenk,分类:模型推理,许可证 MIT,当前版本 0.1.1)。它只读本机 DSH 已写入的 session 日志,按 DeepSeek 公布的峰谷价表逐条回放计价,输出可读的缓存收据,并回答:DeepSeek 前缀缓存实际帮你省了多少。
这是什么¶
Cacheback 的定位是「The missing receipt for DeepSeek prefix caching」:replay local DSH sessions,按官方 peak/off-peak 费率给每次调用定价,并展示 cache 带来的节省。它不采样、不估算 token——每个数字来自 DSH 在每条 assistant/message 上保存的 provider usage;定价逻辑见仓库 docs/method.md,峰谷窗口会套用中国法定节假日日历(README 说明 2026 年国务院假日表已内置)。
运行特性(README 原文):
- 零运行时依赖,零网络请求,只读
~/.dsh/sessions,收据写入~/.dsh/cacheback。 - 解析结果缓存在
~/.dsh/cacheback/index.json,按文件 size 与 mtime 增量更新。
核心功能¶
聊天摘要与收据指标¶
在 DSH 里执行 /cache(及子命令)后,会得到类似下面的汇总(示例来自 README,数值为作者本机统计,非通用承诺):
Cacheback · DeepSeek cache receipt
2026-08-14 → 2026-11-03 · 11 sessions · 5 projects · 4,226 calls
DeepSeek prefix caching saved you ≈¥2,385.88 ($331.37).
Without cache $342.78 → you paid $11.41 · 30× cheaper · 99.66% hit rate
Spend: cache read $6.76 · cache miss $1.29 · output $3.35
Tokens: 1.57B hit · 5.3M miss · 3.64M out
README 对收据字段的说明摘要:
| 指标 | 含义 |
|---|---|
| Saved | 若全部按 cache-miss 价计费应花多少,减去实际支付;属于反事实估算,不是退款。 |
| Cheaper | 无缓存成本 ÷ 实际成本;暖会话常见 20–50×。 |
| Cache hit rate | cache-read tokens ÷ (cache-read + cache-miss tokens)。 |
| Peak premium | 因落在北京时间峰段(工作日 09:00–12:00 / 14:00–18:00)多付的部分;非高峰半价。 |
| Cold starts | 从空缓存开始、前缀按 miss 计费的调用。 |
| Spend split | cache read / cache miss / output 三块花费;output 常占账单可见比例。 |
| Cache score | 命中率评分与字母等级,并给出影响最大的改进建议。 |
非 DeepSeek provider 的调用会被统计为 excluded,不参与 DeepSeek 价表计价。
导出与分享¶
/cache receipt # 自包含 HTML 收据,可打印 PDF
/cache card # 1200×630 SVG 卡片,便于 X / GitHub / Slack
/cache 30d # 仅最近 30 天
/cache redact # 分享前隐藏项目名与路径
HTML 收据与卡片为双语;SVG 卡片仅含聚合数据,不含项目名、会话标题或路径。/cache redact 会把 HTML 中的项目名替换为 Project A/B/C…。
内部流程(便于理解边界)¶
README 归纳的六步:
- 在各
~/.dsh/sessions/<project>/<session>/下发现最新的session*.jsonl(.zstd)。 - 解码 append-only 日志;对 Zstandard 多帧分帧解码( torn 尾部帧跳过)。
- 回放每条
assistant/message的用量与时间戳;跳过 seeded/forked history,避免重复计费。 - 按模型与北京时间窗口计价;cache write 按 miss 计费。
- 按项目、模型、日聚合,计算反事实成本、分数与建议。
- 渲染聊天摘要、HTML 或 SVG。
安装与启用¶
插件以 DSH profile 方式安装;README 给出的 web profile 命令为:
dsh plugin --profile web add github:yunhenk/dsh-cacheback
本地开发时可链接目录(路径改为你本机绝对路径):
dsh plugin --profile web add link:/absolute/path/to/dsh-cacheback
也可在 Plugins → Discover → Index sources 增加索引源后从 Discover 安装:
https://raw.githubusercontent.com/yunhenk/dsh-cacheback/53d96752f562e5e5280e07733dcb2ee9d7869986/market/index.json
package.json 要求 dsh >= 0.2.1-rc.2、node >= 22.15。安装后重启 DSH(或 HMR 重载)即可使用 /cache。
可选配置通过 profile patch 写入(字段以 README 为准):
- id: cacheback
config:
usdToCny: 7.2
lang: zh # zh | en,聊天摘要默认语言
open: false # 是否默认用浏览器打开生成的收据
| 配置项 | 默认 | 说明 |
|---|---|---|
usdToCny |
7.2 |
近似人民币展示用的 USD→CNY 汇率 |
lang |
zh |
聊天摘要默认语言 |
open |
false |
默认是否打开浏览器;/cache receipt 会显式打开 |
典型用法¶
- 按上文命令安装并重启 DSH。
- 在已有 session 历史的 profile 下打开聊天,执行
/cache查看汇总与改进建议(峰段调用、冷启动、输出占比、工具前缀稳定性等)。 - 需要留存或分享时:
/cache receipt或/cache card;对外分享前用/cache redact;限定时间范围用/cache 30d。
适用场景与注意¶
适合谁: 长期用 DSH 调 DeepSeek、依赖前缀缓存降本,希望在本机审计「缓存到底值多少钱」、并按项目/时段找优化点的开发者。
精度与限制(README):
- 「Saved」是反事实,不是账单;DeepSeek 控制台与发票仍是权威来源。
- 人民币为按
usdToCny换算的近似值;DeepSeek 以 USD 计费。 - 2026 年以外的年份,峰谷日历默认仅按工作日规则;可在插件 config 覆盖。
- 删除 session 日志后,对应收据行也会消失。
- 删除插件数据:移除
~/.dsh/cacheback及 profile 中的插件条目即可。
安全与权限: 插件在 当前 DSH 进程权限 下运行,能读取 ~/.dsh/sessions 并在 ~/.dsh/cacheback 写索引与导出文件。安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的环境策略。README 强调:本地-only、无遥测、分享路径有 redact 与卡片聚合设计。
社区插件目录页:skillhub.cn/plugins/yunhenk/dsh-cacheback(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
结尾¶
Cacheback 把 DSH 已记录的每次调用用量,转成按官方峰谷价表计价的本地收据,并给出命中率、花费拆分与可操作的优化提示——全程不联网、不估 token。若你已经在用 DeepSeek 前缀缓存,可以用 /cache 快速核对「省了多少」;需要对外展示时用 receipt 或 card,并记得 redact。
- 目录页:https://www.skillhub.cn/plugins/yunhenk/dsh-cacheback
- 仓库:https://github.com/yunhenk/dsh-cacheback