返回目录
Agent 与会话 插件

dsh-memory_rollout

Bionic-forest/dsh-memory_rollout

该仓库暂未提供项目说明。

Stars
2
Forks
0
Issues
0
更新
6 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:Bionic-forest/dsh-memory_rollout

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

dsh-memory_rollout

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

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

解决什么问题

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 高于记忆。

安装

版本 0.1.9。npm registry 尚未正式发布(dsh plugin add dsh-memory_rollout 需要包先被发布到 registry),因此「可兑现」的安装路径是 GitHub 仓库 / 本地 tgz。

方式 A:GitHub / 本地 tgz(已兑现,推荐)

# 直接从仓库装(开发/自用)
git clone git@github.com:Bionic-forest/dsh-memory_rollout.git
pnpm add ./dsh-memory_rollout

# 或用 `npm pack` 生成的 tgz 装
pnpm add ./dsh-memory_rollout-0.1.9.tgz

方式 B:npm registry(未发布,暂不可用)

# 需先把包发布到 npm registry 后此命令才可兑现
dsh plugin --profile web add dsh-memory_rollout
pnpm add dsh-memory_rollout

dsh.bundle manifest 会自动把本插件挂进 profile。手动安装(任一种方式之后)在 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。完整参数表:

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 的记忆系统(Apache License 2.0)——面向 DeepSeek Harness 的独立重实现,未逐字分发其源码。同时改编自 flymysql/dsh-memory(MIT),即本插件脱胎的原始「跨会话记忆库」。详见 NOTICE 的署名。

协议

MIT(见 LICENSE)。

设置文件 / Settings file

  • 位置:/dsh-memory_rollout.settings.json(不在 memories/ 里 ⇒ 导出/导入不会带上它)。
  • 格式:{ "version": 1, "savedAt": "", "values": { …仅设置页可编辑的字段… } }。旧版裸对象格式仍可正常加载(向后兼容)。
  • 优先级:settings.json(设置页写的运行时 overlay)优先于 cordis.patch.yml。因此若你在 patch.yml 里手工写过同名值,重启后那些值会重新生效 —— 「恢复默认」只清 overlay,不改宿主层的 patch.yml。
  • 一键还原:「恢复默认」先把 overlay 备份为 dsh-memory_rollout.settings.json.pre-reset(同族只留最新 1),再删除 overlay,让代码 schema 的默认值重新生效(本会话即时生效、重启后同样生效)。删不掉时接口如实返回失败,不假装成功。

The settings page writes this overlay, which takes precedence over cordis.patch.yml. "Restore defaults" backs it up to …settings.json.pre-reset and deletes it so the schema defaults apply again; it never touches your patch.yml.

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类Agent 与会话
规则置信度高

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: memory、memory-management。