前言¶
在 DSH 上做智能体开发时,常会遇到一个问题:改了提示词、换了模型或工具之后,想知道这次会话到底花了多久,某一轮卡在哪个环节。系统日志虽然有事件记录,但没有现成的视图把会话耗时和每轮耗时摆出来;靠外部计时工具或手工翻日志都比较麻烦。
dsh-session-timing 就是一个补齐这块的客户端插件,维护者为 Neverwocao(GitHub 作者 wzp168),MIT 协议。它给 DeepSeek Harness Web UI 加了三层耗时统计:每个会话的总耗时、每一轮的耗时,以及按时间段的汇总。
这是什么¶
一句话定位:DSH Web UI 的会话墙钟耗时插件,把会话日志里的轮次事件折叠成可读的耗时数字。
解决什么问题:在界面上直接看到「这个会话用了多久」「这一轮用了多久」「今天 / 近 7 天 / 近 30 天一共用了多少」,不依赖额外的日志分析工具。
核心功能¶
下面三点对应插件的三处观测位置。数据全部来自会话日志的 turn/start 与 turn/end 两种事件。
1、每个会话的总耗时:打开会话时标题栏右侧显示 ⏱ 累计 12m 10s 胶囊;侧边栏「会话耗时」面板里每个会话一行。
2、每一轮的耗时:Chat 中每一轮结束后、操作行上方显示 本轮 2 · 3m · 08:52:30 → 08:55:30。
3、一段时间内的总耗时:侧边栏「会话耗时」面板提供 今天 / 近 7 天 / 近 30 天 / 全部 四个档位。
因为数据来自会话日志,翻页、压缩上下文、重启 Harness 都不会让数字变化;正在进行的轮次不计入总量,只在标题栏胶囊里实时累加。
安装与启用¶
安装前确认三件事:Node.js ≥ 20;pnpm 在 DSH 进程的 PATH 上(DSH 用它安装插件);本机有带 dsh plugin 命令的 DSH。桌面版通常把命令里的 web 换成你的 profile 名(一般是 desktop)。
一行安装:
dsh plugin --profile web add github:Neverwocao/dsh-session-timing#v1.0.0
也可以不依赖 GitHub tag,改用发布包或本地目录:
# 从 tag 的 tar 包安装
dsh plugin --profile web add https://github.com/Neverwocao/dsh-session-timing/archive/refs/tags/v1.0.0.tar.gz
# 本地开发:直接链接一份 checkout
dsh plugin --profile web add link:/绝对路径/dsh-session-timing
装完重启 dsh web(插件行、客户端 bundle 都是启动时扫描的),再打开「插件」面板确认「会话耗时」已启用。用 link: 装本地代码时,改完 Client 只需重启 dsh web 或刷新页面即可加载新 bundle。
卸载:
dsh plugin --profile web remove dsh-session-timing
典型用法¶
安装启用后不需要额外配置,直接在界面上读数即可。
1、打开某个会话,先看标题栏右侧的累计胶囊,判断这个会话到现在用了多久。
2、做完一轮后看操作行上方的本轮耗时,用来定位起慢的轮次。若想进一步看模型时间与工具时间,改用 DSH 自带的 sessionStats 统计条。
3、点侧边栏「会话耗时」面板图标,切到 今天 / 近 7 天 / 近 30 天 / 全部,对比不同时间段的总耗时。面板不做自动刷新,切时间段或点「刷新」才会重算。
计时口径¶
插件对几个名词的定义如下,和直觉不完全一致,使用前先对齐。
| 名称 | 含义 |
|---|---|
| 轮次耗时 | turn/end 时间减 turn/start 时间,包含工具执行与等待 |
| 会话总耗时(活跃时长) | 所有已结束轮次之和 |
| 时间跨度 | 第一轮开始到最后轮结束;会话中间闲置时它大于活跃时长 |
| 时间段总耗时 | 所选时间段内各会话活跃时长之和 |
另外两条规则:会话按最后活动日归档,所以「今天」指今天有过活动的会话;某一轮没有落 turn/end(崩溃、强杀)时,用下一轮的 turn/start 作为它的结束时间,历史保持单调。
适用场景与注意¶
适合谁:在 DSH Web UI 里日常跑会话、需要按会话或轮次复盘耗时的开发者和使用者;想把会话耗时纳入统计时也可使用。
注意事项,安装前先看清:
1、插件以当前 dsh 进程的权限运行,能访问该进程能看到的会话日志;安装前先阅读源码和许可证。README 标注 MIT,© 2026 wzp168。
2、只折叠轮次边界,不细分每一步(step)的耗时;模型时间与工具时间请用 DSH 自带的 sessionStats 统计条。
3、面板单次最多读取 120 个会话,超出会在页面底部提示。
4、兼容性方面,README 说明在 DSH 0.2.1-rc.5 上验证,engines.dsh 限定 >=0.2.1-rc.1 <0.3.0-0。
小结¶
这个插件的价值在于把原本要翻日志才能算的耗时直接放进 Web UI,省去手工统计。安装维护步骤不多,但能力限定在轮次粒度,需要 step 级数据时仍要回退到 DSH 自带的统计。
目录页:https://www.skillhub.cn/plugins/Neverwocao/dsh-session-timing
GitHub:https://github.com/Neverwocao/dsh-session-timing
补充一句生态背景:DSH 的理念是「一切皆插件」,上面链接的社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。