前言¶
在 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 先預覽 |
典型閉環可以概括爲:
- 工具執行失敗時,插件監聽
tools/result,必要時自動檢索並在分數過閾值時注入上下文。 - agent 或你主動調用
experience_search/experience_read或experience_ask對齊已有條目。 - 用
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 + 錯誤簽名路由 + 缺口入庫閉環,把「同一報錯再來一次」從重複排查變成可檢索、可主動推送、可側邊欄維護的經驗庫;無模型、無向量庫、默認離線。