前言¶
DeepSeek Harness(DSH)已經提供了規則層(AGENTS.md)和會話級的歷史回溯(session-recall),但在實際開發中,跨會話沉澱下來的項目認知往往散落在不同會話裏:定過的決策、沒做完的任務、踩過的坑、項目背景與階段。換一個會話或換一臺機器,這些信息就沒了,模型只能從頭猜。
dsh-project-memory 就是爲了填補這個中間層:把項目級的長期記憶固化在工作區的 .ai/ 目錄下,可以提交進 git、跟着倉庫走,並且有明確的容量上限和自動整理策略。
它是什麼¶
dsh-project-memory 是一個爲 DeepSeek Harness 提供項目級有限容量長期記憶的插件。維護者 xingzoudefengye。它把項目認知(決策、約束、任務、坑、事實)存進工作區的 .ai/,每個文件都有軟配額,整體有硬上限,支持按時間粗化舊條目,並提供一個穩定的 prompt section 每次會話注入摘要。
插件本身不調用模型,也不跑後臺任務,所有寫入來自 project_memory 工具或 /memory 命令。
核心功能¶
五個 Whitelisted 文件¶
所有記憶都放在項目根目錄下的 .ai/ 文件夾中:
project.md:項目概況、當前階段(軟配額 4000 字符)decisions.md:已定的決策(軟配額 6000 字符)tasks.md:未完成的任務(軟配額 5000 字符)bugs.md:已知的坑與缺陷(軟配額 5000 字符)memory.md:其他長期事實(軟配額 4000 字符)
硬上限爲五件合計 24000 字符 / 65536 字節,整理目標爲 19000 字符。軟配額可互借,決定容量緊張時先粗化哪個文件,但不決定寫入是否合法。
條目格式與可讀性¶
條目是可手改的 Markdown 列表,支持 git diff:
- YYYY-MM-DD [id]
內容
插件會在 .ai/.local/ 內部寫狀態,初始化時自動生成 .gitignore。
容量管理與粗化策略¶
- 寫入前會檢查容量是否超限,超限則拒絕寫入。
- 支持按時間粗化:≤7 天全留;7–30 天只保留最後 2 條;>30 天只保留結論。
forget命令可按 id 刪除條目,默認只預覽,加--apply才真正生效。/memory compact --apply可以應用整理計劃,把舊詳情粗化。
Prompt Section 注入¶
每次會話啓動時,插件會根據項目層和全局層的記憶,生成一個優先級摘要注入到 prompt section(順序 9500)。項目層注入預算約 12000 字符 / 4000 token,全局層約 4000 字符 / 1000 token。
全局層¶
插件支持一個跨項目的全局層,放在 $DSH_HOME/project-memory/(默認 ~/.dsh/project-memory 或 %USERPROFILE%\.dsh\project-memory)。全局層存儲的是所有項目共享的結論,由每個項目在需要時讀取。
安裝與啓用¶
前置條件:
- Node.js ≥22(本機用 24.19.0 驗證)
- 已安裝 DeepSeek Harness(dsh 0.2.x;本文按 0.2.1-rc.2 驗證)
安裝插件(以 web profile 爲例):
dsh plugin --profile web add github:xingzoudefengye/dsh-project-memory
安裝完成後必須完全退出 dsh 進程再啓動,插件在 host 啓動時 import,不會熱加載。
在項目目錄中初始化記憶:
/memory init
.ai/ 會被建在工作區根(從 cwd 往上最近的 .git,沒有 .git 就用啓動目錄)。可選地建立全局層:
/memory init --global
驗證安裝¶
運行檢查腳本:
node scripts/check.mjs
預期輸出類似:
ok: project-memory is in the composed tree
ok: project-memory-section is in the composed tree
ok: tool-project-memory is in the composed tree
ok: command-project-memory is in the composed tree
ok: the prompt section row is mounted
note: no global layer yet — create it with /memory init --global (optional, cross-project memory)
其他 profile 檢查:node scripts/check.mjs headless。
典型用法¶
查看當前容量與整理計劃¶
/memory check
手動添加決策¶
/memory write --file decisions.md --content "決策:前端改用 React,避免 Vue 的響應式開銷"
粗化舊條目¶
/memory compact --apply
刪除某個條目¶
/memory forget --id 2026-10-01-abc123 --apply
查看記憶注入摘要¶
在會話開始時,prompt section 會自動注入項目層和全局層的摘要,可以通過 /memory status 查看各文件當前條目數和容量使用情況。
適用場景與注意¶
- 適合需要跨會話保持項目上下文、決策和任務追蹤的 DSH 用戶。
- 插件以當前 dsh 進程的權限運行,寫入
.ai/之前會檢查權限。 - 所有寫入都會保留一份
*.bak恢復副本,不會靜默覆蓋外部改動。 - 卸載插件不會刪除
.ai/目錄及其內容,需要手動清理。
小結¶
dsh-project-memory 爲 DeepSeek Harness 提供了一個有容量上限、可提交進 git 的項目級長期記憶層,通過五個結構化文件和自動整理策略,幫助模型在不同會話之間保持對項目的連續認知。它不需要模型調用,也不會干擾正常工作流,適合需要長期沉澱項目認知的開發場景。
- 插件目錄:https://www.skillhub.cn/plugins/xingzoudefengye/dsh-project-memory
- GitHub:https://github.com/xingzoudefengye/dsh-project-memory