前言¶
DeepSeek Harness (DSH) 的核心能力之一是投影,用于观察会话状态。现有的 sessionStats 提供了基础计数,但难以直接回答“当前会话是否健康”这一问题。dsh-session-insight 插件通过一条只读的会话健康度状态条,补充了步数、工具调用、失败数、重复数及失败率等关键指标。它以 sessionInsight 投影单元的形式存在,并在输入框上方展示为一个卡片。
核心功能¶
该插件聚焦于会话的实时健康监控,具备以下能力:
-
健康度状态条
在输入框上方展示一组只读数据:步数、工具调用数、失败数、重复调用数以及失败率。 -
投影单元实现
实现了sessionInsight投影单元,通过wire.view将计算结果传递给客户端。 -
事件折叠处理
内部对以下事件进行折叠处理,避免向客户端发送不必要的变化:assistant/message:提取工具调用信息。tool/call:记录派发调用。tool/result:记录结果及错误状态。step/end与turn/end:会话周期结束事件。
-
失败率计算
- 公式:失败率 = 失败的 tool/result 数 ÷ 已派发的 tool/call 事件数。
- 边界:被
ctx.tools.guard()拦截的调用不计入分母,也不计入分子,反映的是“已派发调用”的健康状况。
-
显示精度策略
根据样本量动态调整显示格式,避免小样本下的过度解读:- 样本量 < 10:显示原始分数(如
1/3、0/5),保留精确度和样本量信息。 - 样本量 ≥ 10:显示百分比(如
8.6%),减少位数,便于阅读。 - 样本量 = 0:显示短横线(
—)。
- 样本量 < 10:显示原始分数(如
安装与启用¶
插件通过 GitHub 仓库发布,不支持 npm 渠道。
Web Profile¶
Web Profile 支持标准的 CLI 安装方式:
& $dsh plugin --profile web add github:Elari39/dsh-session-insight
安装后,需在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组中添加 "dsh-session-insight",然后重启 DSH。
Desktop Profile¶
Desktop Profile 由 Electron 独占,无法使用 dsh plugin 命令。需运行插件自带的安装脚本:
pwsh -File .\install.ps1
验证加载¶
重启应用后,输入框上方应出现健康度状态条。也可以通过浏览器直接请求测试加载:
/plugins/??dsh-session-insight/client.js&rev=<rev>
若返回 200,说明浏览器端加载成功;404 通常意味着 Host 端未正确挂载。
注意事项¶
- Desktop Profile 限制:Desktop Profile 必须通过
install.ps1安装,不能使用dsh plugin命令。 - 进程退出:任何插件安装或配置修改操作前,必须完全退出 Electron 应用。
- 生产环境:建议钉定到固定版本(使用 tarball URL),以避免后续更新导致的不兼容。
- 依赖限制:客户端组件仅允许
require('react'),不能引入其他首方 UI 库,否则可能导致 Slot 崩溃。插件在useProjection不可用时返回null,确保降级安全。 - 发布状态:目前该插件仅在 GitHub 发布,npm 渠道尚未发布。
总结¶
dsh-session-insight 提供了一个轻量级的会话健康监控层,通过投影机制将计算逻辑与视图分离,并针对小样本场景优化了展示策略。对于需要深入分析智能体运行状态的开发者,这是一个实用的辅助工具。