前言¶
DSH 会记录每次模型调用的 token 计数,但计数本身看不出花了多少钱。想知道一轮回答的成本,得自己去查价目表、判断调用落在哪个时段,再按模型分别算。会话里还有 Agent Team 委派的子智能体,它们各自跑在独立的 Session 里,费用更难归到一起。
下面介绍的 dsh-cost-meter 就是用来处理这件事的插件:它只做展示,把 token 换算成按官方价目与峰谷时段估算的人民币费用,并且把子智能体费用单独列出。插件不发起模型请求,也不写会话数据。
这是什么¶
dsh-cost-meter 由 xiaobaijunya 维护,当前版本 0.2.0,MIT 许可证,分类为模型推理。一句话定位:一个 display-only 的 DSH 插件,把 harness 的 token 分桶换算成估算金额,同时覆盖主会话与子智能体两层。
它不改变 DSH 的执行逻辑,不发起模型调用,也不写会话数据。金额是按官方价目表与已记录调用时间估算的,不是账单。
核心功能¶
先说清它挂载在哪个位置,再讲显示了什么。
底边栏用量 pill。 底边栏原有的用量控件现在带出整段会话的估算值,形如 51M tok · ¥2.20。点开是「用量与费用」弹窗,列四类信息:token 分桶、当前计费时段、会话累计费用、按模型拆分的费用(含各自的谷/峰单价)。
每轮费用。 每轮回答结束后,「用量」按钮后追加 · ¥0.0274;原生「本轮用量」弹窗末尾追加三行:本轮费用、会话累计、计费时段。
子智能体费用单独列出。 弹窗内有独立的「子智能体费用」区块,按子会话逐行显示标签、金额、token 数,并给出子智能体小计与「合计(主会话 + 子智能体)」。主会话金额口径不变,不与子智能体混算。
区分模型与峰谷。 内置 DeepSeek Flash / Pro 价目,按北京时间判定峰谷;一轮的回答开始与结束落在不同时段的,标记为「高峰/空闲混合」。
计价规则¶
计价来源是 DeepSeek 官方价目页(2026-11 现行价),单位为元 / 百万 token:
| 模型 | 缓存命中(谷/峰) | 未缓存输入(谷/峰) | 输出(谷/峰) |
|---|---|---|---|
deepseek-flash(含 deepseek-v4-flash、deepseek-v4-flash-vision-exp) |
0.02 / 0.04 | 1 / 2 | 4 / 8 |
deepseek-v4-pro |
0.15 / 0.30 | 4.5 / 9 | 13.5 / 27 |
峰谷按北京时间判定:工作日(不含中国法定节假日)9:00–12:00、14:00–18:00 为高峰,其余时段为谷价。2026-08-23 起周末全天谷价,插件对历史日志保留该分界。
三条补充口径:
- 未知模型名回落到 Flash 价目,并在界面标注「按 Flash 价估算」。
- 缓存写入 token 按未命中输入价计。
- 内置 2026 年法定节假日表,2027 年安排公布后需补到
lib/pricing.js。
安装与启用¶
按部署方式选一种。
已装插件市场的 DSH 桌面端 / Web:本仓库被 awesome-dsh-plugin 收录后,在市场里搜索 dsh-cost-meter 一键安装。
普通 dsh web(CLI):
dsh plugin --profile <profile> add github:xiaobaijunya/dsh-cost-meter
Release tarball(无需构建):
dsh plugin --profile <profile> add https://github.com/xiaobaijunya/dsh-cost-meter/releases/download/v0.2.0/dsh-cost-meter-0.2.0.tgz
手动 profile patch(任意部署):在 profile 的 cordis.patch.yml 追加一个 insert 条目指向本仓库 lib/index.js,DSH 的 HMR 会在数秒内热加载。完整步骤、验收与回滚见仓库里的 tools/INSTALL.md。
需要提醒一句:官方 DSH 桌面端自己管理保留的 desktop profile,请在应用内 Plugins 页安装,不要用 CLI 去改桌面 profile。
典型用法¶
安装完成后不需要额外配置,插件随会话加载。下面按「能看到什么」的顺序走一遍。
- 打开或新建一个 DSH 会话,和模型正常对话。切到底边栏的用量控件,pill 上除 token 总数外会带出估算费用。
- 点开用量控件,弹窗里先看 token 分桶和当前计费时段,再往下看会话累计与按模型费用。
- 跑一轮需要委派子智能体的任务(例如 Agent Team 成员 / 委派任务)。这轮结束后点该轮到「用量」按钮,按钮后追加本轮估算金额;弹窗内也多出子智能体费用区块,逐行是标签、金额、token 数,底部是子智能体小计与主会话加子智能体的合计。
到这里,你已经能把「这轮花了多少、其中子智能体占多少」对上号了。
子智能体费用怎么统计¶
子智能体跑在各自独立的 Session 里,所以 Host 侧是在弹窗打开时才去聚合。步骤是:
- Host 侧扫描
$DSH_HOME/sessions下的会话日志。 - 按每个日志 header 的
parentSession关系,找出当前查看会话的全部后代会话。 - 用与主会话相同的费用 fold 计算每个子会话的金额。
- 通过本机路由
/dsh-cost-meter/subagents提供给前端,弹窗打开期间每 4 秒刷新一次。
日志按 mtime + size 缓存,不写会话目录。
隐私与范围¶
这一块决定你能放心把它挂在哪个 profile 上:
- 只读取本机 DSH 会话日志(仅为子智能体汇总),聚合结果只在内存缓存。
- 只写一个诊断/状态文件
$DSH_HOME/.dsh-cost-meter-status.json,并注册两条供自身 UI 使用的 localhost 路由。 - 不向任何模型提供方发请求,不上传 prompt、用量或日志数据。
局限¶
使用前请知道它明确不覆盖的情况:
- 仅为估算:价格调整、订阅折扣与提供方侧舍入都不反映。
- 单次请求的峰谷按记录到的结算时间归段,跨时段边界会有归段误差。
- 历史价目(如 2026-09-10 之前的 Flash 旧价)未建模。
- 子智能体费用仅在其日志仍存在于
$DSH_HOME/sessions时出现,归档或清理掉的会话不会列出。
适用场景与注意¶
适合做这些事:想知道一个 DSH 会话、一轮回答大概花了多少钱;想把主会话与 Agent Team 子智能体的花费分开看;想在峰谷计费体系下粗略判断哪个时段调用更便宜。
三点提醒:
- 插件以当前 DSH 进程的权限运行,读完上面「隐私与范围」再决定挂到哪个 profile。
- 安装前建议先审一遍源码与许可证(MIT),确认读取路径和状态文件路径符合预期。
- 金额只是估算,不要拿它做预算或对账;需要精确账单请以官方后台为准。
结尾¶
dsh-cost-meter 做的是一件很窄的事:把已经记录的 token 计数,按官方价目和峰谷时段换算成人民币估算,并把子智能体费用单独列出来。它不发起模型调用、不写会话数据,只加一层展示。
目录页:https://www.skillhub.cn/plugins/xiaobaijunya/dsh-cost-meter
GitHub:https://github.com/xiaobaijunya/dsh-cost-meter