dsh-bill:为 DSH 提供费用归因与用量看板

前言

在 DSH 中运行会话时,成本不只是“模型输出”这一项。工具输入、工具输出、系统提示、终端命令、附件、系统提醒和用户输入都会进入请求,只看到总花费时,很难判断哪一类内容贡献了主要成本。

下面介绍 dsh-bill。它把 DSH 会话中的费用拆到不同内容类型,并在每轮对话、侧栏、报告页和预算中展示相关状态。

这是什么

dsh-bill 是一个 DSH 成本归因和用量看板插件,由 Jannchie 维护,许可证为 MIT。它基于 llm-pricing 做价格解析,依赖版本为 ^0.17.0

它主要解决三类问题:

  • 每个完成的回合花了多少钱,以及步骤数、缓存命中情况。
  • 总费用具体由哪几类内容构成。
  • 预算、余额、月度预测和多币种展示。

核心功能

成本归因

dsh-bill 会把账单按内容类型拆分,包括:

  • tool output
  • model output
  • system prompt
  • terminal commands
  • tool input
  • attachments
  • system reminders
  • user input

报告页中还可以看到拆分明细、趋势图和热力图。

每轮费用

每个完成回合下方会显示一行信息,包括:

  • 本轮成本
  • 步骤数
  • 缓存命中率

这一行直接来自会话日志,因此安装前的历史回合也能作为花费被回填。

常显状态

dsh-bill 会把状态常驻在界面上:

  • 在已有统计行下方显示一行费用信息。
  • 在侧栏显示今日花费相对于预算的位置。

可见的表面可以在设置中调整。

报告

会话中的 Cost 页签会展示:

  • total
  • tokens
  • cache hit
  • peak share
  • monthly forecast
  • account balance

同时提供按模型、按会话、按用途的拆分,以及趋势和热力图视图。

预算

可以设置:

  • 每日预算
  • 每月预算
  • 全周期预算

预算使用超过 80% 时会改变颜色,超预算时也会改变颜色。

多币种

dsh-bill 提供约 166 种货币的实时汇率。每个模型的基础费率会按供应商定价使用的币种显示。

Agent 工具

插件提供 bill_stats 工具,模型可以据此直接回答关于花费的问题。

安装与启用

先安装到 web profile:

dsh plugin --profile web add dsh-bill

安装后,重启 dsh web 使插件生效。

典型用法

设置预算、币种和可见表面

打开设置中的 Cost 页面,可以设置预算、币种和可见表面。偏好会写入:

$DSH_HOME/dsh-bill/prefs.json

经过上面的步骤后,侧栏和统计行会按你的设置显示。

查看每轮费用和报告

在对话中,每个完成回合下方会显示本轮成本、步骤数和缓存命中率。

打开会话中的 Cost 页签,可以查看总量、令牌、缓存命中、峰值占比、月度预测、账户余额,以及拆分和趋势视图。

让模型查询花费

当你需要模型直接回答花费相关问题时,可以使用插件提供的 bill_stats 工具。

覆盖价格

如果你需要覆盖某个价格,可以编辑:

~/.dsh/profiles/web/cordis.patch.yml

priceOverrides 中配置价格覆盖。priceOverrides 会在启动时校验。

插件还暴露 maxRecords 配置项,默认值为 20000

适用场景与注意

适合以下场景:

  • 你想看 DSH 会话中钱具体花在了哪一类内容上。
  • 你需要每轮成本、步骤数和缓存命中率。
  • 你需要预算、余额、月度预测和多币种展示。
  • 你希望模型通过 bill_stats 直接查询花费。

使用前注意以下几点:

  • package.jsonengines 要求 node >=20
  • 依赖包括 llm-pricing ^0.17.0
  • Peer dependencies 包括 @deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-tools
  • 客户端平台为 web,并注入 @deepseek-ai/dsh-client-ui-conversation
  • 调用记录会写入:
$DSH_HOME/dsh-bill/records.jsonl

记录采用 20000 条环形缓冲,旧记录会折叠成 rollup。

  • 账户余额 API key 在宿主侧使用,不会到达浏览器。
  • 网络请求限于价格目录、汇率端点和余额查询;不存储会话内容。
  • 未匹配的模型名会被标记为 ?,并从合计中排除;不会做估算。
  • 安装前的历史可以从会话日志回填为花费,但不能追溯归因;报告会说明覆盖比例。
  • 插件以当前 dsh 进程权限运行。安装前建议检查源码和许可证。

结尾

dsh-bill 的价值在于把 DSH 会话中的花费落到内容类型、回合、预算和余额上,而不仅是给出一个总额。

目录页:DSH 社区目录中的 dsh-bill 条目。社区目录是独立站点,不是 DeepSeek 或幻方官方应用商店。

GitHub:

https://github.com/Jannchie/dsh-bill
羽毛球分组比赛记分
小程序二维码

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

Xiaoye