前言¶
在 DeepSeek Harness (DSH) 的生态中,构建智能体的记忆机制通常依赖于静态检索管道。一旦检索失败,管道就结束了,系统无法自动填补知识缺口。dsh-learn-wiki 插件通过引入 CRAG(Corrective RAG)式纠错检索解决了这个问题:如果知识库检索不到,它会自动学习并沉淀下来,下次直接命中。
该插件由 Dayi-Z 维护,定位为工作流插件。它不重复实现 Hindsight 的 L2 情景记忆,而是专注于 L1 Markdown 知识库存储、未命中判定以及 L3 限流联网补料。
核心架构¶
插件采用三层知识架构来管理知识流:
- L1(Markdown 知识库):独立 Markdown 仓库,存储精选知识页,强命中直接注入。
- L2(Hindsight):原始情景记忆,由既有 hindsight 插件负责语义召回,本插件不重复实现。
- L3(网络):兜底补料,通过
ctx.web进行限流联网。
安装¶
插件为纯 JS 实现,零构建步骤,依赖声明为 peerDependencies。
# 从 GitHub 安装
dsh plugin --profile web add github:Dayi-Z/dsh-learn-wiki
# 本地开发(直接链接源码目录)
dsh plugin --profile web add link:D:/Harness/dsh-learn-wiki
配置¶
配置来源优先级为:代码默认值 → <wikiRoot>/wiki.config.json → apply(ctx, config) 第二参数。关键配置项如下:
| 配置项 | 默认值 | 说明 |
|---|---|---|
wikiRoot |
D:\Harness\dsh-wiki |
L1 仓库根目录 |
autoContext |
true |
每轮第一步自动注入检索结果 |
autoAcquire |
true |
后台补料(非阻塞),触发条件由 gapTrigger 决定 |
gapTrigger |
'struggle' |
触发补料的信号:'struggle'(默认)、'miss'、'both'、'off' |
hitThreshold |
0.20 |
score ≥ 此值 → hit(注入正文) |
weakThreshold |
0.15 |
score ≥ 此值 → weak(只注入标题索引) |
maxAcquisitionsPerRun |
2 |
单次后台补料最多处理的缺口数 |
显式工具¶
除了自动机制外,插件提供一组显式工具供模型调用:
wiki_recall:显式检索 L1,返回三分桶判定与页面正文。wiki_learn:显式沉淀一条知识(默认落 staged)。wiki_harvest:从一段对话里提炼知识(当前会话或历史会话),默认落 staged。wiki_sessions:读历史会话。支持list(列表)、brief(简报)、walls(跨会话反复撞的墙)、show(详情)。wiki_review:查看 staged 暂存队列与 gaps 缺口队列。wiki_commit:staged → pages,唯一升入 L1 的闸门。
实现细节与注意事项¶
- 暂存机制:
staged/永不参与召回,必须 commit 才升入 L1。这限制了投毒面。 - 溯源要求:无
sources不 commit,每条知识必须可溯源到 URL / 文件。 - 会话解析:会话文件使用自定义帧解析,魔数为
28 B5 2F FD。版本号从事件流头部读取,文件名仅作副本。 - 挣扎检测:默认触发器为
struggle(卡住),而非简单的检索未命中(miss)。这避免了新话题的噪音。
获取更多¶
插件目录:https://www.skillhub.cn/plugins/Dayi-Z/dsh-learn-wiki
GitHub:https://github.com/Dayi-Z/dsh-learn-wiki