前言¶
写的时候想不起这轮任务花了多少 token,是 DSH 用户的常见问题之一:DSH 的界面已经显示了 token 和缓存读取数,但多数时候你关心的是「折算成人民币大概多少钱」。重新打开厂商定价页手算、或者按提示词长度估一个数,误差都很大,而且缓存命中、子代理调用、重试和中断的请求通常算不进去。
dsh-cost-guard 做的是另一件事:不猜,直接读 DSH 会话事件里的真实用量,用你自己配置的单价算出一个本地估算值,放在输入框下方。插件来自维护者 chenzhiyong1994,在社区插件目录中归入 admin-security 分类,开源协议 MIT,当前版本 v5.1.0。下面介绍它的功能、安装方式和注意事项。
这是什么¶
一句话:dsh-cost-guard 是一个本地 Cordis 插件 bundle,把 DSH 记录的真实 token 用量实时换算成金额,显示在输入框下方的紧凑标签里,并提供按模型累计和可编辑价格表。
两个常见误解先澄清:
- 它不拦截、不改写、不路由 Agent 的执行,只是旁路观察。没有预测门禁,也没有确认遮罩。
- 它给出的金额是本地估算,不是权威账单。官方价格会变,最终以供应商发票为准。
package.json 里用 dsh.bundle.patch 声明 Host 半部分,用 dsh.client 声明浏览器半部分,所以它不是一个传统单文件插件,而是按 DSH bundle 的方式安装。
核心功能¶
按 README 提到的能力逐条整理。
- 基于真实用量。读取 DSH usage 事件里的
inputTokens、outputTokens、cacheReadTokens、cacheWriteTokens,覆盖重试和中断的请求,不按提示词大小估算。 - 实时可见。输入框下方显示当前或上一次任务的
¥金额,点标签弹出模型、输入 / 输出 / 缓存 token、模型调用次数、峰谷时序与本次会话累计。 - 支持子代理。子代理的用量回卷到根会话当前轮次,并按每次调用实际服务的模型计价。
- 重启可恢复。如果插件重启过,首次查看某个会话时会从持久事件日志回填历史累计。
- 价格可审计。所有模型单价和峰谷时段在设置页可见、可改。
- 界面双语。价格标签和设置页跟随 DSH 通用设置的语言自动切换。
- 完全本地。无遥测、无外部服务、无账号访问,不收集 API Key。
安装与启用¶
先说明运行要求:DeepSeek Harness 0.2.1+(桌面版或 dsh web),profile 需包含 Web 应用组合包;价格标签和设置页需要 DSH Web UI。只有开发时跑 npm run check 才需要 Node.js。
包体是本地目录安装,而不是从 GitHub 直接拉取。步骤如下:
- 把仓库放到一个固定路径,例如
D:\plugins\dsh-cost-guard。 - 打开 DSH 的 设置 → 插件 → 组合包,从本地目录安装;或用等价命令:
dsh plugin --profile <profile> add "D:\plugins\dsh-cost-guard"
- 安装器报告
restart-required时重启 DSH。
也可以直接让 DSH 智能体去装,等价的提示词:
把 D:\plugins\dsh-cost-guard 这个 DSH bundle 安装到当前 profile,
然后在插件清单里确认 cost-guard 这一行已经激活。
安装完成后,插件清单里会出现 开销监控,设置里有一级页面 设置 → 开销监控,输入框下方出现价格标签。两个半部分都是纯 JavaScript,没有构建步骤。
本地开发改源码时,把上面的路径换成 checkout 目录即可,安装器会以链接方式装入,改动后重新安装并重启生效。
包整体替换即可升级:换文件或拉新 release,再执行一次安装命令,然后重启,Host 和浏览器两侧都会从新文件重新加载。
配置项¶
打开 设置 → 开销监控,可配置的内容分四块:
| 区块 | 内容 |
|---|---|
| 模型定价 | 输入未命中、输出、输入命中单价;添加自定义模型;恢复默认(需两步确认) |
| 峰谷计价 | 开关、时段与倍率 |
| 本次运行累计 | 已结算轮次、实际累计、可编辑汇率、按模型统计 |
| 配置备份 | JSON 导出与导入(导入会先校验再替换当前设置) |
计价模型¶
v5.1.0 的默认单价按 2026-10-28 核对的 DeepSeek V4.1 Flash / V4 Pro 官方峰谷定价填写,单位是人民币元 / 1M tokens,下表为谷时价:
| 模型 | 输入·缓存未命中 | 输出 | 输入·缓存命中 |
|---|---|---|---|
deepseek-flash |
¥1.00 | ¥4.00 | ¥0.02 |
deepseek-v4-pro |
¥4.50 | ¥13.50 | ¥0.15 |
default 兜底 |
¥1.00 | ¥4.00 | ¥0.02 |
几个副作用要留意:
- 高峰时段是北京时间周一至周五 09:00–12:00 和 14:00–18:00,单价为谷价的 2 倍;周末和法定节假日全天为谷时,2026 年节假日安排已内置。峰谷计价默认开启,可以在设置页关闭或改窗口。
- 官方价目没有单列缓存写入,缓存写入 token 按输入缓存未命中价计算。
- 旧模型名会映射到当前计费行:
deepseek-v4-flash、deepseek-v4-flash-vision-exp→deepseek-flash,deepseek-reasoner→deepseek-v4-pro;已停用的deepseek-chat也映射到 Flash。 - Search / Fetch 由 DeepSeek 另行按次计费(2026-11-01 起 ¥5 / 千次成功请求),插件只统计模型 token,不含这部分请求费。
工作原理¶
Host 半部分(index.js)注入 webServer,折叠已入日志的会话事件、归属轮次、汇总子代理,首次查看时回填历史,并暴露两条数据路由(/cost-guard/live、/cost-guard/rpc)和一条健康检查路由。Client 半部分(client.js)在 conversation.composer.dock 注册价格标签、在 settings.section 注册设置页,通过 fetch 读取 Host。
数据流始终留在当前 DSH 进程内,路由走本机 HTTP,不访问外部网络。价格状态持久化在 ~/.dsh/cost-guard/config.json(识别 $DSH_HOME),重启后仍在。
适用场景与注意¶
适合的场景:用 DSH 跑日常任务、希望在不打断工作流的前提下看到每次任务的大致花费;使用子代理的多轮任务;对模型单价和峰谷规则有审计要求的团队。
安装前需要注意三件事:
- 插件以当前 DSH 进程的权限运行,能读到会话事件和本地配置路径。装之前先过一遍
index.js和client.js,确认没有超出预期的行为。 - 它依赖 DSH 的
webServer、sessions、session/event、conversation.composer.dock、settings.section等 Slot,这些不是稳定的公开 API。DSH 插件接口仍在快速演进,第三方插件的兼容性需要自己承担,反馈问题时附带 DSH 版本会更快定位。 - 金额是估算值,调价后记得去设置页更新单价,否则估算会偏离实际账单。插件不联网核对价格。
结尾¶
dsh-cost-guard 的价值在于把「大概多少钱」这件事从估算变成可比对的数字,并且只做观察,不介入执行。适合想要知道自己的 token 花在哪里、又不愿意维护一套外部监控脚本的 DSH 用户。
目录页:https://www.skillhub.cn/plugins/chenzhiyong1994/dsh-cost-guard
GitHub:https://github.com/chenzhiyong1994/dsh-cost-guard
需要提醒的是,社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,它不是官方应用商店;插件本体在 GitHub 上按 MIT 协议开源,安装前仍应自行核对源码与许可证。