dsh-memory
by yan5236
DeepSeek Harness(DSH)两阶段长期记忆插件:会话提取+全局巩固,始终注入摘要,以及memory_list/read/search/add工具。
Two-phase long-term memory plugin for DeepSeek Harness (DSH): per-session extraction + global consolidation, always-injected summary, and memory_list/read/search/add tools.
安装
dsh plugin --profile web add github:yan5236/dsh-memoryGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
为什么需要长期记忆
每次新会话都从零开始,用户要反复重申偏好与约定,助手要重新踩一遍已经踩过的坑。
dsh-memory 在会话结束后自动把值得沉淀的内容提取出来,定期整合成一份高密度导航摘要
(常驻注入每次会话)和一份可 grep 的检索手册,让未来的会话:
少听重复的偏好说明、少走弯路、复用被验证过的工作流、避开已知的坑。
设计参考了 Codex 记忆系统(两阶段提取/整合、三级制品结构、任务租约、冷却、脱敏), 并针对 DSH 重新组合:不需要 SQLite、不需要 git 基线、不需要常驻整合子代理。
功能特性
- 🧠 Phase 1 逐会话提取:会话结束后(防抖,默认 3 分钟)读取会话日志,过滤渲染 →
脱敏 → 交给模型提取结构化记忆(
raw_memory+rollout_summary+slug); 无价值的会话输出空结果自动跳过(no-op 门槛)。 - 🧩 Phase 2 全局整合:按冷却周期(默认 6 小时)把新记忆合并进
MEMORY.md(检索手册)与memory_summary.md(首行v1协议的高密度导航摘要); 原始记忆归档轮转,永不重复整合。 - 📥 摘要常驻注入:
memory_summary.md内容(有硬上限保护)随 system prompt 注入 每次会话,模型无需任何操作就能看到导航索引。 - 🔍 四个记忆工具:
memory_list/memory_read/memory_search/memory_add(仅在用户明确要求时写入),模型按需检索细节。 - 🔒 安全纪律:会话内容一律按数据分析(prompt 注入免疫);密钥/令牌/私钥在 输入与输出两侧脱敏;记忆路径越界一律拒绝。
- 🔁 可靠调度:每个会话一个租约(KV 持久化),重启不重复处理、不重复整合; 失败带退避重试;孤儿租约自动回收。
- ⚙️ 设置页:设置 → 长期记忆 中查看统计、手动触发提取/整合、调整冷却与模型路由。
工作原理
会话结束 ──► Phase 1(逐会话)──► rollout_summaries/<slug>.md + raw_memories.md
│
(冷却到期 / 有新记忆)
▼
Phase 2(全局)
│
┌───────────────────────────┴───────────────────────────┐
▼ ▼
memory_summary.md(常驻注入每次会话) MEMORY.md(memory_search / memory_read 检索)
安装
[!NOTE] 使用前请确保已安装 DeepSeek Harness。
包名说明:
@nanmicoder/dsh-memory是包标识(@nanmicoder是 npm 作用域形式,dsh-memory是包名)。本插件通过 GitHub 分发(不发布 npm),安装方式如下:
dsh plugin --profile web add 'git+https://github.com/yan5236/dsh-memory.git#main'
检查组合配置并启动:
dsh --profile web --dump-config
dsh web
打开 设置 → 长期记忆 查看状态;记忆文件默认写入 $DSH_HOME/memories/。
[!TIP] 若
dump-config的组合树里没有- id: dsh-memory这一行,说明 profile 的dsh.profile.bundles数组里没有注册这个包(bundle 补丁层未应用),手动把"@nanmicoder/dsh-memory"加进该数组即可。
📋 一键提示词:让 DSH 自己装
不想手动敲命令?把下面这段整段复制,直接粘贴给 DSH,让它完成安装、注册与验证:
请帮我把 DSH 长期记忆插件 dsh-memory 安装到 web profile,GitHub 仓库:
https://github.com/yan5236/dsh-memory
要求:
1. 运行 dsh plugin --profile web add 'git+https://github.com/yan5236/dsh-memory.git#main'
2. 检查 $DSH_HOME/profiles/web/package.json:dependencies 里应含
"@nanmicoder/dsh-memory",且 dsh.profile.bundles 数组应包含
"@nanmicoder/dsh-memory"(缺少就补上;bundles 缺失会导致插件补丁层不生效)。
3. 运行 dsh --profile web --dump-config,确认输出中出现 "- id: dsh-memory"
且没有报错。
4. 重启 DSH:先停掉当前 dsh web 进程,再重新运行 dsh web。
5. 验证:设置页出现「长期记忆」;会话工具列表包含 memory_list / memory_read /
memory_search / memory_add。
6. 若任一步骤写入 DSH 配置目录($DSH_HOME/profiles)时被权限策略拦截,
提示用户切换到 Full access 或批准对应操作,不要绕过或静默失败。
配置
组合 config 提供基础层(cordis.patch.yml 中的 config: {} 使用全部默认值),
设置页可覆写常用项并持久化到 DSH 存储:
- id: dsh-memory
config:
memoryRoot: C:/path/to/memories # 默认 $DSH_HOME/memories
provider: deepseek-official # 可选:为记忆管道固定模型路由
model: deepseek-v4-flash # 与 provider 成对配置
consolidationCooldownMs: 21600000 # 整合冷却(默认 6 小时)
idleDebounceMs: 180000 # 轮末防抖(默认 3 分钟)
maxRolloutsPerRun: 3 # 每轮提取的会话数
maxSummaryChars: 8000 # 注入摘要的字符上限
| 配置项 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
memoryRoot |
$DSH_HOME/memories |
记忆根目录 |
provider / model |
空 | 空则使用部署默认模型 |
idleDebounceMs |
180000 |
会话轮末后的静默窗口 |
maxRolloutsPerRun |
3 |
每次运行提取的会话数 |
extractionConcurrency |
1 |
提取并发(默认串行,对模型提供方更温和) |
minSessionEvents |
4 |
事件过少的会话直接跳过 |
maxRolloutAgeDays |
30 |
超龄会话标记跳过 |
maxTranscriptChars |
60000 |
送入提取模型的会话文本上限 |
phase1MaxTokens |
4096 |
单次提取输出上限 |
consolidationCooldownMs |
21600000 |
整合冷却(失败后约 15 分钟自动重试,不受冷却限制) |
maxRawChars |
120000 |
单次整合的原始记忆输入上限 |
phase2MaxTokens |
12000 |
单次整合输出上限 |
maxSummaryChars |
8000 |
注入摘要的字符上限 |
retryLimit |
3 |
提取失败重试次数 |
记忆目录结构
<memoryRoot>/
├── memory_summary.md # 常驻注入的导航摘要(首行 v1)
├── MEMORY.md # 检索手册:偏好/流程/失败护盾
├── raw_memories.md # Phase 1 产出,等待整合
├── raw_memories.archive.md # 已整合原始记忆的历史归档
├── rollout_summaries/ # 每次会话的回顾(证据层)
├── skills/ # 整合沉淀出的可复用流程
└── extensions/ad_hoc/notes/ # memory_add 写入的用户要求笔记
开发
pnpm install
pnpm verify
git diff --check
设计文档与威胁模型见 DESIGN.md。
许可证
原始 README: https://github.com/yan5236/dsh-memory/blob/main/README_ZH.md ↗
同类插件
查看全部 →
mnemon
LLM监督持久内存插件 — 基于图的召回,跨会话知识,单二进制。与DeepSeek Harness、Claude Code、OpenClaw及任何代理运行时兼容。

memtrace-public
面向 AI 编码 agent 的结构化记忆:双时态图谱、MCP 原生、零 LLM 调用;支持 Cursor · Claude Code · Codex · DeepSeek Harness · Hermes · VS Code · Windsurf

dsh-flowix-memory
将本地 flowix-cli 注册为 MCP 服务,让 agent 可以搜索、读取、创建和编辑 Flowix 备忘与思维导图产物。

flowix
笔记助你,记忆助你的代理。

engramory
AI代理的便携式内存协议 — 以静态规则加载;整理学科 + 参考规范 + 可选的钩子API

dsh-memory-evolve
为 DeepSeek Harness 提供纯插件实现的跨会话长期记忆与后台自我进化能力:五轨记忆、Git 分支感知、回合内自我审查、技能自我进化与技能管理器、四轨待办、COI 调度、会话广播、会话搜索、提示词管理器和临时信息便签;零核心修改、零运行时依赖,安装即用,卸载即净。