前言¶
在 DSH(DeepSeek Harness)裏跑智能體時,經驗往往散落在對話、筆記或各自爲政的腳本里:能記下來,卻不好按類型檢索、按簇召回,也難以在控制台裏統一查看與調參。純手搓 JSON 或外掛筆記應用,又很難和 Harness 的工具面、側欄契約對齊。
dsh-engram(Engram,記憶痕跡)由維護者 yhPrime 發佈,歸類爲「記憶」類標準 DSH 插件。當前資料中的版本爲 0.11.0,倉庫星標爲 0。它把「經驗與技能引擎」和「經驗庫控制台」打進同一個插件包:重啓 DSH 後只增加一行插件「dsh-engram」,左側欄出現「經驗庫」,工具面與 /exp-ui/api 一併生效。下文按安裝、結構、配置與典型用法說明,事實均來自 GitHub 倉庫 README 與 package 信息。
這是什麼¶
Engram 的定位可以概括爲:經驗與技能引擎 + 經驗庫控制台,一個標準 DSH 插件。
- 維護者:yhPrime
- 社區目錄頁:skillhub.cn/plugins/yhPrime/dsh-Engram
- 源碼與說明:github.com/yhPrime/dsh-Engram
- 許可:MIT(第三方聲明見倉庫內
THIRD-PARTY-NOTICES.md) - 運行要求:Node
>=22(見 package.jsonengines)
0.11.0 起,原先拆成的「引擎」與「控制台外殼」已合併爲一個插件(plugin.js 爲唯一入口),與 dsh-mnemon 等記憶插件在依賴上解耦。
核心功能¶
控制台與側欄¶
安裝並重啓 DSH 後,控制台包含這些頁面(README 原文列舉):概覽 / 關係圖 / 經驗 / 檢索 / 記錄 / 技能 / 類型 / 使用記錄 / 設置。
工具面¶
同包內對 kernel 暴露的工具包括:exp_record、exp_recall、exp_feedback、exp_consolidate、exp_type,與控制台 API 路徑 /exp-ui/api 一起生效。
引擎側能力¶
kernel/ 目錄承擔存儲、檢索、簇路由、沉澱、反饋、技能等邏輯;經驗庫主數據落在配置指定的目錄下的 exp-lib.json 等結構中(詳見配置一節)。
關係圖與主題¶
「關係圖」頁借鑑了社區中星海式三維關係圖等交互思路(README「借鑑與致謝」表中有具體來源與版本說明)。配色默認讀取 DSH 運行時主題 token(如 --dsw-alias-brand-primary),隨當前主題變化;僅在手動選擇預設時纔會用固定配色。
Git 備份(可選)¶
在控制台「設置 → Git 倉庫備份」可將經驗庫目錄(<dataDir>/.git)當作普通 git 倉庫管理:支持初始化、提交推送、僅 fast-forward 拉取,以及 autoBackupMinutes 間隔自動備份(最小 15 分鐘,無改動會跳過)。GitHub 可走 OAuth 設備碼登錄,HTTPS 推送可用單獨 token 字段;亦提供 GET/POST /exp-ui/api/sync 與 POST /exp-ui/api/github 等 API。TLS 攔截代理環境下,插件會嘗試導出系統 CA 並重試(見 README「Git 備份」小節)。
安裝與啓用¶
官方 README 給出的安裝步驟如下,不要憑插件名自行拼接 dsh plugin add github:owner/repo。
先在插件包目錄執行打包,再按 profile 安裝本地 tgz:
npm pack
dsh plugin --profile <profile> add ./dsh-engram-0.11.0.tgz
完成後重啓 DSH。預期現象:插件列表中只有一行「dsh-engram」;側欄出現「經驗庫」,控制台與工具面如上節所述。
安裝前建議自行通讀倉庫源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,經驗庫目錄與 Git 憑據會落在本機配置與數據路徑中。
倉庫結構(便於讀源碼)¶
| 路徑 | 作用 |
|---|---|
plugin.js |
唯一入口:kernel 工具面 + 控制台 API |
cordis.patch.yml |
只插一條 engram 行 |
kernel/ |
引擎:存儲、檢索、簇路由、沉澱、反饋、技能 |
ui/ |
控制台:client.js(界面)、shell.js(API)、live.js/mock.js(數據源) |
icon.svg |
插件圖標 |
package.json 還通過 exports 暴露了 engine、store、retrieval、skills 等子路徑,便於在其他模塊中按需引用(仍以倉庫實際導出爲準)。
配置¶
可在 DSH 插件行配置,或寫入 ~/.dsh/engram/settings.json:
dataDir/currentRoot:經驗庫目錄(含exp-lib.json)source:live(默認)或mock(僅演示)- 內核參數:
hint、usageLog、feedbackEta、routing、maxTypes等,可在控制台「設置」頁修改
Git 備份相關字段(遠端地址、token、autoBackupMinutes 等)同樣在設置頁或 settings.json 中維護;HTTPS token 僅存本機,推送時經 http.extraHeader 使用。
典型用法¶
1. 用控制台管理經驗庫¶
- 安裝 tgz 並重啓 DSH。
- 打開側欄「經驗庫」,在「設置」中確認
dataDir與source(演示可用mock)。 - 在「記錄 / 經驗 / 檢索 / 技能 / 類型」等頁完成日常維護;需要可視化關聯時在「關係圖」中查看。
2. 在智能體流程中調用工具面¶
智能體側通過 DSH 已註冊的 exp_record、exp_recall、exp_feedback、exp_consolidate、exp_type 與經驗庫交互;具體參數與返回形態以倉庫內 kernel/tools.js 及 ui/API.md 爲準。
3. 同步與備份¶
- 在 UI「設置 → Git 倉庫備份」完成遠端與(可選)GitHub OAuth。
- 或用 HTTP API:
GET /exp-ui/api/sync查看狀態;POST /exp-ui/api/sync攜帶{ "action": "init" | "push" | "pull" | "status" }。
適用場景與注意¶
適合誰: 已在 DSH 上開發智能體、希望把「經驗記錄—檢索—技能分層—類型與簇路由」收攏到同一插件與控制台內的開發者。
生態說明: DSH 的理念是「一切皆插件」;skillhub.cn 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文不將其表述爲官方應用商店。
注意:
- 版本 0.11.0 要求 Node 22+;peer 依賴中含
@deepseek-ai/dsh-client-ui-primitives、@deepseek-ai/dsh-tools等,部分標記爲 optional,實際環境以你的 DSH 發行版爲準。 mock數據源僅作演示,生產應使用默認live。- Git 拉取僅
--ff-only,遠端與本地分叉時需人工處理。 - 關係圖與存儲格式吸收了多個開源項目的思路,詳見 README「借鑑與致謝」;使用與二次開發時請保留相應聲明。
結尾¶
dsh-engram 把經驗庫引擎和控制台收成一個標準插件:側欄「經驗庫」、多 Tab 控制台、五條 exp_* 工具面,以及可選的 Git 備份與 GitHub OAuth。若你要在 Harness 里長期積累可檢索、可反饋、可技能化的經驗,可按 README 打包安裝 0.11.0 tgz,再從「設置」定好 dataDir 與內核參數。
- 目錄頁:https://www.skillhub.cn/plugins/yhPrime/dsh-Engram
- GitHub:https://github.com/yhPrime/dsh-Engram