dsh-agent-memory
Cross-session long-term memory for DeepSeek Harness: a schema-validated memory domain over ctx.storage plus model-facing remember/recall/index/forget tools and a memory protocol prompt section.
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗dsh-agent-memory
DeepSeek Harness(DSH)的跨会话长期记忆插件。
功能
跨会话记住事实、偏好、决策和教训,新会话开局就能用上之前会话积累的信息。数据存在 $DSH_HOME/storages/memory.json(纯 JSON,可直接查看、可进 git)。不需要 MCP 服务器、不需要向量库、不需要 embedding API、无额外运行时依赖。
特性
- 跨会话持久:A 会话写入,B 会话开局即可检索到,新会话接着旧项目的状态走。
- 按需注入相关记忆:每轮模型执行前,插件根据你当前说的话自动检索最相关的记忆(通过 DSH 的
agent/pre-stephook),注入最多injectCount条短摘要(默认 3)。你说"继续做数学教辅"→ 教辅项目的决策和踩坑自动出现。不再每轮广播固定热集——只在相关时付费。 - 自我纠错闭环:同一错误(相同 code/消息)重复出现
lessonizeAfter次(默认 2)时,插件提示 agent 把它固化为 importance=3 的教训;教训入库后会在相关话题上自动注入,防止再犯。用户纠正则由记忆协议覆盖(当场固化)。 - 中文友好检索:中文按 bigram(双字)索引 + 单字兜底,英文按词,另加整串匹配。不需要分词库或任何 ML 依赖。
- 原生接入:复用 DSH 的存储 domain(
ctx.storageDomain)、工具注册和 agent 生命周期 hook,跟随官方版本保持兼容。
工具
| 工具 | 用途 |
|---|---|
memory_remember | 写入一条持久记忆(content、kind、tags、scope、importance、可选 TTL)。 |
memory_recall | 按关键词检索;按相关性、重要性、新鲜度、历史使用频率排序。 |
memory_index | 浏览记忆清单,支持 kind/tag/scope 过滤、分页、标题级展示。 |
memory_forget | 按 id 或 tags 删除;importance=3 记录需 confirm: true。 |
memory_import | 从 JSONL/JSON 文件导入记忆,走写链(不直接改存储文件)——安全的批量导入方式。 |
memory_reload | 外部修改存储文件后,从磁盘重开并合并,无需重启。 |
分类:fact | preference | decision | lesson | todo | note。范围:user(所有项目生效)或 project(仅当前项目)。
外部修改防护
存储文件在启动时加载一次,由运行中的进程整体写入(单写者模型)。为防止进程内写入静默抹掉外部改动:
- 每次写入先校验文件指纹,不一致(其他进程/脚本改过)拒绝写入并报清晰错误,而不是覆盖;
- 批量导入请用
memory_import(走写链,文件与内存保持同步); - 如果仍然手动改了
memory.json或拷入文件,调用memory_reload合并(或重启)。