dsh-cost-guard:给 DSH 任务挂一枚实时开销标签

前言

写的时候想不起这轮任务花了多少 token,是 DSH 用户的常见问题之一:DSH 的界面已经显示了 token 和缓存读取数,但多数时候你关心的是「折算成人民币大概多少钱」。重新打开厂商定价页手算、或者按提示词长度估一个数,误差都很大,而且缓存命中、子代理调用、重试和中断的请求通常算不进去。

dsh-cost-guard 做的是另一件事:不猜,直接读 DSH 会话事件里的真实用量,用你自己配置的单价算出一个本地估算值,放在输入框下方。插件来自维护者 chenzhiyong1994,在社区插件目录中归入 admin-security 分类,开源协议 MIT,当前版本 v5.1.0。下面介绍它的功能、安装方式和注意事项。

这是什么

一句话:dsh-cost-guard 是一个本地 Cordis 插件 bundle,把 DSH 记录的真实 token 用量实时换算成金额,显示在输入框下方的紧凑标签里,并提供按模型累计和可编辑价格表。

两个常见误解先澄清:

  1. 它不拦截、不改写、不路由 Agent 的执行,只是旁路观察。没有预测门禁,也没有确认遮罩。
  2. 它给出的金额是本地估算,不是权威账单。官方价格会变,最终以供应商发票为准。

package.json 里用 dsh.bundle.patch 声明 Host 半部分,用 dsh.client 声明浏览器半部分,所以它不是一个传统单文件插件,而是按 DSH bundle 的方式安装。

核心功能

按 README 提到的能力逐条整理。

  1. 基于真实用量。读取 DSH usage 事件里的 inputTokens、outputTokens、cacheReadTokens、cacheWriteTokens,覆盖重试和中断的请求,不按提示词大小估算。
  2. 实时可见。输入框下方显示当前或上一次任务的 ¥ 金额,点标签弹出模型、输入 / 输出 / 缓存 token、模型调用次数、峰谷时序与本次会话累计。
  3. 支持子代理。子代理的用量回卷到根会话当前轮次,并按每次调用实际服务的模型计价。
  4. 重启可恢复。如果插件重启过,首次查看某个会话时会从持久事件日志回填历史累计。
  5. 价格可审计。所有模型单价和峰谷时段在设置页可见、可改。
  6. 界面双语。价格标签和设置页跟随 DSH 通用设置的语言自动切换。
  7. 完全本地。无遥测、无外部服务、无账号访问,不收集 API Key。

安装与启用

先说明运行要求:DeepSeek Harness 0.2.1+(桌面版或 dsh web),profile 需包含 Web 应用组合包;价格标签和设置页需要 DSH Web UI。只有开发时跑 npm run check 才需要 Node.js。

包体是本地目录安装,而不是从 GitHub 直接拉取。步骤如下:

  1. 把仓库放到一个固定路径,例如 D:\plugins\dsh-cost-guard。
  2. 打开 DSH 的 设置 → 插件 → 组合包,从本地目录安装;或用等价命令:
dsh plugin --profile <profile> add "D:\plugins\dsh-cost-guard"
  1. 安装器报告 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

几个副作用要留意:

  1. 高峰时段是北京时间周一至周五 09:00–12:00 和 14:00–18:00,单价为谷价的 2 倍;周末和法定节假日全天为谷时,2026 年节假日安排已内置。峰谷计价默认开启,可以在设置页关闭或改窗口。
  2. 官方价目没有单列缓存写入,缓存写入 token 按输入缓存未命中价计算。
  3. 旧模型名会映射到当前计费行:deepseek-v4-flash、deepseek-v4-flash-vision-exp → deepseek-flash,deepseek-reasoner → deepseek-v4-pro;已停用的 deepseek-chat 也映射到 Flash。
  4. 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 跑日常任务、希望在不打断工作流的前提下看到每次任务的大致花费;使用子代理的多轮任务;对模型单价和峰谷规则有审计要求的团队。

安装前需要注意三件事:

  1. 插件以当前 DSH 进程的权限运行,能读到会话事件和本地配置路径。装之前先过一遍 index.js 和 client.js,确认没有超出预期的行为。
  2. 它依赖 DSH 的 webServer、sessions、session/event、conversation.composer.dock、settings.section 等 Slot,这些不是稳定的公开 API。DSH 插件接口仍在快速演进,第三方插件的兼容性需要自己承担,反馈问题时附带 DSH 版本会更快定位。
  3. 金额是估算值,调价后记得去设置页更新单价,否则估算会偏离实际账单。插件不联网核对价格。

结尾

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 协议开源,安装前仍应自行核对源码与许可证。

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

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

小夜