前言¶
在 DeepSeek Harness(DSH)里跑多轮对话、子代理(subagent)时,主机侧通常不会直接给出「这一会话花了多少钱」。若你接的是 AiSpot(sapi)一类按分组定价的部署,分组和模型单价还会随提供商更新,硬编码价表很快失效。sapi-budget 是社区插件,从兼容的 sapi 部署拉取分组与价目,在界面里展示会话合计与每轮 assistant 成本,并把子代理子树一并计入;切换分组时历史数字会按当前价目即时重算,无需重载或重放会话。
这是什么¶
sapi-budget(包名 dsh-sapi-budget,GitHub:Lanstzz/sapi-budget)由维护者 Lanstzz 发布,分类为模型推理。它解决的是:在 DSH 中把 AiSpot 各分组的模型价格同步到本地缓存,并在对话标题区与会话末尾用浏览器侧价目计算展示费用;主机不发布金额,投影只携带 token 分桶,由前端对照实时目录计价。
核心功能¶
会话与子树合计¶
对话标题区显示会话总成本,计算方式为 subtree(s) = own(s) + Σ subtree(children),即当前会话自身加上所有后代 subagent 的开销。
每轮成本与明细¶
每条 assistant 回合结束处显示当轮成本。鼠标悬停可查看 breakdown:模型名、各 token 分桶数量与合计。
分组列表与即时重定价¶
分组列表从提供商抓取,不写死在插件里;分组增减会随提供商变化。在对话标题区的下拉里选择当前分组;历史会话数字会立即按新分组重算,无需 reload 或 replay。
价目数据来源¶
插件向提供商三个无需认证的公开接口取数:
| 接口 | 用途 |
|---|---|
/api/pricing |
模型列表、ratio 与 tiered_expr 表达式 |
/api/status |
额度单位与汇率 |
/api/user/groups |
分组名与各分组 ratio 乘数 |
分层表达式由 pricing.js 中的手写 tokenizer 与递归下降解析器求值,不使用 eval 或 new Function。
精度与边界说明¶
- 分层(tiered)模型在 UI 中标注为「估算」/ estimate。
- subagent 的花费按根会话的模型费率计价(主机侧无法跨会话归因模型),相关行同样标为估算。
- 插件安装前已结束的 subagent 没有可读投影,显示为 unknown,不会显示为
$0.00。
主机侧能力¶
index.js 提供定价服务、三个 HTTP 路由、sapiCost 会话投影,以及 sapi_price agent 工具;client.js 负责 Web 端插槽、分组选择与 tooltip。
安装与启用¶
插件以当前 DSH 进程权限运行;安装前请自行审阅 GitHub 仓库 源码与 MIT 许可证。
官方安装方式:
dsh plugin add github:Lanstzz/sapi-budget
若使用本地检出目录:
dsh plugin add /absolute/path/to/sapi-budget
安装后需重启应用:bundle 在启动时加载。
配置(可选)¶
在 profile patch(cordis.patch.yml)中可设置:
- id: sapi-budget
name: 'dsh-sapi-budget'
config:
baseUrl: https://aispot.swj0227.icu # 任意兼容部署
group: '' # '' 表示由提供商选最便宜分组
currency: USD
refreshMinutes: 30
分组通常是在 UI 中选择并写入浏览器 localStorage(键 sapi-budget.group);配置里的 group 仅作回退。
典型用法¶
- 按上文命令安装并重启 DSH。
- 打开对话,在标题区下拉选择 sapi 分组(或使用默认最便宜分组)。
- 正常多轮对话或触发 subagent;观察标题区会话合计与各 assistant 回合末尾的当轮成本。
- 需要核对单价时,悬停当轮成本查看模型与 token 分桶 breakdown。
- 切换分组后,同一会话内已有轮次的显示金额应即时更新,无需刷新页面。
开发自检(来自 README,供贡献者参考):
node --check index.js && node --check client.js && node --check pricing.js
node --test test/index.host.test.js
node --test test/client.test.js
node probe-tooltip.mjs
适用场景与注意¶
适合:接 AiSpot(或兼容 baseUrl 的 sapi 部署)、需要在 DSH Web 界面直观看到会话/轮次/子代理树成本,并随分组切换重算历史的开发者。
注意:
- DSH 生态是「一切皆插件」;社区目录站点 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
- 分层模型与 subagent 费率归因存在估算与 unknown 边界,不宜当作账单级精确结算。
- 价目缓存默认每 30 分钟刷新(
refreshMinutes),极端情况下与提供商即时价可能有短暂偏差。
结尾¶
sapi-budget 把 sapi 分组价目同步进 DSH,并在对话标题与会话轮次上展示含 subagent 子树的成本;分组来自提供商、历史可即时重定价,适合在 Harness 里做成本可见性而非硬编码价表。
- 目录页:https://www.skillhub.cn/plugins/Lanstzz/sapi-budget
- 源码与说明:https://github.com/Lanstzz/sapi-budget