Bundle
dsh-memory_rollout
Codex-style per-session memory draft for DeepSeek Harness: one session one draft (rollout_summaries), restrained & passive (write only on explicit user request), layered disclosure (summary + registry), idempotent integration watermark. / 一会话一草稿记忆插件。
- Source
- Bionic-forest
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-memory_rollout > 为 DeepSeek Harness (DSH) 提供的 Codex 式会话持久记忆。 > [English README](./README.en.md) > 早期版本(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` 高于记忆。 ## 安装 ```bash dsh plugin --profile web add dsh-memory_rollout ``` `dsh.bundle` manifest 会自动把本插件挂进 profile。手动安装: ```bash pnpm add dsh-memory_rollout ``` 再在 profile 的 `cordis.yml`(或 `cordis.patch.yml`)加一行: ```yaml - 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 记住事情,或自己写: ```text 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。完整参数表: | Key | Type | Default | Meaning | | --- | --- | --- | --- | | `recallLimit` | int | 10 | `memory_recall` 最多返回条目数 | | `summaryTokens` | int | 4000 | 注入 `memory_summary.md` 的 token 预算 | | `maxQuickSteps` | int | 5 | 快速记忆通道搜索步数预算 | | `memoryRoot` | string | `''` | 覆盖记忆根;空 = `<ds_home>/memories` | | `generateMemories` | boolean | `true` | 会话是否贡献未来记忆(自动 Stage 1);false = 不自动入队 | | `useMemories` | boolean | `true` | 是否给模型记忆(注入 + 召回) | | `maxModelAttemptsPerDay` | number | 24 | 每日 Stage 1 模型尝试上限;失败也算 | | `extractProvider` / `extractModel` / `extractReasoningEffort` / `maxExtractTokens` | | | Stage 1 提取的 LLM 路由 / 模型 / 推理档位 / 输入 token 上限 | | `consolidationProvider` / `consolidationModel` / `consolidationReasoningEffort` | | | Phase 2 整合的 LLM 路由 / 模型 / 推理档位 | 设置页可在运行时编辑,改动持久化到 `<ds_home>/dsh-memory_rollout.settings.json`,下次启动重新应用(优先于 `cordis.patch.yml`)。`memoryRoot` 只读。 ## 参考 本插件的记忆模型与 LLM 提炼提示词**改编自** [openai/codex](https://github.com/openai/codex) 的记忆系统(Apache License 2.0)——面向 DeepSeek Harness 的独立重实现,未逐字分发其源码。同时改编自 `flymysql/dsh-memory`(MIT),即本插件脱胎的原始「跨会话记忆库」。详见 `NOTICE` 的署名。 ## 协议 MIT(见 `LICENSE`)。
Install
dsh plugin --profile web add github:Bionic-forest/dsh-memory_rollout#1c036d8005a7083675875d23a833208a5b648891
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-memory-rollout from the hub