前言¶
在 DeepSeek Harness(DSH)裏用 AI 寫代碼,常見痛點是「每個新會話都像失憶」:上週踩過的坑、已經驗證過的修復,下一輪對話又要從頭講一遍。有人用向量庫、知識圖譜或自動抽取管線做長期記憶,對個人錯題本來說往往過重,攻擊面也更大。
下面介紹社區插件 cross-session-memory(倉庫名 GIN0076/cross-session-memory,又稱 Agent Lesson Book / 錯題本)。它把教訓存成純 Markdown,用證據鏈約束寫入,並在每次會話裏自動注入一小段索引,讓代理能召回、在閘門下保存,而不是把記憶當成可執行的指令。
這是什麼¶
cross-session-memory 是維護者 GIN0076 發佈的 DSH 插件,分類屬於「記憶」。定位是:面向 AI 編程代理的零依賴跨會話記憶——Lessons on disk, evidence enforced, auto-injected(教訓落盤、證據強制、自動注入)。
同一套引擎(tools/mem.mjs + tools/mem-core.mjs)有兩種用法:獨立 CLI(例如向 AGENTS.md 注入索引),以及 Harness 原生插件(每回合提示詞注入、mem_recall / mem_save 工具、/memory 命令與只讀設置卡)。package.json 中插件包名爲 @local/dsh-memory,當前社區目錄標註版本爲 v0.5.2;許可證爲 MIT。運行時要求 Node.js ≥ 18。
核心功能¶
四段式教訓與證據閘門¶
每條教訓按 現象 / 判定 / 解法 / 驗證(或英文 Symptom / Cause / Fix / Verification)組織。寫入時若缺少可定位的證據引用(路徑、文件名、章節、issue 號等),store 會拒收。設計原則之一是:記憶是數據,不是指令。
自動注入與檢索¶
- 注入預算硬頂:≤ 2KB 索引;超預算會砍行,讀索引失敗則靜默降級爲指針約定,不阻塞會話。
- 檢索:IDF 加權三路搜索(字面、中文 n-gram、aliases),可選兩階段重排(可信度、新鮮度、
feedback採用記錄)。 - Harness 側:
mem_recall合併教訓本與既往會話全文搜索;mem_save走完整寫入閘門,並受寫入模式約束。
寫入模式與人工維護¶
寫入模式:approval(默認,模型寫入需人工確認)、auto-draft、auto-low-risk、off。人類通過 CLI 或 /memory 執行的命令不受寫入模式限制。
插件還提供:/memory 下多條維護子命令(如 doctor、review、conflicts、resolve、explain、verify、draft / approve / reject、write-mode 等);Harness UI 中的只讀設置卡展示狀態、可信度分佈、召回命中率與條目搜索(無寫入口)。
其他已文檔化的能力¶
- 條目生命週期標籤:
verified / provisional / needs-review / stale / disputed;review按約 90 天複覈。 - 衝突:
conflicts列出矛盾對;resolve記錄裁決,條目保留、敗方可派生爲stale。 - 隱私:
DSH_MEMORY_TELEMETRY=off關閉本地埋點寫入;含郵箱或大陸手機號的條目可被 PII 掃描拒絕。
安裝與啓用¶
DeepSeek Harness 側安裝以倉庫 plugin/README.md 爲準,不是簡單的 dsh plugin add github:… 一行命令。官方說明爲通過插件管理器安裝 bundle:
plugin_manager → install_bundle → target = <clone>/plugin/dsh-memory
一條命令會掛上提示詞注入、mem_recall / mem_save、/memory 與只讀設置卡。若 bundle 已存在,文檔要求先 remove_bundle 再裝,否則可能觸發 ambiguous-install。
依賴物化需要額外注意:bundle 清單刻意不聲明 npm 依賴;@deepseek-ai/dsh-tool-session-query 等需在 bundle 的 node_modules 與 profile 中通過 junction / dsh plugin … add "link:…" 等方式鏈到本機 DSH 源碼路徑。具體 PowerShell 示例與替代方案見 plugin/README.md。
配置項(cordis.patch.yml):
| 鍵 | 默認值 | 含義 |
|---|---|---|
memoryCorePath |
空則相對解析 ../../tools/mem-core.mjs |
安裝路徑變化時需改爲 mem-core.mjs 的絕對路徑 |
maxHits |
8 |
mem_recall 默認返回條目數 |
驗收時可對照文檔中的六條清單,例如 dsh --profile <profile> --dump-config 無導入失敗、首回合提示詞含 ≤2KB 索引、mem_save 未批准時不落盤、/memory doctor 與 node tools/mem.mjs doctor 一致等。
若只把引擎當獨立 CLI 用(不裝 Harness 插件),可在項目根拷貝倉庫內容後執行:
node install/setup.mjs --with-sample
可選冒煙:
node install/smoke.mjs
典型用法¶
寫第一條教訓(CLI)¶
先起草四段骨架,補全驗證段證據後入庫並體檢:
node tools/mem.mjs draft ssh-timeout
# 編輯 .memory/drafts/<日期>-ssh-timeout.md
node tools/mem.mjs store .memory/drafts/<日期>-ssh-timeout.md
node tools/mem.mjs doctor
條目 front matter 與四段示例見倉庫 README.zh-CN.md 中的 git-autocrlf-breaks-byte-exact-restore 樣例。
在 Harness 裏召回與保存¶
- 模型調用
mem_recall檢索教訓與會話全文。 - 模型調用
mem_save時,在默認approval下需人工批准;也可在聊天裏用/memory save <file.md>等子命令維護。 - 查看健康狀態:
/memory doctor或 CLI 的node tools/mem.mjs doctor。
常用 CLI 入口(共 24 個子命令):
node tools/mem.mjs search "關鍵詞" --two-stage
node tools/mem.mjs show <name>
node tools/mem.mjs write-mode approval
適用場景與注意¶
適合誰: 希望用可 diff、可 git 管理的 Markdown 錯題本,在 DSH 多會話間複用已驗證教訓的開發者;不需要向量庫或額外服務的個人或小團隊場景。
使用前請知悉:
- 插件在 當前 dsh 進程權限下運行,會讀寫工作區下的
.memory/等路徑;安裝前應閱讀源碼與 MIT 許可證,自行評估密鑰/PII 掃描是否滿足你的合規要求。 - 社區目錄 SkillHub 插件頁 是獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,目錄頁便於發現,不等同於官方應用商店。
- CJK 會話全文檢索受上游 FTS 分詞限制,短詞可能不穩定;教訓本檢索不受影響(路線圖中有後續改進說明)。
mem_save在審批策略爲never時會被拒絕,需改用/memory save等人工路徑。
結尾¶
cross-session-memory 用磁盤上的結構化教訓、證據強制寫入和 ≤2KB 自動注入,在「重型記憶平臺」和「完全失憶」之間取了一條偏工程化的中間路線:數據可讀、可審計、失敗可降級。若你要在 DSH 裏落地跨會話錯題本,可從社區目錄瞭解概況,並以 GitHub 倉庫的 plugin/README.md 與中文 README.zh-CN.md 完成安裝與驗收。
- 目錄頁:https://www.skillhub.cn/plugins/GIN0076/cross-session-memory
- GitHub:https://github.com/GIN0076/cross-session-memory