dshx-token-cost:在 DSH 设置页查看账户余额与按模型拆分的 Token 费用估算

前言

用 DeepSeek Harness(DSH)跑智能体时,token 消耗分散在大量会话日志里,平台账单又和「若按公开 API 牌价计费会是多少」不是同一套口径。想快速回答「账户还剩多少钱」「这几天哪个模型在吃预算」,往往要在控制台和本地日志之间来回切换。

dshx-token-cost 是维护者 callaumyan-design 发布的客户端类 DSH 插件(当前版本 v2.1.0,MIT 许可证)。它在 DSH 设置里增加 用量与费用 页面:一侧读 DeepSeek 平台接口展示账户余额,另一侧扫描本机 ~/.dsh/sessions 会话日志,按天、按模型汇总 token,并按各厂商公开价目估算费用。社区目录见 SkillHub,源码在 GitHub。

这是什么

一句话:dshx-token-cost 是 DSH 设置页插件,同时回答两个问题——账户里还剩多少钱(平台余额),以及本机每天、每个模型消耗了多少 token、按 API 牌价折算是多少钱(本地日志统计)。

打开路径:设置 → 用量与费用。插件以当前 DSH 进程权限运行;安装或启用前建议自行查看仓库源码与许可证,确认符合你的环境策略。

核心功能

面板能回答的问题

问题 面板位置
账户还剩多少? 顶部「账户余额」卡片
这段时间花了多少钱(估算)? 区间汇总 → 估算费用
哪一天最贵? 每日用量表(点行展开当天模型明细)
哪个模型在吃预算? 按模型汇总表
缓存命中情况? 区间汇总 → 缓存命中率;每日/按模型表中的缓存读写列
同一模型经过几条 provider 路由? 模型名后「N 条路由」标签(悬停看详情)
每小时 token 与估算费用? 「按小时用量」图表(v2.1.0)

账户余额与货币

余额来自 DeepSeek 平台接口。平台按币种返回多条钱包记录,且顺序不稳定,插件会按你在页面上选的 ¥ / $ 挑选对应钱包展示,不做跨币种换算;其他币种列在「另有 …」一行。

区间选择与记忆

可选 当月 / 当天 / 7 / 14 / 30 / 90 天,或通过「自定义」指定起止日期(最长 365 天)。「当月」指日历整月(每月 1 日至月末),状态行会回显实际覆盖的日期范围。区间与货币保存在 localStorage 的 dshx-token-cost/prefs;不可用时回落为默认(30 天 / 人民币)。

费用估算口径

显示的是估算,不是官方账单。 计算式为:

费用 = 输入 × 输入价 + 输出 × 输出价
     + 缓存读 × 缓存读价 + 缓存写 × 缓存写价

价目依据各厂商公开 API 牌价(pricing.js,README 记载核对于 2026-10-11)。人民币定价模型按公布的人民币价计;美元定价模型按美元价再经汇率折算。美元兑人民币汇率每天最多更新一次,来源依次为 open.er-api.com 与 api.frankfurter.app,缓存于 ~/.dsh/dshx-token-cost/rate.json;失败时用上次的已知汇率,否则内置默认 7.1。

需注意的口径:DeepSeek 统一按空闲时段价计,工作日高峰价为空闲价 2 倍,白天使用场景的估算可能偏低;部分 Gemini Flash 系列使用当前 introductory 价(官方计划 2027-01-01 调整)。

日志统计与性能

v2.0.0 起直接解压 zstd 读会话日志并维护持久化索引(~/.dsh/dshx-token-cost/index.json,保留 400 天),替代通过 harness sessionQuery 重放整份日志的方式;README 称冷启动约 2.5 秒,稳态刷新在毫秒级。扫描不读取凭据,只解析日志中的 request/header 与 assistant/message usage 字段,按日志顺序归属 provider/model。

状态目录(索引与汇率缓存)可用环境变量 DSHX_TOKEN_COST_STATE 覆盖。

HTTP 报表端点

Host 侧提供报表接口,供设置页或其它集成调用:

GET /dshx-token-cost/report?days=30[&force=1]
GET /dshx-token-cost/report?from=2026-10-01&to=2026-10-11[&force=1]

from/to 优先于 days,两端均含;force=1 会强制刷新索引与余额缓存。返回结构包含 balance 与 usage(含逐日 days、按模型汇总、v2.1.0 的 usage.hours 等字段)。

安装与启用

资料中未给出统一的 CLI 安装命令句式;可从 SkillHub 插件页 按 DSH 客户端的插件安装流程安装(package.json 中 dsh.marketplace.profiles 为 web 与 desktop,requiresRestart: true)。

安装后,副本位于:

~/.dsh/profiles/<profile>/node_modules/dshx-token-cost/

桌面 profile 的注册位置(本地 file: 开发时同理):

  • ~/.dsh/profiles/desktop/package.json → dependencies 与 dsh.profile.bundles
  • ~/.dsh/profiles/desktop/cordis.patch.yml → - id: dshx-token-cost

修改 host 路由或 bundle 后需重启 DSH 桌面端。用 file: 依赖开发时,pnpm 安装的是拷贝而非软链,改源码后需重新安装或拷贝才会生效。

典型用法

在设置页查看

  1. 启动 DSH 桌面端(或已安装插件的 web profile)。
  2. 打开 设置 → 用量与费用。
  3. 选择统计区间与货币;需要忽略短期缓存时可点「重新统计」(等价于请求带 force=1)。
  4. 在每日用量、按模型汇总、按小时图表中查看 token 与估算费用;窄屏下数字会压缩显示,完整值在 tooltip。

离线核对与自测

仓库提供 Node 脚本,便于在不打开 UI 的情况下核对统计结果:

node test.mjs 30            # 近 30 天逐日逐模型费用表
node test-endpoint.mjs      # 端点断言
node test-client.mjs        # 客户端渲染断言(需 react、jsdom)
node test-layout.mjs        # 排版断言(需 Chrome/Edge)

客户端与排版测试的依赖可按 README 用 npm install --no-save 安装,并通过 NODE_PATH 或 DSHX_TEST_NODE_MODULES 指向 node_modules。

适用场景与注意

适合谁: 长期在单机 DSH 上跑多模型、多会话的开发者,需要在设置里一眼看到平台余额,并把本地 token 用量按模型拆成可比较的「若按公开 API 计费」估算。

不适合当作: 财务对账或官方消费明细;高峰/促销/企业协议价未完全建模时,估算与实扣会有偏差。

权限与安全: 插件读取本机会话日志并请求平台余额接口,以安装时 DSH 进程的权限执行。启用前请阅读 源码仓库 中的 index.js、usage.js、rate.js 等实现。

生态说明: DSH 采用「一切皆插件」的扩展方式;SkillHub 等社区目录由社区维护,与 DeepSeek / 幻方无官方从属关系。

结尾

dshx-token-cost 把「平台还剩多少钱」和「本机日志里每天、每个模型烧了多少 token、按牌价估多少钱」收进同一设置页,并用持久化索引把大会话量下的刷新时间压到可用范围。需要安装说明与版本信息时,可看 SkillHub 目录页;实现细节、价目表与测试命令以 GitHub README 为准。

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

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

Xiaoye