Back to home@Bionic-forest

dsh-memory_rollout

No description

Stars
0
Language
JavaScript
Created
Aug 27, 2026
Updated
Sep 1, 2026
GitHub repo

Introduction

dsh-memory_rollout

为 DeepSeek Harness (DSH) 提供的 Codex 式会话持久记忆。 English README

早期版本(0.1.x),48/48 测试通过、已进入候选观察期,欢迎反馈。

解决什么问题

DSH 的每个会话都从零开始。你开一个新会话,Agent 不知道上一轮定了什么、你偏好什么、踩过哪些坑。dsh-memory_rollout 给 Agent 一份有组织、只在必要时才写的持久记忆:事实、偏好、决策、项目笔记能跨会话活下来,并在需要时被想起、给出来源。

项目功能

  • 一会话一草稿 — 每个符合资格的会话由 Stage 1 生成或追加证据草稿(rollout_summaries/<sessionId>.md,类似子 AGENTS.md);Agent 也可在压缩前显式保存关键要点。
  • 分层披露memory_summary.md(注入提示)→ MEMORY.md(可搜索注册表)→ 少量相关草稿 / 笔记。grep 友好,不做全量扫描。
  • 克制被动 — 自动生成只处理符合资格的会话;手动新增、修改或遗忘长期记忆,仅在用户显式请求时执行;快速记忆通道(≤4–6 步)决定何时查记忆,不淹没上下文。
  • 幂等整合 — 指纹 + 水印,无变化则不重复整合(不浪费 token)。
  • 6 个用户工具memory_remember / memory_recall / memory_forget / memory_note / memory_integrate / memory_precompact,另有 2 个 memory__* 内部调度工具。
  • 浏览器管理页 — 「记忆库 / Memory」页浏览摘要、注册表、草稿、笔记,可改配置、导入导出记忆。

管线基本描述

会话结束/闲置 → 持久入队 (Stage 1)
  → 提炼候选记忆 + append-only 证据(草稿 + source_ref)
  → Phase 2 全局整合 + 版本化发布(current 原子切换 / 旧版可回退)
  → 分层读取(总纲 → 注册表 → 少量草稿/证据)
  → remember / forget / supersede 进入统一变更流,再整合成权威版本

约束:无信号会话不产出脏记忆;失败不伪装成成功;秘密在入口 / 模型 / 落盘三处脱敏;引用指向真实内容,否则诚实 unverified;当前用户指令与 AGENTS.md 高于记忆。

安装

dsh plugin --profile web add dsh-memory_rollout

dsh.bundle manifest 会自动把本插件挂进 profile。手动安装:

pnpm add dsh-memory_rollout

再在 profile 的 cordis.yml(或 cordis.patch.yml)加一行:

- id: dsh-memory_rollout
  name: dsh-memory_rollout

要求 DSH 基座 0.1.1-rc.2 或更新(peerDependencies 声明 ^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="要留的关键要点")          # → 压缩前防丢信息(草稿 + 持久队列)

当涉及先前会话时,Agent 跑一次快速记忆通道:扫注入总纲 → 搜 MEMORY.md → 打开 1–2 个相关草稿 → 无命中即停。memory_recall(query="…") 是显式搜索入口。

配置

插件暴露一个 schemastery 配置 schema。完整参数表:

KeyTypeDefaultMeaning
recallLimitint10memory_recall 最多返回条目数
summaryTokensint4000注入 memory_summary.md 的 token 预算
maxQuickStepsint5快速记忆通道搜索步数预算
memoryRootstring''覆盖记忆根;空 = <ds_home>/memories
generateMemoriesbooleantrue会话是否贡献未来记忆(自动 Stage 1);false = 不自动入队
useMemoriesbooleantrue是否给模型记忆(注入 + 召回)
maxModelAttemptsPerDaynumber24每日 Stage 1 模型尝试上限;失败也算
extractProvider / extractModel / extractReasoningEffort / maxExtractTokensStage 1 提取的 LLM 路由 / 模型 / 推理档位 / 输入 token 上限
consolidationProvider / consolidationModel / consolidationReasoningEffortPhase 2 整合的 LLM 路由 / 模型 / 推理档位

设置页可在运行时编辑,改动持久化到 <ds_home>/dsh-memory_rollout.settings.json,下次启动重新应用(优先于 cordis.patch.yml)。memoryRoot 只读。

参考

本插件的记忆模型与 LLM 提炼提示词改编自 openai/codex 的记忆系统(Apache License 2.0)——面向 DeepSeek Harness 的独立重实现,未逐字分发其源码。同时改编自 flymysql/dsh-memory(MIT),即本插件脱胎的原始「跨会话记忆库」。详见 NOTICE 的署名。

协议

MIT(见 LICENSE)。