dsh-ledger-watch:会话级经验账本指示灯

前言

在 DeepSeek Harness(DSH)里跑智能体工作流时,常见做法是配一套「经验账本」技能:开工前先查历史坑,踩坑后写进账本。难点不在规则怎么写,而在「这次会话到底有没有真的查、有没有记」——口头承诺无法核对,复盘也只能凭印象。

dsh-ledger-watch 是社区维护的工作流类插件,在 Web 会话里用指示灯和指标回答上述问题:本会话是否调用过账本相关工具、是否执行过记坑动作,以及账本目录本身是否就绪。它不替代 lesson-ledger 技能产出的规则,也不做用户行为审计。

这是什么

维护者:OldManDing。仓库:OldManDing/dsh-ledger-watch,社区目录页:SkillHub 条目。当前 package 版本为 0.1.0,许可证 MIT。

一句话定位(与 README 一致):这个会话有没有真的遵守你自己定的规则——查过经验账本吗、记下踩过的坑了吗。

插件只做观测与展示:订阅宿主侧的 tools/result 等事件,把统计写入证据文件,并在浏览器半边渲染面板。规则内容由 lesson-ledger 技能与用户 AGENTS.md 决定;本插件不生产规则、不做语义判断「这段算不算坑」。

核心功能

两个界面插槽

界面 插槽 说明
会话顶部 tab「经验账本」 conversation.view(order 30) 启用指示灯、结论条、本会话指标、可疑信号、事件时间线、账本健康度等
输入框下方药丸 conversation.composer.dock(约 5 秒轮询) 例如 ● 账本 5 / 11,圆点颜色对应当前结论;在本 tab 内会隐藏并停止轮询

打开「经验账本」tab 时,宿主会隐藏默认输入框区域;切走 tab 后恢复。

指示灯与结论

显示 含义
避坑功能已启用(绿) 本会话查过账本(queries > 0)
避坑功能未启用(红) 已在用工具但一次都没查账本
本会话不在监视范围内(灰) 插件从未观测到该会话(如安装前已有会话、或其它进程中的会话)

结论文案如「又查又记」「查了没记」「记了没查」「未查询」「无活动」,由查询次数与记录次数组合得出;未在监视范围内时不显示结论。

若本会话有失败工具调用却零条记录,面板会出现补记横幅(needRecord),提示收尾时用 add-lesson.ps1 补记。

首次使用与账本状态

当 ledgerDir(默认 ~/.agents/skills/lesson-ledger)下缺少 lessons/ 与 workspaces/ 时,面板不会单纯判红,而是展示引导卡:安装 lesson-ledger、复制 AGENTS.md 片段、用 add-lesson.ps1 记第一条坑。扫描结果分为 missing / empty / ready 三种。

可疑信号(提醒,不判定)

插件采集五类可观测信号并在指标区常显:失败调用、重复同一工具与参数、同一文件第三次及以上改写、用户消息中的纠正标记词(不保存原文)、工具调用很多却零记录。信号非零且零记录时会出横幅并在收尾自报中点名;不会因此自动写入账本。

可选自动召回

宿主侧可将高相关账本规则注入为 system-reminder,默认关闭(recallMode: 'off')。README 说明独立验收在中文账本上约 69% 精度,开启前需阅读仓库内质量准入说明;设 recallMode: 'high-confidence' 才启用。面板页脚常显当前开关状态。

数据与收尾联动

证据文件路径:

~/.agents/skills/lesson-ledger\.watch.json

写入采用原子替换并与会话历史合并,便于重启或多实例后保留部分统计。收尾脚本 tools\report.ps1 的「避坑功能」段也会标注未查或未记情况。

安装与启用

本包为 bundle 型插件,需通过仓库内的 install.ps1 安装到 DSH Web profile,而不是凭插件名拼接 registry 命令。

在你本地已有源码目录中执行(路径换成你自己的克隆位置):

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

脚本会将包复制到 profiles/web/vendor/dsh-ledger-watch/、登记 profiles/web/package.json 依赖与 dsh.profile.bundles,并清理旧包目录。开发机若希望改源码即时生效,可加 -LinkSource(依赖会指向绝对路径,不可移植)。

生效方式摘要:

改动 生效
lib/client.js 重新 install → 浏览器 Ctrl+F5
lib/index.js 重新 install → 重启 DSH web

cordis.patch.yml 的 loader 名、package.json 的 name、lib/client.js 的模块 id 必须与目录名一致(均为 dsh-ledger-watch)。

运行环境要求(package.json):Node ^22.19.0 || >=24.0.0,DSH >=0.1.7-rc.2 || >=0.2.0-rc.2。

配置

在 profile 的 cordis 补丁层为本包 loader 增加 config:

键 默认 说明
ledgerDir ~/.agents/skills/lesson-ledger 账本根目录
recallMode 'off' 设为 'high-confidence' 开启自动召回
exposeEvidence false 是否允许界面读取证据文件原文

典型用法

  1. 先安装并配置 lesson-ledger 技能与 AGENTS.md 开工自报(引导卡可一键复制片段)。
  2. 正常在 DSH Web 会话里工作;需要时打开顶部「经验账本」tab 查看查询/记录次数与可疑信号。
  3. 会话中通过账本脚本查询与记坑(README 认定的口径包括调用 brief.ps1、add-lesson.ps1、在账本目录内的文件读写、以及 skill 工具加载 lesson-ledger 等);失败调用不计入查询/记录。
  4. 若面板提示补记,在收尾阶段运行 add-lesson.ps1 写入坑条目。

本地开发验证(tests 目录不随公开包发布,需在完整克隆中保留):

node .\tests\run-all.mjs

README 记载当前 207 条测试全部通过。

回滚:

powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1 -RemovePackage

再从 profiles/web/package.json 的 dependencies 与 dsh.profile.bundles 移除 dsh-ledger-watch 并重启 DSH。

适用场景与注意

适合已经或计划使用 lesson-ledger、希望在 DSH Web 里可视化核对「查账本 / 记坑」是否发生的开发者。插件以当前 DSH 进程权限运行,只能证明工具调用层面的事实,不能代替人工判断坑是否记全、规则是否有效。

观测范围限于本进程启动之后见过的会话;从未观测到的会话会显示灰色「不在监视范围内」,与「没查账本」含义不同。多实例共用同一证据文件时,外层 build/diag 以最后写入者为准,会话计数会合并。

安装前请自行阅读仓库源码与 MIT 许可证;社区目录 SkillHub 与 GitHub 均为社区生态入口,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-ledger-watch 把「有没有查账本、有没有记坑」从主观回忆变成会话内可核对的数据,并配合可疑信号与账本健康度提醒复盘,而不是替代账本技能本身。需要细节与界面截图时,以仓库 README 与代码为准。

  • 目录页:https://www.skillhub.cn/plugins/OldManDing/dsh-ledger-watch
  • GitHub:https://github.com/OldManDing/dsh-ledger-watch
羽毛球分组比赛记分
小程序二维码

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

Xiaoye