用 dsh-memory-evolve 給 DeepSeek Harness 補上跨會話長期記憶

前言

DeepSeek Harness(dsh)把模型、工具、技能、會話、沙箱和 UI 都做成插件,官方口號是「一切皆插件」:開發者不必改核心源碼,就能在配置層替換或擴展能力。官方站點把產品定位爲開發者預覽版,源碼在 deepseek-ai/deepseek-harness

預覽版自帶的會話是「這次對話」的工作記憶。換一個項目、隔幾天再開新會話,模型往往記不住你是誰、這個倉庫的部署端口是多少、上週爲什麼否掉了某套架構。把約定寫進 AGENTS.md 能救急,但跨會話、跨分支、跨設備的長期事實,仍然要靠人反覆口述。

社區目錄 DeepSeek Harness 插件庫 把這類缺口交給第三方插件。該站點是獨立社區索引,與 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。目錄「記憶」分類裏的 dsh-memory-evolve,就是專門做跨會話長期記憶和後臺自我進化的一款。

本文按目錄詳情頁、GitHub 倉庫 README、README-詳細說明.mdpackage.json 覈對後整理:它是什麼、記哪些東西、怎麼裝、日常怎麼用。

這是什麼

dsh-memory-evolve 是一款 DeepSeek Harness 記憶插件,由 GitHub 用戶 csyangwen 維護,倉庫爲 csyangwen/dsh-memory-evolvepackage.json 寫明版本 0.1.0,許可證 MIT,主要語言 JavaScript;客戶端注入聲明面向 web 平臺。截至 2026 年 8 月 17 日,GitHub API 顯示該倉庫有 127 顆星。社區目錄於 2026-08-15 收錄,分類爲「記憶」。

倉庫自述的定位是:純插件實現「跨會話長期記憶 + 後臺自我進化」,不改 dsh 核心、不增加運行時 npm 依賴,卸載後效果一併清掉。包內帶 cordis.patch.ymldsh.bundle.patch),dsh plugin add 之後由 host 自動註冊。

它要解決的問題很具體:把用戶偏好、全局慣例、項目決策、項目進展和每日日誌分成五條軌存到本地,按工作目錄和 git 分支過濾後再注入上下文;反覆踩過的流程可以沉澱成技能;口述的待辦可以落到四條軌。寫入會改變模型下一輪行爲的內容,默認先進待確認隊列——文檔原話是「AI 只提議,你確認」。

核心功能

五軌記憶

記憶文件默認放在 ~/.dsh/memories/。詳細說明裏的分層如下:

文件角色 注入方式 寫入
用戶檔案(user USER.md,你是誰、偏好、溝通習慣 每會話注入 建議確認後入庫
全局事實(memory MEMORY.md,環境、工具、慣例 每會話注入 建議確認後入庫
項目關鍵記憶(key 各工作目錄下的 KEY.md,約定、決策、架構、踩坑 注入當前項目會話,可按 git 分支過濾 模型寫入需確認;記憶 Tab 可手動直寫
項目日誌(project 各工作目錄下的 MEMORY.md 不注入,按需讀取 每回合收尾寫入一條進展
每日日誌(daily daily/YYYY-MM-DD.md 不注入,按需讀取 每回合收尾寫入一條進展

只把低頻變化的軌(用戶檔案、全局事實、項目關鍵記憶)注入快照,是爲了少破壞前綴緩存。項目日誌和每日日誌每輪都會追加,注入會讓尾部快照一直變,所以改成按需用 memory 工具讀取。

日常用法和 README 場景指南一致:正常對話即可;重要事實可以說「記一下:這個項目的部署端口是 8080」,條目進待確認隊列,你點採納後才生效;過幾天換會話,直接問「查一下記憶,上次我們定下的架構決策是什麼」。條目可以歸檔,歸檔後不再注入,隨時能轉回主軌。

git 分支感知

同一工作目錄的不同分支,約定經常不一樣。插件用 git branch --show-current 識別當前分支(與 dsh TUI 同款)。非 git 倉庫、獲取失敗或 detached HEAD 時,分支相關行爲退化爲「全部」。

項目關鍵記憶可以帶 [branch:main,dev] 這類範圍標記;無標記表示所有分支可見。注入時只放入無標記條目,以及覆蓋當前分支的條目,並且把當前分支名一併寫進快照。項目日誌和每日日誌會由程序自動打上 [git 分支名],模型手寫的前綴會被剝掉。開關是 keyBranchFilter,默認打開。

確認制與回合內審查

全局記憶、項目關鍵記憶、模型自建待辦和新技能,默認都進 SUGGESTIONS.jsonl 待確認隊列。可以在會話頁記憶 Tab 裏採納或拒絕,也可以用命令:

/memory_review
/memory_review approve 1 3
/memory_review reject 2
/memory_review approve-all

回合內自我審查默認關閉(reviewEnabled: false)。打開後,插件按用戶回合計數,到達 reviewInterval(配置表示例爲 10,詳細說明默認值爲 5)時標記到期;主模型在本回合內靜默執行:給全局記憶提建議、按規則創建或優化技能,再調用 memory_review_status complete 復位。審查不派生子代理,依賴模型是否遵守快照裏的提示;弱遵循模型可能漏執行。到期計數只增不清,漏一輪下一輪仍是到期,只有 complete 纔會復位。

reviewMode 默認 suggest。設成 auto 會讓審查直接寫全局軌,文檔提醒注意提示注入風險。

技能自我進化與技能管理器

審查可以把反覆踩坑的流程寫成 ~/.agents/skills 下的技能。優化已有技能前必須先 read(read-before-write);新建技能默認進待確認隊列,因爲技能會注入所有會話,文檔要求創建保持克制。

原獨立插件 dsh-skills-manager / dsh-skill-browser 的管理界面已合併進來:記憶 Tab 的「技能管理」可按來源瀏覽、搜索、禁用或啓用技能,並添加自定義技能目錄。首次啓動會嘗試從舊插件的 state.json 導入禁用列表。不要和舊插件同時啓用,兩套禁用機制會對同一技能重複處理;舊客戶端在較新的 dsh 上還會因已移除的 ui-slots.deferRegistration 導致 Web 整頁加載失敗。升級順序是:先卸舊插件,再裝本插件。

四軌待辦

dtodo 工具和「待辦」子 Tab 提供四條軌:生活、工作、本項目(按工作目錄隔離)、每日。每條可帶四象限(重要 × 緊急)、截止日期和狀態。你口述的待辦直接寫入;模型自己發現的事項走建議隊列。待辦內容永不注入上下文,只靠收尾時的固定提示讓模型檢查到期項。

默認可選的擴展能力

README 把插件概括成「讓 AI 記住你、替你管、替你做、互相配合做」。後半段能力大多默認關閉,不佔模型工具清單,需要時在「Memory Evolve 設置」裏打開:

  • 記憶同步:項目記憶經 Git 對賬,可存在代碼倉庫的專屬分支,或填一個共享記憶倉庫做隔離;未打開的項目保持純本地。
  • COI 調度:把任務派給 kimi / codex / grok / hermes 等外部 CLI,後臺執行、不卡主進程;完成摘要可寫回項目日誌和每日日誌。
  • 會話編排與會話廣播:主會話可以 spawn / wake 其他 dsh 會話,並用房間或一對一廣播協作。喚醒只作用於本進程內的會話;主會話所在 dsh 進程關掉後,催活鏈會停。
  • 會話搜索:當前支持檢索本機 Codex 歷史(~/.codex/sessions 等明文 JSONL);dsh 會話暫不支持。
  • 提示詞管理器、無限畫板、會話評審、會話書籤、Web UI 設置、渠道通知:同樣是獨立開關,默認關。

這些模塊和記憶共用一個插件包,但不是裝上就會全部生效。

安裝與啓用

社區目錄頁給出的安裝命令是:

dsh plugin add github:csyangwen/dsh-memory-evolve

倉庫 README 以 web profile 爲例,推薦寫成:

dsh plugin --profile web add github:csyangwen/dsh-memory-evolve

安裝後重啓 dsh web。目錄頁同時說明:如需可復現安裝,可固定 commit 哈希:

dsh plugin add github:csyangwen/dsh-memory-evolve#<commit>

不要再往 ~/.dsh/profiles/web/cordis.patch.yml 裏手動 insert 同一 id。bundle patch 已經註冊過一次,重複 insert 會讓加載器報 duplicate loader entry id,進程起不來。若以前按舊文檔手動 insert 過,升級時刪掉那一行。

需要打開回合內審查時,在 profile 的 cordis.patch.yml 用 id 覆蓋(頂層寫法,不是 insert):

- id: dsh-memory-evolve
  config:
    reviewEnabled: true
    reviewInterval: 10

插件異常導致 dsh 無法啓動時,可以先禁用、不必卸載:

- id: dsh-memory-evolve
  disabled: true

卸載:

dsh plugin --profile web remove dsh-memory-evolve

典型用法

裝好並重啓後,打開任意會話,頂部會多出一排能力標籤。核心三個是「記憶」「技能」「待辦」;其餘標籤隨對應模塊開關出現。

  1. 正常開發即可。每回合收尾時,模型應向項目日誌和每日日誌各寫一條進展;出現長期約定、決策、架構或踩坑時,再向項目關鍵記憶提交建議。
  2. 發現值得跨會話保留的事實,直接說「記一下:……」。到記憶 Tab 的待確認列表裏採納或拒絕。
  3. 換會話或隔天繼續時,先讓它「查一下記憶」,而不是把背景再講一遍。
  4. 記憶變多後,把不再需要自動注入的條目歸檔。
  5. 打開「Memory Evolve 設置 → 配置」,按需打開審查、本地文件搜索、記憶同步或 COI,而不是一次全開。

本地文件搜索默認不註冊工具。可用設置頁切換,或:

/memory_evolve_search_files on

適用場景與注意事項

適合已經在 dsh Web 里長時間做項目開發、經常換會話或並行多個倉庫的人:需要模型記住偏好和項目決策,而不是每次從零介紹。多設備共享記憶、多會話協作、把重活派給外部 CLI,是同一插件上的可選項,不是入門必開項。

使用前注意:

  1. 權限。目錄頁寫明:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。
  2. 社區來源。插件庫是社區站點,不是 DeepSeek 官方應用商店;倉庫維護者是 csyangwen,不是幻方官方團隊。
  3. 默認關閉的功能很多。審查、COI、廣播、會話編排、會話搜索、提示詞、畫板、會話評審等默認關。打開一項就會多註冊一批工具,佔模型工具列表。
  4. 與舊技能管理插件衝突。先卸載 dsh-skills-manager / dsh-skill-browser,再裝本插件。
  5. 審查依賴指令遵循。每回合寫日誌和到期審查都靠快照提示驅動;弱遵循模型可能跳過。文檔建議可調低 reviewInterval,或檢查所用模型。
  6. 緩存是盡力而爲。dsh 的運行時上下文是隻追加的 user-role 尾部快照,記憶變更會追加新尾部,舊快照仍佔位。前綴(系統指令、工具說明、AGENTS.md、此前對話)仍可命中緩存。這是核心 context 機制的限制,插件替換不了歷史快照。
  7. 數據在本地。記憶、待辦、提示詞等默認在 ~/.dsh/memories/。若打開記憶同步並把遠端指到公開代碼倉庫,文檔寫明「公開倉庫 = 記憶公開」;需要隔離時應使用單獨的共享記憶倉庫。

小結

dsh-memory-evolve 把跨會話記憶做成 dsh 的標準插件:五軌分層、分支過濾、確認制寫入,再附帶技能沉澱和待辦。協作、調度、畫板這些能力在同一倉庫裏,但默認關掉,避免一裝上就撐滿工具列表。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-memory-evolve/

GitHub:https://github.com/csyangwen/dsh-memory-evolve

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

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

小夜