dsh-experience:DSH 自學習本地經驗庫

前言

在 DeepSeek Harness(DSH)裏跑 agent,提示詞可以規定「該怎麼做」,但同一臺機器上重複出現的報錯——模塊找不到、權限 EPERM、fetch failed——往往不會因爲你多寫一段 system prompt 就消失。常見做法是人工記筆記或散落在聊天記錄裏,下次報錯時再搜一遍,成本高且 agent 在工具失敗當下拿不到上下文。

dsh-experience 把「踩過的坑」收成可檢索的本地 Markdown 知識庫:錯誤發生時用簽名加權檢索並主動注入症狀與避坑;收尾時把缺口寫成正式條目。不調用模型、不用向量庫、默認不上網,索引約每 3 秒與磁盤對齊。

這是什麼

插件全名 dsh-experience,倉庫 wqx11235/dsh-experience,維護者 wqx11235,在 SkillHub 等社區目錄中歸類爲「記憶」。當前開源版本 0.1.0(MIT),簡介爲:Self-learning experience library for DeepSeek Harness — local markdown knowledge, error-signature retrieval, gap→entry closure, sidebar panel. No network access.

一句話定位:給 DSH 用的自學習經驗庫——本地索引 Markdown,失敗時檢索命中,解決後把「問題」閉環爲「條目」,並在 Web 側邊欄瀏覽與認領缺口。

和「再寫一段提示詞」的差別

經驗庫補的是「同一錯誤再次出現」這一層:錯誤簽名 → 命中已有條目 → 當場注入症狀與避坑 → 解決後把缺的那條補齊。README 中把這條鏈路稱爲決定性機制,改動檢索或閉環邏輯前應先讀倉庫內 docs/architecture.md 與 library/README.md(條目格式)。

下面按機制簡述(均來自 README 表格,不展開實現細節):

機制 作用
分區加權檢索 標題/正文命中外,「診斷關鍵詞」「避坑」分區加權;中文 2-gram 兜底;別名半權擴展
錯誤簽名路由 ERR_MODULE_NOT_FOUND、EPERM、fetch failed、Error NNN 等簽名專屬加權,並記錄復發頻率
精確重排與去重 top15 重排;近似條目降權;severity: critical 提權
read-as-click 閉環 按簽名搜並讀條目記爲解法;短時間同簽名真實復發記 miss 降權
失敗採集 + 修復證據 工具 isError 或 value.ok === false 進候選;同工具 30 分鐘內成功調用可回填修復證據
缺口 → 條目閉環 復發無解法的簽名、未命中查詢、待認領草稿 → experience_promote 入庫(模板、查重、分類 README、刪草稿、重建索引)
主動推送 工具失敗時自動檢索,分數過閾值注入「症狀 + 避坑」;閾值按採納率自適應
面板 側邊欄:按庫瀏覽、結構化正文(避坑一鍵複製)、缺口與待認領、候選池

安裝與啓用

Web profile 下從 GitHub 安裝(README 給出的當前主要方式):

dsh plugin --profile web add github:wqx11235/dsh-experience

npm 發佈後可用:

dsh plugin --profile web add dsh-experience

官方桌面端請在應用 設置 → 插件 中安裝,不要用命令行改桌面 profile。

裝完後重啓宿主(host 插件不熱更),側邊欄應出現「經驗庫」。首次啓動會把包內 library/ 複製到庫根;已有庫不會被覆蓋。

兼容性:engines.dsh >= 0.1.7-rc.2,不設上限;README 寫明已在 0.1.7-rc.2 實測,0.1.7 以上預計可直接用。

庫根與配置

優先級:config.experienceRoot → 環境變量 DSH_EXPERIENCE_ROOT → 默認 ~/.dsh/experience。

在 profile 的 cordis.patch.yml 裏按插件 id 覆蓋(不要重複 insert):

- id: experience
  config:
    experienceRoot: '/absolute/path/to/experience'
    seed: false

seed: false 可關閉首次把包內 library/ 播種到空庫根的行爲。

兩條庫的邊界

私有庫 公開起步庫
位置 庫根(默認 ~/.dsh/experience) 倉庫 library/
來源 使用積累(採集 / 認領 / 歸檔) 白名單 + 脫敏構建
誰寫 運行時 僅 tools/build-library.mjs
是否發佈 永不 隨 npm/git 包

運行時代碼不寫倉庫內 library/;本地私有庫不會隨插件發佈或上傳。

工具與典型用法

插件向 agent 暴露以下工具(用途來自 README):

工具 用途
experience_search 檢索;空格分詞、中文 2-gram、報錯簽名加權;返回摘要與元數據
experience_read 讀全文;記錄閱讀次數與解法關聯
experience_ask 要結論而非文件列表:按 top 命中彙總症狀/原因/避坑
experience_gaps 缺口清單:反覆出現無解法的簽名、待認領草稿、未命中查詢
experience_promote 把草稿/簽名/未命中查詢寫成正式條目;dryRun: true 先預覽

典型閉環可以概括爲:

  1. 工具執行失敗時,插件監聽 tools/result,必要時自動檢索並在分數過閾值時注入上下文。
  2. agent 或你主動調用 experience_search / experience_read 或 experience_ask 對齊已有條目。
  3. 用 experience_gaps 看反覆無解法的簽名與草稿,再用 experience_promote 入庫(可先 dryRun: true)。

面板與上述能力同源,還提供 HTTP 端點(如 /experience/list、/search、/read、/gaps、/promote 等),便於側邊欄瀏覽與 inbox 操作。

隱私與適用注意

  • 數據默認全部在本地;README 寫明插件沒有任何網絡請求(唯一例外是你配置的 verify: url 校驗)。
  • 公開起步庫由構建期隱私閘門生成,細節見倉庫 docs/privacy.md。

適用對象:長期在 DSH Web profile 上開發、希望把重複性報錯沉澱爲可檢索本地知識、並願意在失敗與收尾階段維護條目的開發者。

安全與權限:插件以當前 DSH 進程權限讀寫庫根與監聽工具結果;安裝前請自行查看源碼與 MIT 許可證,確認路徑與隱私策略符合你的環境。社區目錄(如 SkillHub 插件頁)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文安裝命令以倉庫 README 爲準。

結尾

dsh-experience 用本地 Markdown + 錯誤簽名路由 + 缺口入庫閉環,把「同一報錯再來一次」從重複排查變成可檢索、可主動推送、可側邊欄維護的經驗庫;無模型、無向量庫、默認離線。

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

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

小夜