前言¶
在 DeepSeek Harness(DSH)里跑长对话或工具链时,模型还在流式输出,往往只能靠体感判断「快不快」。Harness 自带的 sessionStats 会在每一步结束后才算出 decodeTokens / decodeMs,tokenUsage、contextPressure 也只在每次 attempt 结算时更新——生成过程中看不到实时速度与 Token 变化。
dsh-token-speed 是社区维护者 alwayswithmestand 提供的客户端插件,在 Web 对话输入框下方显示实时吞吐胶囊,并从浏览器已有会话状态推算速度,不额外请求 Host。下面介绍它做什么、如何安装,以及数值在「生成中」与「结束后」分别代表什么。
这是什么¶
- 名称:
dsh-token-speed(npm 包名同名) - 维护者:alwayswithmestand
- 分类:客户端(
dsh.client.platform: web,适用于 Web 与 Desktop 的 Web UI) - 定位:Live token throughput meter for the DeepSeek Harness Web chat composer——在输入框下方展示生成中的输出速度、实时输出 Token 估算、本轮输入 Token 等。
Host 侧 index.js 为空实现;数据全部来自客户端对已折叠实时助手流(useChat(s => s.legacy.partial) 中的 text / reasoning / tool-call 增量)的订阅与计算。
核心功能¶
胶囊条(默认收起)¶
生成过程中,输入框下方会出现一行类似:
● 42 tok/s · ↑48.3k · ↓1.24k
分别对应:最近滑窗下的输出速率、输入 Token 投影、实时输出 Token 估算(生成结束前后语义见下文「数值语义」)。
详情面板(点击胶囊展开)¶
可查看:状态、已用时、输入合计与缓存分桶、缓存命中率、上下文占用、输出 Token、首字延迟、解码时长、模型/工具耗时、实时与平均速度、会话累计,以及最近几秒的速度柱状图。面板会标明当前指标是 provider 的精确值还是流式过程中的估算值。
设计取舍(相对 Harness 自带统计)¶
| 方面 | Harness 自带 | 本插件 |
|---|---|---|
| 速度可见时机 | 每步结束后 | 生成过程中即可见 |
| 额外服务/请求 | — | 无;不新增 Host 事件或工具 |
| 卸载 | — | 订阅随插件卸载销毁,不残留 DOM 或定时器 |
安装与启用¶
插件在 DSH Plugins → Add plugin 中安装;安装后以当前 DSH 进程的权限在客户端运行,安装前应自行查看 GitHub 仓库 源码与 MIT 许可证。
图形界面¶
在 Plugins → Add plugin 填入包名 dsh-token-speed,点击 Install,再选择 Enable now。若未自动启用,在 Plugins 页打开对应开关。客户端插件一般无需重启应用。
CLI(Desktop)¶
dsh plugin --profile desktop add dsh-token-speed
Web 版将 desktop 换成 web:
dsh plugin --profile web add dsh-token-speed
从 GitHub 安装(npm 未发布或需固定版本时)¶
dsh plugin --profile desktop add "git+https://github.com/alwayswithmestand/dsh-token-speed.git#v1.0.0"
生产环境建议锁 40 位 commit(#<40 位 sha>),避免可移动 tag 带来漂移。
自定义插件市场索引¶
仓库根目录提供 format 1 的 index.json。在 Plugins → Discover → Add index source 添加:
https://raw.githubusercontent.com/alwayswithmestand/dsh-token-speed/main/index.json
之后可在 Discover 中搜索并一键安装。
典型用法¶
- 确认 DSH 版本满足
engines.dsh要求(见下文兼容性)。 - 按上一节方式安装并启用插件。
- 打开任意 Web 对话,发送一条会触发较长流式回复的消息;观察输入框下方胶囊是否随输出更新。
- 需要区分缓存、上下文压力或首字延迟时,点击胶囊打开详情面板;注意生成中途输出 Token 与速度为估算,流结束后会切换为 provider 上报的精确值。
无需单独配置文件;行为由会话内的实时 partial 与 attempt 结算数据驱动。
数值语义¶
provider 仅在流结束时上报一次 usage,生成过程中无法拿到真实输出 Token 数,因此 UI 会区分「估算」与「精确」。
| 数值 | 生成中 | 结束后 |
|---|---|---|
| 输出 Token | 按流式字符估算(窄字符约 4 字/token,CJK 约 1.6 字/token) | provider 的精确 outputTokens |
| 速度 | 最近 2 秒滑窗速率(估算) | decodeTokens / decodeMs(精确平均) |
| 输入 Token | 上下文投影(contextPressure.projectedTokens) |
最近一次请求的精确提示词用量 |
| 缓存分桶 / 命中率 | 来自最近一次 provider 上报 | 同左 |
做性能对比或写报告时,应以流结束后的精确列为准;调试「正在生成」体验时,以胶囊与柱状图的实时估算为准。
适用场景与注意¶
适合谁
- 需要在 DSH Web 对话里直观感受模型输出快慢、上下文与缓存占用的开发者。
- 调试长推理、多工具回合时,希望在不打开 DevTools 的情况下看到 partial 累积对应的吞吐趋势。
版本与平台
| 项目 | 要求 |
|---|---|
| DeepSeek Harness | >=0.2.2-rc.1 <0.3.0(engines.dsh,安装前校验) |
| 平台 | Web 与 Desktop 的 Web UI |
安全与信任
插件属于 DSH 社区目录中的第三方客户端扩展,与 DeepSeek / 幻方无官方从属关系;以当前 dsh 进程权限注入 UI 逻辑。生产或敏感环境安装前请审阅 client.js 及依赖注入列表。
结尾¶
dsh-token-speed 把 Harness 结算后才可见的 Token 与速度指标前移到流式生成过程,全部基于浏览器已有会话状态,Host 零实现、无额外网络请求。需要安装说明与数值表时,以仓库 README 为准。