dshbase

插件目录 / Developer / dsh-token-cost

dsh-token-cost

已验证 · 实测可装 le-soleil-se-couche

✓ 持续维护 基于 5 个官方 DSH 包 纯 TypeScript

查看 GitHub ↗ ← 返回插件目录

9Stars
3Forks
7未关闭 issue
TypeScript语言
2026-08-28最近推送
跨平台平台

功能简介

对话页查看费用,设置中查看总消耗、缓存命中及输入输出

✅
我们的评价
可用 — 实测通过,早期项目

对话页查看费用,设置中查看总消耗、缓存命中及输入输出 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-token-cost

dsh-token-cost

English · 中文

DeepSeek Harness(DSH)Web GUI 的 Token 用量 / 缓存命中 / 费用统计插件:单对话与整体汇总,内置 DeepSeek 双计价方案(东八区峰谷),也可为自己调用的其他模型填写单价。

2026-08-17更新:支持为自己调用的其他模型填写单价;点「添加模型」即写入本地价格文件,刷新后仍在,历史费用立刻按新单价重算。

2026-08-25 更新:计量内核升级为 attempt-aware fold,补齐失败调用后 retry、compaction/summary.usage 与 fork seedLength 边界;账本 schema 升至 v2,旧缓存会从权威 session logs 自动重折叠。

2026-08-28 更新:retry 边界与官方 llm/retry-started 对齐,补充官方 session id 目录编码兼容,并刷新与 0.1.2-alpha.1 的差异说明。账本 schema 升至 v3,已有 v2 缓存会自动重折叠。

功能

  • 单对话视图:对话页面底部官方状态行(「首 token 平均 … · … tok/s」之后)直接嵌入本会话消耗费用,点击即可打开按请求的明细弹窗(时间 / 模型 / 缓存未命中 / 缓存命中 / 输出 / 费用,最新在上)。

对话底部状态行费用展示

费用明细弹窗

  • 整体汇总(设置 > 插件配置 > Web UI 插件 > Token 费用统计):时间筛选(今天 / 昨天 / 最近 7 天 / 最近 30 天 / 本月 / 上月 / 自定义,最多 30 天)+ 费用 / 输入 / 输出 / 缓存命中率统计卡,按模型、会话、日期分组。
  • 计价状态:高峰时段按东八区显示(09:00–12:00、14:00–18:00),判定也按东八区时钟。
  • 自定义模型价格:配置页可从账本发现未定价模型,或手动添加尚未调用的模型;按每百万 tokens 填写缓存未命中 / 缓存命中 / 输出。点「添加模型」即写入本地价格文件,刷新后仍在,历史记录立刻按新单价重算。缓存命中可不填(按 0 计)。第三方模型按平价,不受 DeepSeek 峰谷影响。

数据来源

插件读取 DSH 的持久会话日志($DSH_HOME/sessions/<project-key>/<encoded-session-id>/session.jsonl.zstd;原始 session id 位于日志首行 header),把 provider 上报的 usage 事件折叠为按调用尝试的计费记录:同一次 attempt 内最终 message 替换 chunk 样本;只有 llm/retry-started 会切开同一 turn/step 的相邻尝试,避免把尚未真正开始的 retry 误计为新调用;官方已有的 compaction/summary.usage 作为独立调用计入;聚合 fork 子会话时跳过 seq < seedLength 的继承前缀。紧凑账本($DSH_HOME/storages/dsh-token-cost/ledger.json)缓存解析结果,只重解析变化的日志;计量语义升级会自动使旧账本失效并从 session logs 重折叠。自定义单价存在同目录的 custom-prices.json。zstd 解压使用 fzstd(纯 JS 零依赖)。

Token 字段遵循 Harness 约定:inputTokens = 缓存未命中部分,cacheReadTokens = 缓存命中部分(两者不相交,相加即计费输入)。

统计边界仍由上游日志决定:标题生成、Web Search、被中断调用、失败摘要或其他客户端若没有写出 usage,插件不会虚构 token 或费用。可公开复核的 synthetic fixture 与手算结果位于 tests/fixtures/usage-accounting/。

与 DSH 0.1.2-alpha.1 的计量差异

DSH 0.1.2-alpha.1 对应源码快照 cd5ef81481:tokenUsage 已升到 stateVersion: 2,并通过 llm/retry-started 修复同一步 retry 覆盖前次 usage 的问题。该版本官方 projection 仍只折叠 assistant/chunk 与 assistant/message,尚未计入已经存在于官方日志中的 compaction/summary.usage;跨 session 汇总也仍需消费方自行排除 seq < seedLength 的继承前缀。

本插件跟进了官方 retry 语义,并额外覆盖 compaction/summary.usage 与 fork seedLength,使用 ledger v3 自动使旧口径缓存失效。在“官方已经写入 DSH session logs 的 usage 如何结算”这一明确范围内,本插件相对该官方版本仍领先;这不代表插件能替代官方账单,也不扩大上游没有记录 usage 的遥测边界。社区方案提出把失败摘要 usage 新增到 compaction/end,但该字段尚无官方 schema,插件不会把未知扩展字段直接换算成费用;背景见 最新讨论。原四个 bucket 的独立 synthetic conformance checker 记录见 Discussion #1886,仓库内另有 retry、compaction 与目录编码的针对性测试。

安装

dsh plugin --profile web add github:le-soleil-se-couche/dsh-token-cost

重启 dsh web 后,在设置页展开「Web UI 插件」即可看到。历史会话日志在首次查询时自动回填。

配置项

键 类型 默认 说明
enabled boolean true 总开关(状态行费用显示 + 汇总卡片)
currency 'cny' 'usd' 'cny'
priceMode 'auto' 'scheme-a' 'scheme-b'
customPrices string (JSON) '' 兼容旧设置项;现用配置页表单,落盘到 storages/dsh-token-cost/custom-prices.json

以上均可在卡片的「配置」页编辑;「重新扫描会话日志」按钮强制全量重解析。

开发

pnpm install && pnpm -r build
pnpm --filter @deepseek-ai/dsh-token-cost test
pnpm --filter @deepseek-ai/dsh-token-cost typecheck

架构说明见 DESIGN.md。


English version

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-token-cost」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

Web profile:

dsh plugin --profile web add dsh-token-cost

Headless(CLI)profile:

dsh plugin --profile headless add dsh-token-cost

包信息

npm:dsh-token-cost · 版本 0.1.5 · 实测环境 dsh 0.1.0-rc.6

实测报告

端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7797 个插件 →