前言¶
在使用 DeepSeek Harness(DSH)进行智能体开发时,流式输出的吞吐量(tokens-per-second)是一个直观的效率指标。虽然可以在控制台查看日志,但缺少一个可交互、可停靠的实时卡片,会让持续观察变得不便。dsh-tps 插件就是为这个场景设计的。
是什么¶
dsh-tps 是一个为当前 DSH 会话提供实时 tokens-per-second 展示的客户端插件。它维护者 TINGOD2006,默认安装在左侧侧边栏,也可以切换为可拖拽的悬浮卡片。插件通过订阅 agent/assistant-stream 事件与 session/event 事件来计算吞吐量,并在页面中以卡片形式呈现。
核心功能¶
实时与平均吞吐量¶
卡片顶部提供分段控制器,可在「实时」与「平均」模式间切换:
- 实时 t/s:基于
agent/assistant-stream的增量数据计算,使用滑动窗口与分母下限,避免突发 chunk 导致数值剧烈波动。 - 平均 t/s:从第一个 token 开始的全会话平均值。
Sparkline 走势图¶
展示最近 40 个采样点的折线图,使用卡片的主题色绘制,便于快速判断吞吐趋势。
会话列表与切换¶
卡片底部列出所有会话的读取数据,格式为 dsh-tps (会话名),点击一行可将卡片切换到该会话的视图。点击不会影响当前页面。
布局与交互¶
侧边栏停靠或悬浮¶
卡片右上角提供两个按钮:
- 左侧:停靠到侧边栏底部插槽。若侧边栏消失(窗口过窄或折叠),卡片会回退到悬浮模式。
- 悬浮:固定在右下角悬浮卡片。
选择与悬浮位置、折叠状态、实时/平均模式均保存在 localStorage 中。
拖拽行为¶
在悬浮模式下,卡片整体(包括标题、数值、折线图、空白区域)都是拖拽手柄。按钮、分段控制器与会话行排除拖拽,保证点击目标可用。拖拽在 document 上追踪,即使鼠标移出卡片也能保持跟随,且不会触发切换模式的点击事件。
安装与启用¶
在终端中执行:
dsh plugin add TINGOD2006/dsh-tps
安装完成后重启 DSH 服务,插件会在加载时出现在侧边栏中。
典型用法¶
- 安装插件后,在左侧侧边栏底部即可看到 dsh-tps 卡片。
- 默认显示当前会话的实时 t/s 与 Sparkline。
- 点击卡片右上角的分段控制器,可在「实时」与「平均」间切换。
- 点击卡片底部会话行,切换卡片视图到对应会话。
- 点击右上角的按钮选择「左侧」或「悬浮」,控制卡片位置。
修改 lib/widget.js 并刷新页面即可更新卡片样式或逻辑,无需重启服务。页面运行旧版本时会显示刷新提示(⟳)。
适用场景与注意¶
适合需要持续观察流式输出吞吐量的开发者,特别是在长时间会话或批量推理场景下。插件以当前 DSH 进程的权限运行,建议在安装前检查源码与许可证(MIT)。
短结尾¶
dsh-tps 提供了一个轻量、无依赖的实时 TPS 监控入口,通过侧边栏停靠或悬浮卡片满足不同布局偏好。更多细节可在插件目录查看,源码托管在 GitHub。