前言¶
在 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