dsh-goal-ledger:用本地会话日志做目标漂移与工具失败审计

前言

DeepSeek Harness(DSH)会把每个会话完整落在 $DSH_HOME/sessions/:目标、每轮输入输出、每次工具调用与报错。数据一直在磁盘上,但默认没有界面帮你归纳「常因为什么失败」「哪些会话可能偏离最初目标」。dsh-goal-ledger 是社区维护者 zhegemingzimeibanquan 发布的 DSH 插件,在设置面板里提供「目标台账」,只读本机会话日志做分析,不修改会话内容,也不上传除 embedding 请求文本以外的数据。

这是什么

一句话:审计你自己在 DSH 里的会话——哪些目标相对最初表述发生了漂移,工具调用在哪些错误特征上反复失败。

插件版本 0.4.0,MIT 许可证,源码与说明见 GitHub 仓库,社区目录页为 SkillHub 条目。SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」,本插件通过 npm 与可选市场索引分发。

核心功能

失败聚类(硬事实)

工具报错按错误特征聚簇,排序展示「最常因为什么失败」。实现上依赖 tool/result 事件里的 data.error(不是 data.ok)。README 写明:在一份实测样本(27 个目标 / 203 轮 / 6105 次调用 / 81 次失败)里,失败聚类被标为高可靠性信号;界面把「失败聚类」放在第一个标签页。

目标漂移(排序信号)

用 embedding 计算每轮输出相对最初目标的语义距离,用于挑出值得复查的会话。README 同样基于上述样本把 embedding 距离标为低可靠性:它衡量的是字面语义分离度,可能出现「词相近但答错了」距离仍低,或长技术任务因路径、报错文本等自然抬高距离。因此距离只用于排序候选,不用于判定对错;默认分档阈值 0.35 / 0.50 / 0.65 为启发式初值,可按自己的分布调整(文档指向 lib/client.js 的 band())。纯工具调用、无文字输出的轮次标记为 scorable: false,不参与均值。

设置面板六个标签页

分析完成后可在设置里切换查看(结果缓存到 $DSH_HOME/dsh-goal-ledger/snapshot.json):

  1. 漂移场:Canvas 光点图,一点一目标,半径为可计分轮次的平均距离;角度编码会话开始时间顺序;目标间连线表示目标向量相似度。
  2. 失败聚类:按次数排序,可展开原始错误与位置。
  3. 目标漂移:按平均距离排序并标注档位。
  4. 漂移轮次:单轮漂移最高的条目。
  5. 向量模型:配置 embedding 端点、模型、key 环境变量名,含连通性测试。
  6. 漂移纠正:可选在持续偏离时向后续系统提示注入提醒(默认关闭)。

漂移纠正(opt-in)

开启后,当某目标连续多轮超过距离阈值时,在轮次之间向系统提示插入提醒:引用最初目标、指出偏离、要求回到目标并保留已完成有效工作。默认不开启时,插件不向提示写入任何内容。参数默认:触发阈值 0.55、连续偏离 2 轮才提醒、提醒后冷却 3 轮;配置在 $DSH_HOME/dsh-goal-ledger/correction.json,挂在 agent 作用域,多会话互不干扰。正在跑的会话用 LiveScorer 读实时事件流,与离线分析同一套事件形状。

Embedding 与离线能力

失败聚类完全离线。距离打分需要网络与 embedding 凭据。默认复用火山 coding plan 相关配置;也可在「向量模型」或 $DSH_HOME/dsh-goal-ledger/config.json 修改。配置只存 key 的环境变量名,不存 key 本身;解析顺序为环境变量 → $DSH_HOME/.credentials.yaml 的 refs:。无 key 时仍可用失败聚类,界面会标注「嵌入:未配置」。

插件声明零运行时依赖,不引入第三方 npm 包。

安装与启用

系统要求

项 要求
DSH >= 0.2.1-rc.3(engines.dsh,低于此版本安装会被拒)
Node.js >= 22
网络 可选;仅向量打分需要

从插件市场装(推荐)

DSH 插件市场读取你自行配置的索引地址。本包在 npm 发布,索引随包提供。在 设置 → 插件 → 发现(Discover) 里添加:

https://unpkg.com/dsh-goal-ledger@0.4.0/market-index.json

然后在市场里搜索「目标台账」或 dsh-goal-ledger 安装。README 说明选用 unpkg 是因为部分环境访问 raw.githubusercontent.com 不稳定,而 unpkg 可稳定拉取索引。

命令行装

# 从 npm 装(推荐,48 KB,秒级)
dsh plugin --profile desktop add dsh-goal-ledger

# 从 Git 装(固定 commit,不走 npm 缓存)
dsh plugin --profile desktop add git+https://github.com/zhegemingzimeibanquan/dsh-goal-ledger.git#f7669338eae9e15acb3a263890cc88d79e8ef0f1

本地开发目录安装示例(路径按你的机器修改):

dsh plugin --profile desktop add file:C:/Project/dsh-goal-ledger

装完重启 DSH 桌面端,设置面板会出现「目标台账」。

典型用法

  1. 打开 设置 → 目标台账。
  2. 点击「开始分析」。首次扫描约几十秒;若要做嵌入打分,需先配置 embedding 凭据(可在「向量模型」标签或 config.json 完成)。
  3. 在六个标签页间切换查看失败聚类、漂移排序与漂移场;需要时在「漂移纠正」里按需开启并调整阈值。
  4. 下次打开会直接显示上次缓存的 snapshot.json,可重新分析刷新。

默认 embedding 相关项(可在配置中覆盖):

项 默认值
base URL https://ark.cn-beijing.volces.com/api/coding/v3
model doubao-embedding-vision(2048 维)
key 环境变量 VOLCENGINE_CODING_PLAN_API_KEY
批量大小 4(上限 10)

任何兼容 OpenAI POST {baseUrl}/embeddings 的端点均可;内置火山方舟 / OpenAI / 硅基流动 / 阿里百炼等预设。

适用场景与注意

适合谁:长期在 DSH 桌面端跑 agent、会话多、想从本地日志里归纳工具失败模式,并用手动复查的方式筛「可能偏题」的会话,而不是依赖主观回忆翻日志。

使用注意:

  • 插件以当前 DSH 进程的权限读取 $DSH_HOME 下的会话与缓存;安装前应自行查看源码与 MIT 许可证,确认符合你的安全与合规要求。
  • 不要把 embedding 距离当成自动质检的终判;README 的对比表明确把失败聚类放在更可信的一侧。
  • 漂移纠正会改变后续轮次的系统提示内容,属于 opt-in;长技术任务可能触发误报,依赖连续轮次与冷却参数缓解。
  • 社区目录星标等信息以站点为准;仓库 README 侧重功能与安装,不替代你对凭据与网络出站策略的审查。

结尾

dsh-goal-ledger 把 DSH 已在本地记录的会话,整理成失败聚类与目标距离两类视图,并可选地在运行中注入漂移提醒。若你要试用,可从 npm 或上述 market 索引安装,细节以 README 为准。

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

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

Xiaoye