前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许开发者扩展功能。在模型推理调试或性能监控场景中,直观地查看实时输出速度(tok/s)以及分步的详细指标(如 TTFT、累计 tokens)有助于定位性能瓶颈。dsh-token-speed 是一款运行在 DSH Web 客户端的插件,它通过一个可拖拽的环形表盘将速度数据可视化。
核心功能¶
这款插件固定在 Web GUI 右下角,提供以下能力:
- 实时速度显示:生成期间,表盘指针与中央数字随流式输出实时爬升。速度基于输出文本量 × 实测字符/token 比率估算。
- 每步精确校准:每步结束后,利用 provider 上报的
usage.outputTokens和timing(firstToken → completed)计算真实 tok/s,并据此反向校准字符/token 比率。 - 详情面板:点击表盘展开,可查看实时速度、上一步的精确数据、输出 tokens、TTFT 以及当前窗口内的累计输出。
- 状态指示:通过颜色或状态标记生成中、工具执行中或空闲状态。
- 可拖拽与记忆:支持按住拖动调整位置,位置记忆在
localStorage中。 - 纯浏览器端:不修改宿主状态,仅作为只读订阅者读取会话数据。
安装与启用¶
插件通过本地链接方式安装进 DSH profile。以 desktop profile 为例,操作步骤如下:
- 在本地仓库中创建或克隆
dsh-token-speed,并在 DSH profile 的package.json中添加依赖:
// ~/.dsh/profiles/desktop/package.json
{
"dependencies": {
"dsh-token-speed": "link:/Users/<you>/Documents/DSH/dsh-token-speed"
}
}
- 进入 profile 目录并安装依赖:
cd ~/.dsh/profiles/desktop
pnpm install
- 生效规则:
cordis.patch.yml里的insert行由 profile 的 HMR watcher 热加载,修改后通常无需重启。- 若修改
lib/client.js源码,需整页刷新(Cmd+R)才能生效。
典型用法¶
安装完成后,插件会自动挂载到界面右下角。在模型生成过程中,观察表盘指针和数字的变化;点击表盘可查看上一步的具体速度和 tokens 统计;按住表盘可将其拖动到屏幕任意位置。
架构与注意事项¶
该插件的数据来源和作用域限制是关键实现细节:
- 数据源:插件不使用
session作用域的useChat或useProjection,也不能在root作用域读取 session snapshot(该作用域仅包含.subagent/.queue/.value)。正确的入口是使用ctx.uiConversation.binding(sessionId).target('chat')获取数据。legacy.partial:用于实时速度来源,包含进行中的{turn, step, blocks}。legacy.nodes:用于精确 tok/s 来源,包含已结算节点的usage.outputTokens和timing。legacy.runningCalls:非空即代表工具执行中。
- 依赖服务:依赖
slots(槽位注册)和uiConversation(会话聊天数据)。 - 生态背景:此插件隶属于 DSH 生态,由社区维护,目录页与 GitHub 链接见文末。
结尾¶
dsh-token-speed 通过环形表盘和详情面板,为 DSH 用户提供了轻量级的推理速度监控方案。它利用浏览器端能力,在不侵入宿主逻辑的前提下,提供了精确到每一步的性能数据。