前言¶
DeepSeek Harness (DSH) 的插件化架构为扩展提供了空间,但每个会话默认是隔离的。当你开启一个新会话,Agent 无法获取上一轮确定的偏好、踩过的坑或项目背景。dsh-memory_rollout 旨在解决这一记忆断层,它为 Agent 提供一份有组织、仅在必要时才写入的持久记忆,包含事实、偏好、决策和项目笔记。
核心功能¶
该插件实现了 Codex 式的记忆系统,主要包含以下能力:
- 一会话一草稿:每个符合资格的会话会生成或追加证据草稿(
rollout_summaries/<sessionId>.md),类似子AGENTS.md。Agent 也可以在压缩前显式保存关键要点。 - 分层披露:记忆通过三个层级披露。顶层是注入提示的
memory_summary.md,中间是可搜索的MEMORY.md注册表,底层是少量的相关草稿或笔记。这种设计便于搜索且不淹没上下文。 - 克制被动:记忆生成是自动的,但仅处理符合资格的会话。手动新增、修改或遗忘长期记忆,仅限于用户显式请求时执行。快速记忆通道(约 5 步)决定何时查记忆。
- 幂等整合:通过指纹和水印技术,确保无变化时不重复整合,避免浪费 token。
- 6 个用户工具:提供了
memory_remember、memory_note、memory_integrate、memory_precompact、memory_recall和memory_forget等工具,另有 2 个内部调度工具。 - 浏览器管理页:提供「记忆库 / Memory」页面,允许浏览摘要、注册表、草稿和笔记,支持配置修改、导入和导出。
管线与机制¶
插件的工作流如下:
- 会话结束或闲置后,进入持久入队阶段(Stage 1)。
- 提炼候选记忆,并生成或追加仅追加式的证据(草稿 + source_ref)。
- Phase 2 进行全局整合,将证据版本化发布(
current原子切换,旧版可回退)。 - 分层读取:先读总纲,再搜注册表,最后打开少量相关草稿/证据。
- 用户通过
remember/forget/supersede命令进入统一变更流,再整合成权威版本。
安装与启用¶
当前 npm registry 尚未正式发布(尽管 package.json 显示 0.1.27,README 提及 0.1.9),因此推荐通过 GitHub 仓库或本地 tgz 安装。
git clone git@github.com:Bionic-forest/dsh-memory_rollout.git
pnpm add ./dsh-memory_rollout
dsh plugin --profile web add dsh-memory_rollout
安装后,需在 profile 的 cordis.yml(或 cordis.patch.yml)中添加配置:
- id: dsh-memory_rollout
name: dsh-memory_rollout
依赖要求:
* DeepSeek Harness 基座版本需在 0.1.1-rc.2 或更新。
* 必须挂载 sessionQuery 服务(由 DSH 基座提供),否则自动记忆(Stage 1 来源读取)将被禁用。
使用¶
插件提供了一系列工具供 Agent 或用户调用:
memory_remember(content="用户偏好…", tags=["pref"]) # 记入长期记忆,带来源 sessionId
memory_note(slug="fix-x", content="…") # 写入临时 note,仅显式请求时执行
memory_integrate() # 幂等整合 summary 和 MEMORY.md
memory_precompact(content="要留的关键要点") # 压缩前保存信息到草稿和持久队列
memory_recall(query="…") # 显式搜索记忆入口
配置¶
插件暴露了完整的配置 schema,可在浏览器管理页或配置文件中调整。主要配置项如下:
| Key | Type | Default | Meaning |
|---|---|---|---|
recallLimit |
int | 10 | memory_recall 最多返回条目数 |
summaryTokens |
int | 4000 | 注入 memory_summary.md 的 token 预算 |
maxQuickSteps |
int | 5 | 快速记忆通道搜索步数预算 |
memoryRoot |
string | '' |
覆盖记忆根目录(只读) |
generateMemories |
boolean | true |
会话是否贡献未来记忆(自动 Stage 1) |
useMemories |
boolean | true |
是否给模型注入记忆 |
maxModelAttemptsPerDay |
number | 24 | 每日 Stage 1 模型尝试上限 |
extractProvider / extractModel / extractReasoningEffort / maxExtractTokens |
Stage 1 提取的 LLM 路由、模型、推理档位、token 上限 | ||
consolidationProvider / consolidationModel / consolidationReasoningEffort |
Phase 2 整合的 LLM 路由、模型、推理档位 |
注意事项¶
- 权限与安全:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 秘密脱敏:插件在入口、模型调用、落盘三个环节对秘密进行脱敏处理。
- 优先级:当前用户指令高于
AGENTS.md。 - 引用诚实性:引用指向真实内容,否则标记为
unverified。
生态背景¶
DeepSeek Harness 理念是「一切皆插件」,本插件由社区开发者维护。插件记忆模型改编自 openai/codex(Apache License 2.0)和 flymysql/dsh-memory(MIT),详见 NOTICE 署名。