前言¶
在 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