前言¶
在 DeepSeek Harness(DSH)里跑长会话时,上下文 token 会不断累积,解码速度也会随后端负载波动。Web 客户端虽然会通过 session projection 下发 tokenUsage、sessionStats 等字段,但默认界面并不把这些数字做成「一眼可读」的仪表。若你想在对话过程中随时看到累计用量、tok/s 和估算费用,又不想改会话逻辑或往模型侧注入额外内容,就需要一个只读的前端叠加层插件。
下面介绍社区插件 dsh-token-gauge(npm 包名 @stone100010/dsh-token-gauge),维护者为 stone100010,在 SkillHub 目录中归类为「模型推理」。它在 DSH Web GUI 上挂载三块可拖拽的表盘,数据全部来自客户端已有的 projection,不订阅新事件、不注册工具。
这是什么¶
dsh-token-gauge 是面向 DeepSeek Harness Web 配置的客户端插件:在应用上方浮动显示 Token 用量、解码吞吐和估算花费,可拖动位置、调整大小,并在浏览器内记住布局。
插件注册到 @deepseek-ai/dsh-client-ui-layout 声明的 shell.overlay 席位(全帧、点击穿透),与内置 overlay 条目并列,不会挡住下层界面操作。实现上不增加 session 事件、工具或模型可见内容,属于纯只读视图,不会改变对话行为。
开发与测试目标版本为 DSH 0.1.5-rc.2;插件依赖 ctx.sessions、ctx.slots 以及四个 projection 键名,若上游重命名这些接口,需要同步更新插件。
核心功能¶
三块表盘分别表示什么¶
README 用表格说明了刻度与含义,概括如下:
| 表盘 | 刻度 | 含义 |
|---|---|---|
| Token Usage(左) | 0 – 300M | 整段 session log 的累计 token;指针进入琥珀区通常表示「读入上下文远多于输出」,会话可能已超出模型舒适区。 |
| tok/s(中,最大) | 0 – 500 | 解码吞吐:优先用页面观测到的「每秒新增 output token」,空闲时回退到 session 记录的平均值;读数乱跳往往对应后端不稳定。 |
| Total Cost(右) | 0 – $12 | 按参考单价估算的会话花费,相对预算刻度显示。 |
每块表盘带有绿 / 琥珀 / 红警示区、指针、大号数字,以及下方细项(如 In/Out 拆分、会话均值、预算等)。数值来源为 Web 客户端已有的 tokenUsage、contextPressure、contextBreakdown、sessionStats 等 projection。
面板交互与诊断行¶
安装并硬刷新后,面板默认出现在右下角。拖标题栏移动,拖右下角缩放,标题栏控件可折叠;位置、尺寸与折叠状态按浏览器持久化。
标题栏中的路由 + session 读数(实现上的 A4 诊断行)会标明解析路径(binding、scope 或 unresolved)、当前读取的 session id 以及 output token 计数。数字对不上时,可先对照这一行确认数据来源。
费用刻度是估算值¶
费用表盘标注为估算(est.)。README 说明:例如 deepseek-v4.1-flash 若不在 DSH 已安装模型目录中,DSH 不会为其计算 cost projection;插件默认 PRICES 与目录里 deepseek 族参考价对齐。若要以 $12 刻度做预算对照,应在 lib/client.js 顶部常量中填入网关真实的「每百万 token」单价。
可调常量示例(摘自 README):
const SCALE_TOKENS = 300e6; // left dial maximum
const SCALE_RATE = 500; // centre dial maximum
const SCALE_COST = 12; // right dial maximum, also the budget
const ZONES = { tokens: [0.5, 0.8], rate: [0.6, 0.84], cost: [0.5, 0.8] }; // amber, red
const PRICES = { uncachedInput: 0.14, cacheRead: 0.0028, cacheWrite: 0.14, output: 0.28 }; // USD / M
修改后需按你的部署方式重新加载 Web 客户端 bundle(通常重启 dsh web 并硬刷新页面)。
环境与要求¶
- 需以 web profile 运行 DSH,例如
dsh web或npx @deepseek-ai/dsh web。 - 包
engines要求 Node >= 22(见 package.json)。 - 通过 profile 插件管理器安装时,需系统 PATH 上可用 pnpm。
安装与启用¶
推荐:profile 插件管理器¶
在已配置好 dsh 与 pnpm 的 shell 中执行:
dsh plugin --profile web add @stone100010/dsh-token-gauge
这是 README 给出的官方安装命令,会对 web profile 做 link 与注册。
pnpm 或 dsh 不在 PATH 时¶
README 提供仓库内的 setup.sh:自行定位 dsh 并完成与上述等价的 link 与注册。典型步骤为进入克隆后的目录后执行 ./setup.sh install、./setup.sh verify,必要时用 ./restart-and-verify.sh 重启并确认插件已加载。若仅从 npm 安装,tarball 内也包含 setup.sh,但 restart-and-verify.sh 以克隆仓库为准。
无论哪种方式,打开服务端打印的带 token URL 后,硬刷新一次(Ctrl+Shift+R),客户端 bundle 在页面加载时注入。
典型用法¶
- 启动 DSH Web:
dsh web或npx @deepseek-ai/dsh web。 - 按上一节安装
@stone100010/dsh-token-gauge,重启 web 进程(若文档或脚本要求)。 - 浏览器打开 Web UI,硬刷新,确认右下角出现表盘面板。
- 开始或切换 session,观察左盘累计 token、中盘 tok/s、右盘估算费用;需要排查数据时看标题栏 diagnostic 行的 route 与 session id。
- 若使用非目录默认定价的模型或自建网关,编辑
lib/client.js中PRICES(及必要时SCALE_*、ZONES),再重启并刷新。
卸载示例:
dsh plugin --profile web remove @stone100010/dsh-token-gauge
或在克隆目录执行 ./setup.sh uninstall。之后需重启 dsh web。
适用场景与注意¶
适合谁: 经常在 DSH Web 里调试长上下文、对比不同后端解码稳定性,或需要在本地对照 token 预算的开发者。分类上属于「模型推理」相关的可观测性增强,而非改模型或改 prompt 的工具链。
权限与安全: 插件随当前 DSH 进程与用户 profile 加载,具备与该 Web 会话相同的客户端访问面(读取已有 projection)。安装前应阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的合规要求;SkillHub 为社区目录站点,与 DeepSeek / 幻方无官方从属关系。
版本: npm 当前资料中的版本为 0.1.1;GitHub 仓库显示约 1 star。勿假设与尚未在 README 中声明的 DSH 版本完全兼容。
开发侧: 主客户端逻辑在 hand-authored 的 lib/client.js(ModuleLoader bundle,无构建步骤)。仓库内 node test/harness.mjs 提供 61 项检查,覆盖注册、projection 订阅、拖拽与持久化等行为。
结尾¶
dsh-token-gauge 把 DSH Web 已有的 token 与 session 统计投影成三块可拖拽表盘,只读、不碰会话协议,适合在开发调试时快速感知上下文压力、解码速度与估算成本。目录与源码:
- SkillHub 目录页:https://www.skillhub.cn/plugins/stone100010/dsh-token-gauge
- GitHub:https://github.com/stone100010/dsh-token-gauge