dsh-compound:在 DeepSeek Harness 里记录与召回已验证的项目经验

前言

用 DeepSeek Harness(DSH)做项目排查时,同类问题往往在几周后再次出现:当时怎么修的、验证过什么、适用哪些条件,容易只留在聊天记录里,换会话或换人就要重走一遍。通用记忆插件或向量库可以存片段,但和「本仓库、本文件、本次验证」绑不紧,也不方便审阅和版本管理。

下面介绍社区插件 dsh-compound(维护者 Nocteve,分类:记忆)。它面向 DSH 做轻量 Compound Engineering 适配:把已经解决并验证过的疑难整理成项目内 Markdown 经验,支持中文检索,并在相关代码文件变化时提示需要重新核验。设计思路借鉴 Every 的 Compound Engineering;移植范围与许可见仓库内 THIRD_PARTY_NOTICES.md。这是非官方社区项目,SkillHub 目录页:https://www.skillhub.cn/plugins/Nocteve/dsh-compound,源码:https://github.com/Nocteve/dsh-compound。

这是什么

dsh-compound 是 DSH 标准 bundle 插件(当前包版本 0.1.0,MIT 许可)。核心做法是:一次疑难修通并通过检查后,把根因、适用条件、验证结果写成可复用记录;以后按症状、组件或关键词召回少量候选,再对照当前代码判断是否仍适用。记录落在当前项目 docs/solutions/dsh-compound/,普通 Markdown,可 diff、可删改。运行依赖 Node 内置库,不需要数据库、嵌入服务或后台进程。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与许可证。记录为本地文件,helper 不上传;模型读取记录时内容会进入当前会话,数据处理取决于你配置的模型服务。

核心功能

第一版提供两项 Skills,并通过 DSH 的 ctx.skills 注册,通常由模型在对话中选用;没有每回合强制注入,capture 也不会在每个任务结束后自动归档。

dsh-compound-capture

按你的要求把值得保留的经验写入项目目录。若已有相近记录,会先通过内容摘要做校验再更新,避免重复堆叠。应只保存脱敏后确有价值的结论,不保存凭据或原始私密日志。

dsh-compound-recall

按症状、组件和关键词查找项目经验,支持中文文本匹配。召回时会结合记录里登记的相关文件做变化检查:报告未变、已变、缺失或无法判断。文件未变不代表经验仍正确;检索分数也不代表可信度。记录里的验证命令与结果是记录者提供的报告,工具不会执行它们,也不会替你证明问题已解决。

文件变化检查

记录相关文件的 SHA-256;召回时对照工作区现状给出变化状态,提醒你在代码变动后重新核验适用条件。

存储与边界

每个工作区只读取自己的 docs/solutions/dsh-compound/,不搜索用户主目录或其他项目。路径检查拒绝符号链接,并限制记录与证据文件大小(可靠性措施,非沙箱隔离)。证据过大、在工作区外或不存在时会报错,具体限制见仓库 docs/record-format.md。

安装与启用

需要 Node.js 22.19+ 和已安装的 DeepSeek Harness。README 记载的测试环境为 Windows、Node 22.19.0、Harness 0.2.0-rc.2;更细边界见 docs/validation.md。

本包尚未发布到 npm,不要用包名直接安装,以免装到无关同名包。需要先得到 .tgz 或本地插件目录(README 中从源码 npm test 与 npm pack --ignore-scripts 生成压缩包的流程见 GitHub 说明)。

装入指定 profile 后需关闭并重启该 profile,技能列表中应出现 dsh-compound-capture 与 dsh-compound-recall。下面以 profile 名 web 为例,路径换成你的实际位置:

dsh plugin --profile web add 'C:\Downloads\dsh-compound-0.1.0.tgz'

也可以直接链接已下载或本地的源码目录:

dsh plugin --profile web add 'C:\Projects\dsh-compound'

本包没有安装脚本、构建步骤或 Claude CLI 依赖。

典型用法

在问题已经修复、相关检查确实通过之后,对 Harness 说明意图,例如:

用 dsh-compound-capture 记录这次问题值得复用的经验,保留根因、适用条件和实际验证结果。已有相同经验就更新,没必要写的就不要写。

在新任务或相关排查中召回时,例如:

用 dsh-compound-recall 查一下这个项目有没有类似问题的解决经验。核对当前代码后再使用,指出哪些条件还需要重新验证。

模型也可在排查或规划中自行选择 recall,是否主动选用取决于模型行为。

排查安装或脚本问题时,可直接调用随包 helper(一般不必手跑):

node bin/compound.mjs recall --workspace 'E:\my-project' --query 'Windows 进程退出' --limit 5
node bin/compound.mjs inspect --workspace 'E:\my-project' --id 'worker-exit'
node bin/compound.mjs capture --workspace 'E:\my-project' --input 'E:\my-project\draft.json'

草稿字段与输出含义见 docs/record-format.md。examples/verified-solution.json 是明确标记的合成结构示例,没有对应真实验证,不能作为真实经验直接导入。

适用场景与注意

适合: 希望在单个仓库内沉淀「已验证」排障结论、用中文关键词召回、并能在 CI/审阅流程里管理 Markdown 经验的 DSH 用户。

不适合当作: 全自动项目记忆、多代理编排、或替代 code review 的 Compound Engineering 完整迁移。README 写明当前没有完整迁移 CE 的规划、审查、多代理编排与自动记忆;后续优先收集安装失败、重复记录、误召回、漏召回和陈旧经验等案例再决定是否扩展。

卸载技能:

dsh plugin --profile web remove dsh-compound

卸载后项目内已有经验文件仍保留。删除某条记录可直接删对应 Markdown;若修改了实质结论,应重新验证并通过 capture 更新,避免正文与机器元数据不一致。

结尾

dsh-compound 把「修过一次并验证过」的问题收进项目目录,用 capture / recall 两条 Skill 配合文件 SHA 变化提示,让 DSH 在相似任务里先查本地经验、再对照现行代码决策。DeepSeek Harness 生态强调「一切皆插件」;SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。

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

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

Xiaoye