dsh-exp-lib-provider:爲 dsh-mnemon 提供經驗庫記憶空間與 JitRL 召回工具

前言

在 DSH 裏做長期任務時,模型往往只能依賴當輪上下文或通用記憶插件的「記一句、搜一句」。做法與結果若分散在對話裏,接同類任務時很難按「哪種做法更佔優」來排序。社區維護者 yhPrime 的 dsh-exp-lib-provider 把「經驗庫」做成 dsh-mnemon 的一個記憶空間 Provider(typeId:exp-lib),並用 JSON 文件持久化;寫入只走 exp_record,讀取走 exp_recall 或與記憶插件同一套檢索語義。有成敗對照時按 JitRL 優勢(Â = Q̂ − V̂)排序;沒有對照時在返回裏說明「Â 不具區分度」,改按證據強度排序,不假裝有區分度。下面介紹它提供什麼、如何安裝啓用,以及工具與面板的典型用法。

這是什麼

項 說明
包名 / 目錄 dsh-exp-lib-provider / SkillHub 目錄頁
源碼 GitHub:yhPrime/dsh-exp-lib-provider
維護者 yhPrime
分類 記憶
當前版本(資料) 0.3.0
許可證 MIT

形態是本地 Provider(locality: local,workspaceBinding: optional-override),同時作爲普通 DSH 插件註冊 exp_record、exp_recall、exp_type 三個工具,與 Provider 共用 <dataDir>/exp-lib.json 一份數據。

核心能力

記憶空間 Provider

Provider 側能力包括 search / browse / graph / entities / forget;remember: false(通用寫入被禁用,須改用 exp_record)。writeMode: exact、deletionMode: soft(軟刪墓碑,保留 30 天后啓動時清理)。

可選配置字段 dataDir:默認 $DSH_HOME/exp-lib/provider-data,支持 ~ 開頭;一般跟隨記憶引擎面板裏的設置,不必在 cordis 裏重複寫。

數據文件結構:{ version, types[], experiences[] }。

三個工具

  • exp_record(intent, action, outcome?, type?, note?):寫入唯一入口。重複做法就地更新;同意圖換做法時在雙方均爲正回報才取代舊條,否則保留對照樣本。
  • exp_recall(intent, limit?):召回層 v2 檢索後排序;頂層 mode 爲 advantage 或 evidence,並附帶路由信息(0.3.0 起默認分簇路由)。
  • exp_type:類型 list / create / rename / merge / assign / delete;業務類型按需創建,有四道限制(規範化、近似合併、泛化名歸「未分類」、數量與頻率上限)。

排序與召回

  • 鄰居里存在成敗對照且 advantage 極差 ≥ 0.05 → advantage 模式:rank_score = Â × confidence。
  • 樣本回報幾乎相同 → evidence 模式,按相似度 × 支持度 × 證據質量,並在說明中寫明 Â 不具區分度。
  • 召回層 v2 使用查詢覆蓋、對稱 Jaccard、artifact 覆蓋等組合相似度;artifact 按語義組歸一(如 pptx、幻燈片歸 ppt)。
  • 分簇路由(0.3.0):exp_recall 默認先做確定性簇路由(本地純函數,不調 LLM);配置 routing: 'on' | 'shadow' | 'off'(默認 on)。

面板

記憶 Provider 列表可開關「經驗庫」並配置 dataDir;記憶空間內可檢索(含 JitRL 優勢排序)、瀏覽內容、實體、圖譜(含「取代」邊)。禁用插件後,每輪追加的有界提示段(order: 160)也會消失;config.hint: false 可單獨關閉提示。

安裝與啓用

前置:DSH 裏已安裝 dsh-mnemon(記憶插件)。本包既是記憶空間 Provider,也自行註冊工具,需要「裝插件 + 掛 Provider + 兩處開關都打開」。

1. 安裝插件包

資料中的安裝示例使用 tarball(避免 dsh plugin add <目錄> 的 pnpm link 導致宿主依賴解析失敗):

dsh plugin --profile <profile> add ./dsh-exp-lib-provider-0.3.0.tgz

改源碼後需重新 pack 再 add 纔會生效。

2. 在插件管理裏啓用

dsh plugin add 不會自動寫入 dsh.profile.bundles;須在插件管理裏啓用 dsh-exp-lib-provider,否則三個工具與每輪提示段不會出現。

3. 掛載 Provider(一次性)

備份 profile 的 cordis.patch.yml 後,在已有 - id: mnemon-source-memory-spaces 條目的 providers 列表末尾增加:

      - use: dsh-exp-lib-provider
        instanceId: exp-lib

僅當記憶插件使用自定義存儲根且自動找不到 memory-providers.json 時,纔在此補 config: { mnemonDataDir: ~/.mnemon }。數據目錄通常在面板「記憶引擎 → Provider → 經驗庫」裏設置,工具會自動跟隨。

4. 重啓 DSH

重啓後:記憶插件 → 記憶空間 → 新建,Provider 選「經驗庫」。插件管理與記憶引擎裏「經驗庫」Provider 的開關都要打開。

典型用法

記錄與召回

模型在任務中應通過工具寫入意圖、做法與結果(成功、失敗、被糾正均需記錄;同一意圖換做法時複用同一 intent,否則庫中缺少負樣本,排序無法區分):

  • 寫入:exp_record,可選 type、note、outcome。
  • 接任務前:exp_recall(intent, limit?),閱讀返回中的 mode、route、brief 與候選條目。

類型管理

安裝後僅有系統兜底類型「未分類」。業務類型多在 exp_record 時命名並自動創建;也可用 exp_type 的 list、merge、assign 等修正分類。

數據目錄優先級(工具與 Provider 一致)

  1. 記憶引擎裏「經驗庫」Provider 在 memory-providers.json 中的 dataDir;
  2. 插件 cordis.patch.yml 中的 dataDir;
  3. 默認 $DSH_HOME/exp-lib/provider-data(無 DSH_HOME 時用 ~/.dsh)。

可選:記憶空間卡片頁腳統計

三方 Provider 默認頁腳不顯示條數;倉庫提供 tools/patch-memory-spaces-footer.mjs 對 dsh-mnemon-source-memory-spaces 客戶端 bundle 打補丁,有 stats 時顯示「N 條經驗」等。升級 memory-spaces 後需重跑腳本。

node tools/patch-memory-spaces-footer.mjs --check-only
node tools/patch-memory-spaces-footer.mjs --profile <名>

適用場景與注意

適合誰:已在 DSH 中使用 dsh-mnemon,希望把「做法—結果」沉澱爲可檢索經驗,並在有對照樣本時用 JitRL 優勢排序、在無對照時不僞造區分度的開發者與 Harness 使用者。

務必注意:

  • 插件以當前 DSH 進程權限運行;安裝前應閱讀 GitHub 源碼 與 MIT 許可證,自行評估數據落盤路徑與內容安全。
  • 不要用通用 remember 寫入本空間;Provider 已禁用該入口。
  • SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;星標與版本以倉庫與目錄頁實時信息爲準(資料抓取時 GitHub 星標爲 1)。

維護者提供的只讀體檢與測試(在開發樹中,發佈包不一定含 tests):

node tools/audit.mjs <dataDir>

結尾

dsh-exp-lib-provider 把經驗庫接到 dsh-mnemon 的記憶空間,並用 exp_record / exp_recall / exp_type 約束讀寫語義與 JitRL 排序口徑;0.3.0 起增加本地分簇路由以收窄召回。進一步細節見倉庫 README。

  • 目錄頁:https://www.skillhub.cn/plugins/yhPrime/dsh-exp-lib-provider
  • GitHub:https://github.com/yhPrime/dsh-exp-lib-provider
羽毛球分组比赛记分
小程序二维码

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

小夜