DeepSeek Harness 插件 `dsh-negative-ledger`:记录已证伪路径并在证据变化后自动失效

前言

在 DeepSeek Harness(DSH)中,智能体经常需要连续调用工具:执行命令、读取文件、尝试不同 API 或方案。某些尝试失败后,模型仍可能在同一会话或后续会话里重复相同路径。已有做法可能只在会话内提醒字节级重复,或依赖人工记住“这条路不通”;@akslcw/dsh-negative-ledger 的目标是把这类“已证伪路径”持久化下来,并绑定证据和重试条件。

下面介绍这个插件的定位、核心机制、安装方式、典型用法和适用边界。本文基于已核实的插件资料整理,不补充未确认的数据、星标数或用户反馈。

这是什么

  • 名称:@akslcw/dsh-negative-ledger
  • 维护者:akslcw
  • 许可证:MIT
  • 定位:Agent negative-knowledge ledger for DeepSeek Harness。
  • 核心作用:记录失败路径,包括 failed commands、missing files、rejected approaches、unavailable APIs;每条记录附带证据和重试条件;当证据变化时,结论自动失效;重试成功后,事实被标记为 resolved。

它明确不是:

  • Not memory:不保存正向知识,也不做语义召回。
  • Not a cache:保存的是结论,不是工具结果。
  • Not a bug regression tracker:覆盖工具调用和文件读取,不局限于修复尝试。

核心机制

下面从“记录、匹配、拦截、失效”四步说明。

1、记录失败路径

插件只记录已证伪路径,而不是所有工具调用。可记录的类型包括:

  • failed commands
  • missing files
  • rejected approaches
  • unavailable APIs

每条记录会带证据和重试条件。后续判断是否重复尝试,会依赖 fingerprint:

  • 命令类尝试:基于 normalized command plus cwd
  • 文件类尝试:基于 file path

2、匹配相同尝试

当同一个 fingerprint 再次出现时,插件会判断该失败结论是否仍然有效。若证据未变化,则进入提示或拦截流程;若证据已变化,则结论失效,允许重试。

3、warn 与 block

插件提供 offwarnblock 三种模式:

  • warn:默认模式。在 tools/post-execute 上附加 additionalContexts,不阻塞调用,也不改写工具结果。
  • block:在 tools/pre-execute 阶段拒绝调用,发生在 dispatch 之前。
  • off:完全关闭记录与拦截。

4、证据变化后自动失效

如果记录所依赖的证据发生变化,插件会自动 invalidates 相关结论,并允许重试。如果重试成功,事实被标记为 resolved。

后端与接口

插件提供两套 store 后端:

  • SQLite 后端:支持 WAL、revision-based optimistic concurrency、operation receipts、retry leases、JSONL import。
  • Legacy JSONL 后端:single-process,适用于单写入场景。

Engine API 暴露以下方法:

getFact
queryFacts
commitAttemptDecision
recordFact
transitionFacts
settleLease
summarize

CLI 提供以下命令,并可选择 SQLite 或 JSONL 后端:

list
show <id>
stale
stats

共享与安全边界

  • Ledger 在多个 agent 之间共享,子代理不会重复父代理已经失败的尝试。
  • Claims 不嵌入原始命令文本;面向模型的预览会做控制字符清理和长度限制。
  • 原始命令保留在 ledger 文件中,作为 fingerprint 使用;文件以 0600 权限写入 0700 目录内。
  • Ledger 将事实渲染为 quoted data,不作为 instructions 执行。
  • Single-writer JSONL 只适用于 legacy backend;SQLite 后端支持多进程,使用 WAL。

安装与启用

DSH 的插件机制允许通过 profile 安装和启用扩展。本插件的安装命令为:

dsh plugin --profile <name> add @akslcw/dsh-negative-ledger

该命令会安装插件,并激活其 bundle layer。插件包内提供 cordis.patch.yml,由 dsh.bundle manifest 声明。

安装后,可以先查看配置,再启动 DSH:

dsh --profile <name> --dump-config
dsh --profile <name>

移除插件:

dsh plugin --profile <name> remove @akslcw/dsh-negative-ledger

运行环境要求:

Node ^22.19.0 || >=24.0.0

兼容性方面,插件已用 @deepseek-ai/dsh-tools 0.1.1-rc.2 测试,并声明 optional peer range:

@deepseek-ai/dsh-tools >=0.1.1-rc.2 <0.2.0

pnpm 注意事项

pnpm >=11 可能将 ignored build scripts 变成硬错误,导致 add 失败:

ERR_PNPM_IGNORED_BUILDS: better-sqlite3

资料说明,better-sqlite3 提供官方 prebuilds,该 ignored script 本身不会触发编译。若遇到该错误,可在 profile 目录中执行:

pnpm config set --location project strict-dep-builds false

然后重新运行安装命令:

dsh plugin --profile <name> add @akslcw/dsh-negative-ledger

如果改为允许 build,则会从源码编译 better-sqlite3,并要求 C++ toolchain。

典型用法

CLI 查询 ledger

在源码仓库内,可直接使用 CLI:

node src/cli.ts --dir .ledger stats

完整形式为:

node src/cli.ts [--dir <path>] [--backend sqlite|jsonl] <list | show <id> | stale | stats>

其中:

  • list:列出事实,包括 status、kind、id、claim。
  • show <id>:查看单条事实。
  • stale:查看因证据变化而失效的事实。
  • stats:查看拦截相关计数,例如 duplicate failures observed、warnings emitted、calls denied。

演示与 smoke 命令

资料中给出的可执行示例包括:

node demos/run-demos.ts
node smoke/real-mount.ts
powershell -File smoke/plugin-add-smoke.ps1

其中 powershell -File smoke/plugin-add-smoke.ps1 用于 clean-environment 端到端 smoke,覆盖 add、layer、headless warn、SQLite ledger、remove 后 profile 仍可启动等流程。

覆盖配置行

插件提供 negative-ledger 配置行,支持以下键:

backend
mode
dir
commandRetryAfterMs
commandTools
readTools

后续 layer 可以按 id 覆盖 negative-ledger 行,并重新声明所有改动的配置键。例如只想调整 mode 时,不要只在 patch 里写一个孤立键;应在覆盖行中完整表达新的 config,避免被整体替换后丢失其他键。

默认行为上:

  • warn 是默认模式,不会阻塞调用。
  • block 会在 tools/pre-execute 拒绝调用。
  • off 会关闭记录和拦截。
  • Auto-recorded command facts 的 commandRetryAfterMs 默认是 5 分钟。
  • nevermanual 保留给显式、可信作者记录的事实。

适用场景与注意

适合使用本插件的场景包括:

  • DSH 智能体反复调用相同失败命令。
  • 文件不存在或路径不可用,但 agent 仍会重复读取。
  • 某些 API 或方案在当前环境不可用,希望把“不要立刻再试”作为证据绑定的约束。
  • 多 agent 或 subagent 场景中,不希望子代理重复父代理已经失败的尝试。
  • 需要可查询、可统计、可随证据变化而失效的负面事实记录。

需要注意的边界:

  • 它不是正向记忆系统,不保存“什么能做”的知识。
  • 它不是缓存,不替代工具结果存储。
  • 它不是 bug regression tracker,不面向测试失败或修复回归本身。
  • 插件以当前 DSH 进程权限运行,安装前应检查源码和 MIT 许可证,确认其行为符合本机安全要求。
  • 资料中 Known limitations and deferred work 部分被截断,无法确认所有限制;使用前建议直接查看仓库 README。
  • DSH 生态通常以插件扩展 harness 能力;本文提到的插件属于社区/插件线索生态,不应理解为 DeepSeek 或幻方官方应用商店。

结尾

@akslcw/dsh-negative-ledger 的价值在于:它把失败尝试转化为可追踪、可失效、可共享的负面事实。它不替代记忆、缓存或回归追踪,而是针对“agent 反复尝试同一条已证伪路径”的问题,提供证据绑定的 DSH 插件方案。

相关链接:

  • GitHub:https://github.com/akslcw/dsh-negative-ledger
  • 插件线索目录页:https://www.skillhub.cn/plugins/akslcw/dsh-negative-ledger
    注:该目录页链接来自插件线索,未出现在已抓取资料正文中,访问前请自行确认。
羽毛球分组比赛记分
小程序二维码

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

小夜