dsh-token-cost:在 DSH Web 里估算当前会话的 Token 费用

前言

在 DeepSeek Harness(DSH)里跑主智能体和子智能体时,一次会话可能产生多路模型调用,输入、输出和缓存读写 token 分散在结算日志里。控制台或账单侧往往滞后,开发者很难在当次 Web 会话中快速看到「大概花了多少」。社区插件 dsh-token-cost(维护者 yoggu,分类:模型推理)利用 DSH 已记录的结算数据,结合本机可解析的 pi-ai 价目表,在界面底部给出估算费用,明确不是发票或实际扣款金额。

下面介绍它的定位、读数方式、安装步骤,以及价目映射与使用边界。

这是什么

dsh-token-cost 面向 DSH Web 配置(--profile web)。Host 侧读取当前会话(含子智能体)的 durable 结算日志:每条记录包含 provider 路由、模型 ID,以及互不重叠的 input / output / cache-read / cache-write token 计数。估价时使用与 Harness 进程配套的 @deepseek-ai/dsh-llm-pi-ai 适配器所解析的 pi-ai catalog,以及该适配器自带的 calculateCost;插件本身不发起付费推理、不开放 HTTP 端点,也不需要 dsh-model-pricing 服务或账号凭证。

package.json 描述为:根据本地 pi-ai catalog 价格展示当前会话 token 的估算成本,并非账单金额。当前发布版本 0.2.2,许可证 MIT。

界面读数

底部一行有一个费用按钮,默认只显示合并后的总金额。点击后弹出 popover,分项展示:

  • Main agent(主智能体)
  • Subagents(含嵌套子智能体)
  • Total(合计)

按 Escape、点击外部区域或再次点击按钮可关闭。原有 hover 提示保持简短:「Estimated cost」;订阅类路由会标注 subscription。订阅路线估算在说明中使用短注「(sub) · Subscription estimate」。

每个会话只统计本会话自身产生的请求:fork 继承的历史不计入;后代去重;普通用户 fork 不算子智能体。子节点发现依赖 durable subagent catalog,已完成或未打开的子任务也会纳入。标准非激活投影读取会 hydrate 冷子节点;后续更新为推送,无需轮询或付费推理。若缺少子节点用量、发现不完整或某次请求无法定价,会在 popover 中标记,而不是当作免费。各行独立四舍五入可能与合计总额略有差异;部分覆盖时读数会变暗,未定价调用不会显示为 $0。

安装与启用

安装指定 tag 的 GitHub 发布包(命令来自项目 README):

dsh plugin --profile web add 'https://github.com/yoggu/dsh-token-cost.git#v0.2.2'

README 另提供本地 checkout 的 link 安装方式(需保持目录在位);本文不展开 clone 流程。

替换已安装版本后应重启 DSH,并刷新浏览器。卸载:

dsh plugin --profile web remove dsh-token-cost

卸载仅移除读数 UI,不会删除会话日志或凭证。

运行环境要求(package.json):Node >=22.19.0;DSH 引擎 ^0.1.7-rc.2 || ^0.2.0-rc.1。 shipped 的 llm-pi-ai 适配器及其 pi-ai 依赖必须能从正在运行的 Harness 进程解析;不接受进程级随意搜索、cwd 回退、消费者本地 pi-ai 副本或任意文件系统覆盖;旧版 DSH_PI_AI_DATA 覆盖已不再使用。若 owner 解析或 catalog 校验失败,结算会显示 unpriced,而非免费。当前实现针对 pi-ai 0.99.1 测试,且不修改 shipped 适配器或其依赖。

价目来源与映射

估价逻辑要点如下(均来自 README 说明):

  1. openrouter:精确 openrouter 路由使用已安装 pi-ai 的 openrouter catalog;自定义 gateway 别名不会推断。
  2. openai-codex:精确内置 openai-codex 路由使用 openai-codex catalog;展示的 USD 为 API 等效订阅估算,不是 ChatGPT 订阅发票。
  3. 历史 codex 路由:日志中的 codex-business、codex-personal 在旧账号适配器移除后,仍用当前 shipped pi-ai openai-codex catalog 做遗留订阅估算(仅旧 event ID 查表)。
  4. deepseek-official:精确路由用 deepseek catalog 作为独立标价估算;Messages 端点不由 pi-ai 提供,账单一致性不由本插件证明。未知 model ID 或 gateway 路由保持 unpriced。

对有效条目,Host 报告保留 pi-ai 包名、版本、catalog 文件 SHA-256、精确路由绑定标签及贡献结算条数;Web tooltip 仍只写「Estimated cost」(订阅路由加 subscription)。展示金额按当前已安装 catalog 计算;DSH 日志存的是 token 计数,不是历史 USD。pi-ai 升级后若价目变化,需按文档意图提高投影 stateVersion 并对冷事件重放后,再声称历史被重新定价;仅 catalog 修订不会单独使 checkpoint 失效。本版本支持 pi-ai 0.99.1 的 typed chat:<model-id> catalog 键(及遗留 bare key),查找时使用 DSH 记录的 bare model ID;image/classifier 条目不用于 chat 定价;使用 stateVersion: 7 从 1–6 重放 checkpoint 等。fold 过程无 catalog 文件系统 I/O。

calculateCost 按未缓存 input 加 cache read/write 选择适用 tier;reasoning 已计入 output。不完整/非有限/负价格及歧义重复 model 条目会 fail closed。DSH 缺少 cacheWrite1h 桶;带时长写费率或 Anthropic 协议 cache write 且无法忠实还原账目的模型会 unpriced。

限制(原文强调):显式 route ID 不能证明自定义端点归属或真实账单;profile 所有者不应静默改指向已审路由。估算不含非模型费用。DeepSeek parity 与历史订阅价均有专门免责说明。

典型用法

安装并重启、刷新浏览器后,无需额外配置项即可在 Web 界面底部看到估算总费用。开发或调试长会话、多子智能体任务时:

  1. 观察底部合并总额,把握当前会话大致成本趋势。
  2. 点击费用按钮,区分主智能体与子智能体(含嵌套)贡献。
  3. 若 popover 出现未定价或覆盖不完整提示,对照路由、模型 ID 与 pi-ai catalog 是否可解析,而非把缺失当作 $0。

项目完整离线测试可运行 npm test(维护者仓库内)。

适用场景与注意

适合:在 DSH Web 里做智能体开发、联调或多子 agent 编排,需要在同一会话内快速查看基于本地 pi-ai 价目表的 token 估算,且接受「非账单、非发票」语义的用户。

注意:

  • 插件随 DSH 进程权限运行;安装前应自行审阅 GitHub 源码 与 MIT 许可证。
  • 社区目录 SkillHub 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系。
  • 星标、版本以仓库与目录页为准;撰写时 GitHub 公开星标为 0。

结尾

dsh-token-cost 把 DSH 已记录的会话结算与 shipped pi-ai catalog 的 calculateCost 接到 Web 底部读数上,主 agent 与子 agent 分项可见,并区分估算、订阅估算与 unpriced。若你需要在 Harness Web 会话里对照 token 用量看本地价目估算(而非真实扣款),可按 README 安装 v0.2.2 并留意上述映射与限制。

  • 目录页:https://www.skillhub.cn/plugins/yoggu/dsh-token-cost
  • GitHub:https://github.com/yoggu/dsh-token-cost
羽毛球分组比赛记分
小程序二维码

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

小夜