Get記憶(dsh-get-memory):用 GitHub 倉庫做 DSH 外置記憶

前言

在 DeepSeek Harness(DSH)裏做長期對話或跨設備協作時,上下文往往只活在當前會話裏:重啓、換前端、開新窗口,人設、約定和「上次聊到哪」都要重新交代。有人把記憶寫進本地文件或筆記,但和 DSH 的注入時機、寫回時機對不上,維護成本高。

Get記憶(dsh-get-memory)把「讀什麼、寫什麼」綁到一個你指定的 GitHub 倉庫:對話開始自動拉取倉庫裏的 Markdown 注入上下文,對話結束(在開啓自動寫回的前提下)由插件調用模型提取值得長期保留的信息,按文件寫回並提交。記憶落在 Git 裏,跨設備、跨重啓共用同一份文件。插件由社區維護者 krodon998 發佈,在 DSH 插件目錄中歸類爲「記憶」;當前 npm 包版本爲 0.5.1,許可證 MIT。

下面介紹定位、能力、安裝步驟和配置要點。安裝前請自行查看 GitHub 倉庫 源碼與許可證;插件以當前 DSH 進程權限運行。

這是什麼

Get記憶是 DSH 的記憶類插件:名字同時對應「Get 記憶」(取回)和「Git 記憶」(存在 GitHub 倉庫裏)。它適配 DSH 軟件端(桌面應用);網頁界面是軟件端的鏡像,能力跟隨軟件端生效,不提供獨立的 web 插件。

未選擇記憶倉庫之前,插件不注入、也不寫回——默認配置下沒有誤操作風險。

核心功能

對話開始:拉取並注入

每次新建或恢復會話(agent/created),插件通過 GitHub Contents API 並行拉取倉庫文件,更新內存與磁盤緩存(~/.dsh/cache/aire-memory/snapshot.json),並在組裝模型上下文時注入(默認排序號 injectOrder 爲 100,位於常見運行時上下文之前)。注入內容會做花括號消毒,避免倉庫裏 {{User}} 一類模板語法干擾運行。

拉取失敗時不打斷對話:回退磁盤緩存(標註過期);若無緩存則注入「暫不可用」佔位。

對話結束:提取並寫回(可選)

默認 關閉 自動寫回(writebackEnabled: false),以免消耗模型額度。開啓後,在回合停擺約 30 秒(writebackDebounceMs,默認 30000)或會話關閉時,插件用當前會話模型(或配置的提取模型)從近期對話轉錄中提取新信息,對標記爲「讀寫」的文件逐個生成完整內容,先 GET 最新 SHA 再 PUT 提交;409 衝突會重取重試一次。無實質變化則不提交。只對根會話寫回,子代理 / 工作流會話不寫;失敗只記日誌。

文件權限與多文件

設置頁可「同步文件列表」,爲每個文件勾選只讀或讀寫:注入讀全部參與列表的文件,寫回僅處理讀寫文件。主賬本默認文件名爲 長期記憶賬本.md(ledgerFile)。空倉庫可在設置頁「一鍵初始化」,由插件創建帶模板的 長期記憶賬本.md,無需在 GitHub 網頁手工建文件。

界面

左欄「Get記憶」快捷面板(小心心圖標):查看拉取 / 寫回 / 令牌狀態、立即拉取、自動寫回開關、最近操作記錄。DSH 原生設置頁提供令牌、倉庫單選、文件權限、觸發範圍、檢查更新等;高級項(分支、注入順序、轉錄上限、提取模型等)可在插件完整配置中調整。

安全與令牌

GitHub 細粒度 PAT 建議 僅勾選目標倉庫的 Contents 讀寫。令牌查找順序:DSH 憑據庫 AIRE_MEMORY_GITHUB_TOKEN(面板保存,推薦)→ 同名環境變量 → 配置項 githubToken(首次加載可遷移進憑據庫)。令牌只用於你配置的那一個倉庫,且不會寫入倉庫文件;寫回前對內容做密鑰形態脫敏。

安裝與啓用

  1. 安裝插件(插件市場搜索 dsh-get-memory,或執行下列命令):
dsh plugin --profile web add dsh-get-memory
  1. 在 GitHub 生成細粒度 PAT,僅目標倉庫 Contents 讀寫。

  2. 打開左欄「Get記憶」面板或設置頁 → 粘貼令牌並保存 → 從列表 單選 一個記憶倉庫。

  3. 若倉庫爲空,在設置頁點擊「一鍵初始化」。

  4. 正常聊天即可在對話開始自動讀記憶;需要長期自動沉澱時再打開「自動寫回」。

更換令牌:生成新 PAT → 面板或設置頁保存(或改 ~/.dsh/.credentials.yaml 中 AIRE_MEMORY_GITHUB_TOKEN,重啓 DSH)→ 在 GitHub 作廢舊令牌。

典型用法與配置摘要

日常流程即 README「快速開始」:裝好 → 配令牌與倉庫 → 可選開寫回。寫回頻率由 writebackEveryN 控制(默認每 5 條對話一次,設爲 1 則每條都寫);sessionPolicyMode 可選全部會話、排除列表或僅限列表。

常用配置默認值(完整表見倉庫 README):

字段 默認 說明
repo 空 未配置則不注入不寫回
branch main 分支
writebackEnabled false 自動寫回
writebackEveryN 5 每 N 條對話寫回一次
ledgerFile 長期記憶賬本.md 主賬本

設置頁與面板中多數改動會保存爲運行時覆蓋,即時生效且重啓保留。

適用場景與注意

適合:希望記憶與人設、規則放在 GitHub Markdown 中、多設備共用同一份「外置大腦」的 DSH 桌面用戶;能接受爲寫回功能消耗模型調用。

注意:

  • 插件目錄站點 skillhub.cn 插件頁 爲社區生態索引,與 DeepSeek / 幻方無官方從屬關係;DSH 本身遵循「一切皆插件」的擴展方式。
  • 自動寫回會調用模型做提取,請按需開啓並設置 writebackEveryN。
  • 依賴 Node ^22.19.0 || >=24.0.0(見 package.json engines)。

結尾

Get記憶把 GitHub 倉庫當作 DSH 的可版本化記憶層:開始對話自動讀,結束對話可選寫回,左欄與設置頁完成配置。進一步細節、原理與完整配置字段見 GitHub:krodon998/dsh-get-memory;插件目錄頁:https://www.skillhub.cn/plugins/krodon998/dsh-get-memory。

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

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

小夜