dsh-token-cost:侧栏里的 token 用量与估算费用账本

前言

在 DeepSeek Harness(DSH)里跑多会话、后台任务或子智能体时,token 会分散在不同窗口和投影里。内置界面能看到当前任务的上下文占用,但要把「全部会话合计」和「当前主视图任务」放在一起对照,并进一步看到逐会话、逐轮明细,通常需要自己翻日志或心算单价。

dsh-token-cost 是社区插件,在侧栏底部常驻两行用量与估算费用,悬停展开逐会话明细,再悬停单行可看该会话逐轮用量;数据来自已有会话投影与 Host 侧读日志,不新增模型调用、提示词或工具。下面介绍它的定位、安装与典型用法。

这是什么

  • 名称:dsh-token-cost(仓库 wojiao42/dsh-token-cost)
  • 维护者:wojiao42
  • 版本(package.json):1.7.2,MIT 许可证
  • 分类:社区目录条目为 usage(用量统计与展示)

插件在 DSH 侧栏 footer 注入两行徽标:第一行是全部会话的估算费用合计(有任务在跑时金额前有一个绿点);第二行是当前主视图任务的费用与上下文占用百分比。输入框下方刻意不重复显示同一份合计。费用由可编辑单价表估算,计量逻辑与官方 dsh-token-meter 一致。

核心功能

侧栏两行徽标

侧栏展开时示例形态如下(金额为示意):

全部 ●≈¥0.1240
当前  ≈¥0.0330 · 45.4%
  • 全部:所有有用量数据的会话费用合计;截至时刻不在徽标上,只在悬停展开的面板头部显示。
  • 当前:主视图里那个任务的费用 + contextPressure.projectedTokens / contextWindow 得到的占用百分比。
  • 侧栏收起时宽度不够两行,降级为只显示一行合计金额。

悬停明细面板

鼠标悬停徽标即展开面板(移开约 0.2 秒后收起;点击可钉住,键盘 focus 同样展开)。面板头部包含合计金额,以及会话数、运行中数、缓存命中率、最高占用、截至时刻、整体 tok/s、平均首 token 等元信息。

列表中每个会话两行:

  1. 标题行:状态圆点、标题、token、费用、上下文占用%;当前任务加粗,运行中排最前;点击行可切换会话。
  2. 时间行:例如 运行中 12m 或 最近 3m、轮/步、平均首 token、模型耗时、工具耗时、解码 tok/s。

若还有会话尚未取到投影数据,面板底部会出现 「载入其余会话 · N」。

逐轮用量预览

悬停某一个对话行时,在该行右侧再弹出一层该会话的逐轮用量:每轮一行显示轮号与触发该轮的用户话术,下一行是 用时 · 时刻 · 步数 · 工具数。有重试标「近似」、未闭合标「进行中」、用量不可证明时显示 —。点击某一轮会切换到该会话并把主视图定位到那一轮。

逐轮数据由 Host 半侧通过 GET /token-cost/turns?sessionId=<id>&limit=30[&refresh=1] 提供,折叠使用官方 @deepseek-ai/dsh-token-meter 的 deriveTurnTokenUsage,与聊天里的「本轮用量」同源。Host 与客户端各缓存 15 秒,悬停有 140ms 防抖。

数据口径(不增请求模型)

  • 会话级 token、占用、模型选择来自已有投影(tokenUsage / contextPressure / modelSelection)。
  • 冷会话:Host 基线只覆盖当前活跃 Session;对其他窗口或后台任务,插件调用 ctx.sessions.refreshProjections(id) 按需取证(不打开会话也可读全部投影),顺序为运行中优先、其次按最近更新,每次列表更新最多取 48 个且不重复请求。
  • 已删除、已归档或不在会话列表里的会话没有数据,不计入合计。
  • 插件不会发起额外的模型 API 请求;客户端向本机 Host 读投影与日志。

单价与费用估算

费用按当前模型查表计算:未缓存输入 × cacheMiss +(缓存读 + 缓存写)× cacheHit + 输出 × output。默认表在 client.js 顶部(单位:人民币元 / 每百万 token):

const PRICES = {
  'deepseek-flash': { cacheHit: 0.02, cacheMiss: 0.4, output: 4 },
  'deepseek-v4-pro': { cacheHit: 0.02, cacheMiss: 0.4, output: 4 },
};

表中没有的模型仍显示 token 与占用,费用列显示 —。README 明确说明:这是估算值,不是账单;dsh-token-meter 对 CJK 与 JSON 可能低估,插件也无法感知折扣与赠送额度。对账请以官方账单为准,或按实际价格改表。

安装与启用

DSH 生态里插件通过 profile 组合安装。桌面 profile 从 GitHub 安装的正式命令为:

dsh plugin --profile desktop add github:wojiao42/dsh-token-cost

也可从插件市场安装(社区目录由 awesome-dsh-plugin 维护,与 DeepSeek / 幻方无官方从属关系)。安装后刷新页面。

卸载:

dsh plugin --profile desktop remove dsh-token-cost

生效说明:

  • 仅改浏览器半侧 client.js:在侧栏「插件」页将 dsh-token-cost 开关关掉再打开即可,无需重启 Harness。
  • 改过 Host 半侧 index.js(例如逐轮路由):必须重启一次 Harness;重启前客户端可能提示「逐轮数据需要重启一次 Harness」。

安装前建议自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,与任何社区插件一样,信任边界取决于你安装的 bundle 内容。

典型用法

经过上面的安装步骤后,可按下面顺序使用:

  1. 看侧栏底部两行:全部会话合计与当前任务费用、占用。
  2. 鼠标悬停徽标打开明细,核对各会话 token、费用与时间行指标。
  3. 悬停某一行查看该会话最近若干轮用量;需要补齐后台会话时,点 「载入其余会话 · N」。
  4. 点击逐轮预览中的某一轮,跳转到对应会话与轮次,便于对照日志排查。
  5. 若更换模型或调价,编辑 client.js 中的 PRICES 后按「关掉再打开插件」重载客户端 bundle。

适用场景与注意

适合谁

  • 长期在 DSH 里并行多会话、子智能体或后台任务,需要一眼看到「全局合计 vs 当前任务」的开发者。
  • 希望用同一套 dsh-token-meter 规则做费用粗算、并下钻到逐轮触发句与步数/工具数的人。

需要注意

  • 运行时长(运行中 Nm)是页面打开后客户端观察到的近似值,刷新页面会重新起算;投影不提供「本次运行开始的绝对时刻」。
  • README 未提供「今日花费 / 近 5 分钟花费」等按时间分桶账目,因现有投影缺少相应事件时间。
  • 合计包含所有有用量数据的会话;若与当前单会话数字不一致,多半是冷会话尚未取证,等待面板载入或点「载入其余会话」。
  • 社区插件非官方应用商店条目;星标与传播度以 GitHub 页面为准(线索中星标为 0)。

结尾

dsh-token-cost 把 token 用量与可编辑单价下的估算费用收敛到侧栏一处:两行徽标负责日常扫一眼,悬停面板负责逐会话与时间维度,再悬停单行可到逐轮并一键跳转。它不改变模型行为,只读已有投影与日志。

  • 插件目录页:https://www.skillhub.cn/plugins/wojiao42/dsh-token-cost
  • 源码与完整说明:https://github.com/wojiao42/dsh-token-cost
羽毛球分组比赛记分
小程序二维码

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

Xiaoye