dsh-session-eval:对已发生会话做确定性复盘评分

前言

在 DeepSeek Harness(DSH)里跑 agent,改 prompt、换模型、加插件之后,常见问题是:真实工作会话有没有变差?传统 benchmark 要事先写用例、再跑一轮,和日常 session 不是同一批数据。若再引入 LLM 当裁判,结果还难复现。

下面介绍社区插件 dsh-session-eval(维护者 kittimzhe,分类:工作流):对已持久化的 session 日志做回顾性评估——固定阈值打出等级卡,并支持跨 session 的回归对比。不新建 benchmark、不用 LLM 评判、不要求再跑一轮 agent。

这是什么

dsh-session-eval 是 DSH 会话工具链里的「测量层」插件:读已有 session,输出可复现的等级与趋势,用来回答「这次会话好不好」「改配置之后趋势是升还是降」。

与同生态插件的分工(均通过 ctx.sessionQuery 读日志,JSONL 或 SQLite 后端均可):

插件 层级 回答的问题
dsh-session-export 证据 这次 session 里具体发生了什么
dsh-session-recall 记忆 之前做过什么、记录在哪
dsh-session-eval 测量 会话质量如何、趋势是否在改善

与 benchmark 型 dsh-eval 的对比:前者评估你事先发起的跑分;本插件评估已经发生的 session。两者互补,不互相替代。

许可证 MIT;npm 包名 dsh-session-eval(资料中 package.json 版本为 0.2.4)。

核心功能

单 session 等级卡(/eval)

从持久化日志提取三项确定性指标,按文档化阈值映射为 A–E(缺相关活动时该维度为 n/a):

维度 指标 含义概要
Reliability 工具错误率 tool result 报错占比
Re-ask 每 10 轮修正信号 连续用户消息中、助手尚未回复前的额外用户消息(行为上近似「没一次说对」)
Tool load 每轮工具调用数 调用密度是否在合理区间

Overall 取各已评分维度中的最差档,偏保守设计。阈值常量见仓库 src/grade.ts;可配置阈值在 roadmap(GitHub issues)。

同一套日志多次执行 /eval,输出一致:无模型参与、无采样,墙钟时间仅作备注、不参与打分。

跨 session 回归(/eval-diff)

指定两个 sessionId,在噪声带(错误率 ±2pp、re-ask ±0.5、tool load ±1)内对比,避免微小抖动被误判为回归。

工作区历史趋势(/eval-history)

在当前工作区 cwd 范围内(与 /archive 相同的 sessionQuery 范围),对最近 N 个 session 分别打分,并对首尾做 diff。适合「改插件 / prompt / 模型前后各抓一批真实 session」做对比。

安装与启用

环境:Node.js 20 或 22;DSH profile 需挂载 commands 与 sessionQuery 服务(自带的 web / agent profile 满足要求)。

在 DSH 中安装(官方 README 命令):

dsh plugin --profile web add dsh-session-eval

或从 GitHub 源安装:

dsh plugin --profile web add github:kittimzhe/dsh-session-eval

安装后 bundle 会挂载 /eval、/eval-diff、/eval-history。若自行维护 cordis.patch.yml,需保留类似条目:

- insert:
    - id: session-eval
      name: 'dsh-session-eval'

插件以当前 DSH 进程权限运行;安装前建议浏览仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

先看当前 session

在 DSH 会话里执行:

/eval

终端示例(README 摘录,版本号随安装包变化):

Session eval — a1b2c3d4… (dsh-session-eval v0.2.2)
Overall: A
  Reliability   A    2/87 tool results errored (2.3%)
  Re-ask        A    1 re-ask signal(s) over 23 turns (0.4/10 turns)
  Tool load     B    3.8 tool calls per turn
Notes:
  • Wall time 41.2 min over 23 turns.

指定 session 或导出 JSON

/eval --id <sessionId>
/eval --json

对比两次变更前后

已知两个 id 时:

/eval-diff <beforeId> <afterId>
/eval-diff <beforeId> <afterId> --json

看最近 N 次趋势

/eval-history [N]
/eval-history [N] --json
/eval-history --out report.md

--out 将终端卡片存为 Markdown;加 --json 可存 JSON。相对路径相对当前 session 工作区解析;父目录须已存在,已有文件会被覆盖。

适用场景与注意

适合:已在 DSH 中持续产生 session 日志的团队或个人;需要在真实工作数据上跟踪 Reliability、Re-ask、Tool load 趋势;改配置后做噪声容忍的回归判断,而不是只依赖事先设计的 benchmark。

不适合替代:需要覆盖预测场景的标准化 benchmark(仍应使用 dsh-eval 等 benchmark 路径)。

注意:

  1. 评分阈值目前为代码内常量,自定义门槛需关注上游 issue 或自行 fork。
  2. 历史范围绑定当前工作区 cwd,跨目录对比请用 /eval-diff 并明确 session id。
  3. 社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;星标等元数据以各站点当时展示为准。

结尾

dsh-session-eval 把「会话好不好、改完有没有变差」落到持久化日志上的固定阈值与 diff,补全 export / recall 之后的测量一环。安装后从 /eval 和 /eval-history 即可在现有 session 上试跑。

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

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

小夜