dsh-error-improvement:将用户确认的经验转化为持久化智能体记忆

前言

在 DeepSeek Harness (DSH) 的开发中,避免智能体重复犯错并复用成功的经验是提升鲁棒性的关键。传统的记忆机制往往依赖外部服务或缺乏明确的确认流程。dsh-error-improvement 插件直接解决了这一痛点:它将智能体运行中产生的结果转化为持久化记忆,要求用户确认后才生效,从而将“错误”转化为预防规则,将“验证过的修复”转化为配方,并最终将经过实战检验的条目升格为独立技能。

插件定位

这是一个 DeepSeek Harness 插件(所有者:wbushihenshuai-design)。它是一个独立于 EverOS、内存服务、数据库、浏览器和网络 API 的纯文件存储系统。所有持久化状态都保存在 $DSH_HOME/error-improvement/ 目录下的纯 Markdown 文件中。插件采用“安全协议”,只有当 confirmed: true 时才注入记忆,确保智能体不会静默写入未经授权的输出。

核心功能

下面介绍插件的核心工作流程和机制。

1. 捕获与确认

  • 零 LLM 捕获:插件监听工具执行结果,将错误和结果直接队列化到 candidates.jsonl,不经过 LLM 队列。
  • 受控蒸馏:当队列达到 capture.minQueueSize 且间隔满足 capture.minIntervalMs 时,LLM 被激活用于生成草稿,草稿存放在 drafts/ 目录。
  • 用户确认:草稿不会静默写入记忆。它们首先出现在 Settings → 错误改进 → 待确认草稿 中。用户可以批准或拒绝。
  • 例外工具:智能体可以通过调用 improve_record_recipe 工具来持久化一个已经验证过的解决方案,这属于例外情况。

2. 注入与记忆

  • 三种模式:
    • assist(默认):注入与当前上下文相关的经验作为建议。
    • strict:注入所有已确认的经验作为规则。
    • off:仅捕获,不注入。
  • 渲染规则:注入的文本经过控制字符清理和角色标签编码(转义 < 和 >),并以原子方式渲染(整个块若超出字符预算则完全省略,不截断)。
  • 来源标识:注入的内容使用插件来源(form: instructions),并包含递归保护(<SUBAGENT-STOP>)。

3. 错误预防(强制规则)

  • 重复错误检测:插件监听 tools/post-execute,统计相同的失败模式(工具名+归一化错误签名)。
  • 升格为规则:当失败次数超过 enforcement.threshold(默认 3)时,该错误被提升为运行时规则。
  • 拦截机制:在 tools/pre-execute 阶段拦截匹配的调用:
    • warn(默认):在冷却期内拦截,显示原因并允许重试。
    • deny:直接阻断调用。
  • 失败开放:每个钩子和文件/LLM 操作都设计为“失败开放”,插件错误不会阻塞工具管线或智能体循环。

4. 配方与技能升格

  • 配方:通过 improve_record_recipe 工具保存的验证解会进入 recipes.md,与经验共享相关性引擎。
  • 技能升格:获得 hit(命中次数)的条目会成熟。达到 graduation.minHits(默认 3)的条目会被提议为技能。批准后,它们会作为 $DSH_HOME/skills/<slug>/SKILL.md 文件写入磁盘。

安装与启用

插件目标版本为 DSH 2.0.15+(需要 Node 22.19+ 或 24+)。它通过 profile 的配置文件启用,而非传统的 npm 安装命令(事实中未提供具体安装命令,需通过目录或包管理器部署后配置)。

配置文件位于 ~/.dsh/profiles/<profile>/cordis.patch.yml。通过声明 Schemastery schema 来启用插件。

典型用法

  • 查看草稿:进入 Settings → 错误改进 → 待确认草稿,查看并处理待确认的条目。
  • 工具操作:在智能体会话中调用 improve_review_drafts 工具来列出和操作草稿。
  • 记录配方:在解决问题后,调用 improve_record_recipe 工具将解决方案持久化为配方。
  • 候选队列:结果会自动转化为 candidates.jsonl 中的条目。

适用场景与注意

  • 适用场景:需要长期记忆、防止智能体重复犯错、希望将验证过的流程固化为技能的场景。
  • 注意:
    • 权限:插件以当前 DSH 进程权限运行,安装前应检查源码和许可证。
    • 数据迁移:旧版本(0.2.x)的设置不会自动迁移到新的 cordis.patch.yml,需要手动配置。
    • 数据存储:所有数据存储在本地文件系统,不依赖 EverOS 或其他服务。
    • 清理:存储的文本会进行控制字符清理,文件写入采用原子操作(先写临时文件再重命名)。

总结

dsh-error-improvement 提供了一套从“错误捕获”到“用户确认”,再到“注入预防”和“技能升格”的完整闭环。它通过强制确认机制保证了记忆的质量,通过文件存储保证了独立性,适合追求高可靠性、可复用性的 DSH 智能体开发。

GitHub 仓库

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

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

小夜