dsh-session-insight: DeepSeek Harness Session Health Insights

前言

DeepSeek Harness (DSH) 的核心能力之一是投影,用于观察会话状态。现有的 sessionStats 提供了基础计数,但难以直接回答“当前会话是否健康”这一问题。dsh-session-insight 插件通过一条只读的会话健康度状态条,补充了步数、工具调用、失败数、重复数及失败率等关键指标。它以 sessionInsight 投影单元的形式存在,并在输入框上方展示为一个卡片。

核心功能

该插件聚焦于会话的实时健康监控,具备以下能力:

  1. 健康度状态条
    在输入框上方展示一组只读数据:步数、工具调用数、失败数、重复调用数以及失败率。

  2. 投影单元实现
    实现了 sessionInsight 投影单元,通过 wire.view 将计算结果传递给客户端。

  3. 事件折叠处理
    内部对以下事件进行折叠处理,避免向客户端发送不必要的变化:

    • assistant/message:提取工具调用信息。
    • tool/call:记录派发调用。
    • tool/result:记录结果及错误状态。
    • step/end 与 turn/end:会话周期结束事件。
  4. 失败率计算

    • 公式:失败率 = 失败的 tool/result 数 ÷ 已派发的 tool/call 事件数。
    • 边界:被 ctx.tools.guard() 拦截的调用不计入分母,也不计入分子,反映的是“已派发调用”的健康状况。
  5. 显示精度策略
    根据样本量动态调整显示格式,避免小样本下的过度解读:

    • 样本量 < 10:显示原始分数(如 1/3、0/5),保留精确度和样本量信息。
    • 样本量 ≥ 10:显示百分比(如 8.6%),减少位数,便于阅读。
    • 样本量 = 0:显示短横线(—)。

安装与启用

插件通过 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 端未正确挂载。

注意事项

  1. Desktop Profile 限制:Desktop Profile 必须通过 install.ps1 安装,不能使用 dsh plugin 命令。
  2. 进程退出:任何插件安装或配置修改操作前,必须完全退出 Electron 应用。
  3. 生产环境:建议钉定到固定版本(使用 tarball URL),以避免后续更新导致的不兼容。
  4. 依赖限制:客户端组件仅允许 require('react'),不能引入其他首方 UI 库,否则可能导致 Slot 崩溃。插件在 useProjection 不可用时返回 null,确保降级安全。
  5. 发布状态:目前该插件仅在 GitHub 发布,npm 渠道尚未发布。

总结

dsh-session-insight 提供了一个轻量级的会话健康监控层,通过投影机制将计算逻辑与视图分离,并针对小样本场景优化了展示策略。对于需要深入分析智能体运行状态的开发者,这是一个实用的辅助工具。

插件目录
GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye