dsh-memory-layer:DSH 本機記憶層

前言

在 DeepSeek Harness(DSH)裏做智能體或長期協作,常見問題是:偏好、決定、踩過的坑只活在當前會話裏,換一個新線程要從頭交代。社區裏也有「記憶平臺」類方案,往往要額外跑服務、接嵌入或同步鏈路。若你只想在本機持久化少量可解釋的記憶,並在合適的時機自動帶進上下文,dsh-memory-layer 走的就是這條更輕的路。

下面按安裝、存儲與召回、日常操作說明這個插件能做什麼、不能做什麼。

這是什麼

維護者 K-W7,分類爲記憶;當前 README 標註版本 v0.11.3,MIT 許可證,要求 DSH >=0.2.0-rc.2 <0.3.0-0、Node >=22.19.0。

一句話定位:只做記憶,不做記憶平臺。

它不依賴外置服務、向量檢索、嵌入模型、知識圖譜、雲端同步或 Web UI;核心是 SQLite 單文件 加一套 確定性 的「什麼時候該想起什麼」規則。數據落在本機,庫文件路徑爲 <DSH_BIOMEMORY_DIR || ~/.dsh/biomemory>/biomemory.db;拷走該文件即可遷移。

四層結構概覽

存儲層

記憶落在 SQLite 中,主要字段包括:

字段 含義
realm 隔離維度:user 或 project:<工作目錄>
mtype 類型:workflow / error / decision / fact
trigger 觸發信號串
mkey 同鍵覆蓋用的主題鍵
text 正文

另有 chains(工作流鏈)、trigger_counts(觸發計數,用於工作流升級)等輔助結構。v0.11 起區分 被注入(last_accessed)與 真實使用(last_used、hits),避免清理規則被「每次看到就刷新」誤觸發。

召回層

不等模型自發聯想,而是根據當前會話信號注入記憶:

  • 信號來源:會話工作目錄(session.cwd)與最近 12 次工具調用的名字、參數(路徑、命令、錯誤代號等)。
  • 觸發串形態:file:<文件名>、tool:<工具名>、err:<錯誤代號>。
  • 命中後按 workflow > error > decision > fact 排序注入;工作流鏈整鏈帶入。
  • 注入預算:每次最多 8 條、最多 1200 字符;無命中則不注入。
  • 偏好/決定通道(v0.11):對缺少 trigger 的偏好類記憶單獨給小預算(默認 ≤3 條 / ≤400 字符)。
  • 冷啓動兜底:庫較小時可在零命中時回落注入最近幾條;庫變大後讓位給觸發召回。

真實使用僅計:memory action=query 關鍵詞命中,或顯式 memory action=used fp=<指紋>。

清理層

/memory compact 按五條可解釋規則處理(支持 dryRun 預覽),淘汰寫入 compact.log。fact 長期未真實使用可進墓碑;error 與 decision 不自動刪除;pin 條目豁免。remove 爲墓碑可 restore,purge 爲物理刪除且不可逆。

適配層

同一觸發串出現超過 3 次,相關記憶可升級爲 workflow 並按時間順序成鏈——記錄的是「上次你怎麼做的」,不做因果推斷。

安裝與啓用

推薦在 DSH 桌面版安裝:

  1. 打開 DSH 桌面版 → 左側 插件 → 加插件;
  2. 包名填 dsh-memory-layer,點 安裝(安裝後自動啓用)。

命令行等價(把 desktop 換成你的 profile 名):

dsh plugin --profile desktop add dsh-memory-layer

本地開發可 link:

dsh plugin --profile desktop add link:./dsh-memory-layer

安裝完成後重啓 DSH 生效;開啓 HMR 的 profile 可熱掛載。

典型用法

工具 memory

action 說明
add 寫入記憶(text 必填)
query 關鍵詞查詢;命中記一次真實使用
used 標記本條剛被用上
list / update 瀏覽 / 修改
remove 墓碑(可 restore)
purge 物理刪除(不可逆)
restore / pin / unpin 回滾 / 鎖定 / 解鎖
compact 按規則清理
dump 導出人類可讀 Markdown

另有 memory_recall,用於「你還記得…嗎」式顯式召回。

用戶偏好、決定、糾正類重要記憶可走 DSH 官方審批;審批服務不可用時默認拒絕(approvalFallback=deny,可配置爲 auto)。

命令 /memory

常用子命令包括:

/memory list | query <詞> | add <內容> | edit <fp> <新內容> | entries [詞]
/memory remove <fp> | purge <fp> | undo <fp> | unarchive <fp> | used <fp>
/memory pin <fp> | unpin <fp>
/memory stats | why <fp> | preview
/memory compact [--dry-run] | dump | help
  • stats:活躍條數、類型與 realm 分佈、trigger 覆蓋率 等。
  • why <fp>:解釋某條記憶(不)會被注入的原因。
  • preview:預覽當前輪次若組裝提示詞會注入什麼。

寫入時若正文含「今天 / 昨天」等相對時間但無絕對日期錨點,成功返回會附帶提醒,寫入仍會成功。

配置

配置文件:<DSH_MEMORY_ROOT || ~/.dsh/memory>/biomemory.config.json(v0.11 起配置與導出在 memory/ 目錄,庫在 biomemory/)。

部分可覆蓋項示例:

鍵 默認 說明
decisionChannelMax 3 偏好/決定通道每輪最多條數
decisionChannelChars 400 偏好/決定通道字符預算
coldStartFallbackMax 3 冷啓動兜底條數
injectSnapshot / injectRecall / injectSummary true 宿主注入開關;全置 false 則只存只查、不進 prompt
approvalFallback deny 審批不可用時的策略

三個 inject* 在插件 apply 時讀取,修改後需重啓宿主或重載插件。

環境變量:DSH_BIOMEMORY_DIR(數據目錄)、DSH_MEMORY_ROOT(Markdown 備份/日誌目錄)。宿主開啓 webServer 時可能註冊本機 HTTP 端點 /biomemory/api,默認僅本機來源。

適用場景與注意

適合誰: 希望在 DSH 會話間保留偏好、決定、錯誤處理習慣和工作流重複模式,且要求檢索可解釋、數據不出本機的開發者。

刻意不做的事: 向量/嵌入檢索、自動「反思」、跨機同步、刪除即銷燬(常規刪除爲墓碑)。

安全與權限: 插件以當前 DSH 進程權限運行,可讀寫本機 SQLite 與配置目錄。安裝前建議查看 GitHub 倉庫 源碼與 MIT 許可證;誤存敏感信息時可用 purge,但需知悉其不可逆且寫庫路徑不產生備份副本,事前可用 dump 或自行拷貝數據庫。

結尾

dsh-memory-layer 把記憶收成單文件 SQLite 加觸發式召回,沒有額外要跑的服務;換會話時由規則決定何時注入,而不是把整庫塞進 prompt。

DSH 生態奉行「一切皆插件」;SkillHub 爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係。

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

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

小夜