前言¶
在 DeepSeek Harness(DSH)里用 dsh-memory-evolve 做记忆入库时,审查、五轨、合并规则通常已经到位;难点往往在入库之后:条数和体积慢慢涨过预算、该不该整理全靠人记、整理方案在会话里即兴生成、改错了又难回滚。下面介绍社区插件 dsh-memory-steward(记忆管家):它不替代上游存储,而是在只读观测记忆文件的前提下,通过预算提醒、到期 nudge、待审批队列和带备份执行,把「入库之后」半程补全。维护者为 rezon-aki,分类为工作流。
README 顶部注明:作者已转向文档管理路线(dsh-doc-kit),记忆插件路线标记为放弃使用;若你仍运行 memory-evolve 栈,本文描述的是当前仓库能力与安装方式,事实以 GitHub 文档为准。
这是什么¶
dsh-memory-steward 是 dsh-memory-evolve 的伴生治理层:单独安装没有实际意义,记忆的存储与单写者始终是上游;本插件零代码耦合,只依赖上游 4 条官方路由(memory/delete|update|archive、memory-files)与 6 个记忆文件路径,写入一律回调上游官方 HTTP API,不直接改记忆文件。
闭环大致为:预算看门狗 → 整理到期提醒 → 模型出方案 → 在 Web「整理审批」Tab 审批 → 执行前整份备份。
它解决什么问题¶
| 现象 | 管家侧行为 |
|---|---|
| 记忆超预算无人告知 | 三轨条数/字节对照预算(固定阈值,或设基准后按倍率);仅在超预算时往 systemPrompt 注入一行 |
| 「该整理了」靠人想 | 超预算或归档超量,且距上次整理够天数、无待审项时,提醒里给出本轮建议(轻量模式可先 archiveCheck 再 deep,省 token) |
| 整理方案随会话消散 | memory_propose 进入待审批队列:Tab 红点、勾选/批量采纳/拒绝/恢复待审 |
| 改错难回滚 | 执行前备份 6 个记忆文件;失败可断点续跑(已成功 op 不重放) |
| 队列与轮询 payload 膨胀 | 队列只留 pending + 最近 N 条已结项;正文主要在队列与 backups/;另有只追加事件日志(约 200 B/行,含摘要与失败原因,不含正文) |
README 给出本机 13 条历史下的实测:proposals.json 由 147,788 B 降至 13,855 B;Tab 每 15s 轮询的列表接口由 138,849 B 降至 5,934 B。
核心功能¶
Web「整理审批」Tab¶
重启 dsh web 后会话视图多出「整理审批」Tab;有待审时标题带计数提示。Tab 内主要包括:
- 库存与预算:三轨条数/字节 vs 预算、最老条目、到期状态
- 待审批列表:展开「查看详细」时按需拉取完整 ops(原记忆 → 修改后)
- 历史:保留策略、单条删除、清空历史、清理事件日志(带 confirm)
- 整理开销:最近 N 轮约 tokens(盘点输入 + 提案输出),超目标标红
- 配置区:自动检查、注入提醒、轻量模式、整理间隔、归档阈值、预算倍率、审计保留、历史保留、自动采纳等
三个 Agent 工具¶
| 工具 | 用途 |
|---|---|
memory_audit |
库存/预算/候选簇/归档预筛/条目清单;deep 跑上游扫描器;archiveCheck 做归档预筛;track:'all' 一次拉全量 |
memory_propose |
提交提案(单条或 proposals 数组,批量 ≤20):archive / remove / replace / purge;match 用唯一子串,执行时会再解析一次 |
memory_sweep_status |
到期查询(check)与计时复位(complete) |
HTTP API(同一 webServer)¶
带 Host/Origin 围栏。常用路由包括:GET /api/status、GET /api/proposals(轻量列表)与 GET /api/proposals/:id(完整 ops)、POST /api/proposals/{approve,reject,restore,purge}、POST /api/propose、POST /api/scan、POST /api/config、POST /api/baseline、GET /api/rounds、GET /api/selfcheck、POST /api/history/clear 等。细节见仓库 README。
安全与成本¶
- 执行锁:每条提案同时只跑一次,避免重复提交。
- 提案期校验:
replace新正文不能为空、不能含条目分隔符§。 - 一键自检:
node scripts/selfcheck.mjs(缺上游时报 FAIL,不静默失灵)。 - 插件本身不调 LLM;整理开销由会话模型产生,README 给出常规轮次目标 ≤2K tokens(大重构可能 10K+),与
/api/rounds、Tab「整理开销」同口径。
安装与启用¶
前置:先安装记忆的存储与单写者插件,再装管家。官方命令如下:
# 1. 先装伴生插件(记忆的存储与单写者)
dsh plugin --profile web add github:csyangwen/dsh-memory-evolve
# 2. 再装管家
dsh plugin --profile web add github:rezon-aki/dsh-memory-steward
# 发布到 npm 之后也可以:dsh plugin --profile web add dsh-memory-steward
重启 dsh web 即生效;cordis.patch.yml 由 bundle 清单自动注册,不要再手动 insert 同 id。
运行环境:package.json 要求 Node ≥ 20;插件声明 DSH 引擎 >=0.1.5-rc.1。当前包版本为 0.1.1,许可证 MIT(测试徽章:33 passed)。
典型用法¶
1. 让模型先盘点再提案¶
提醒或人工发起整理时,可按 README 建议的轻量路径:
- 调用
memory_audit,必要时archiveCheck再deep,控制输入规模。 - 对确定操作调用
memory_propose提交 archive/remove/replace/purge。 - 在 Tab 中审批;采纳后由管家经上游 API 执行,并保留备份。
2. Tab 或 API 改配置¶
配置落盘在 <memoryDir>/steward/config.json(默认 ~/.dsh/memories/steward/config.json)。Tab 修改即可;也可用 POST /api/config、POST /api/baseline 设预算基准。
常用键(默认值见 README):
| 键 | 默认 | 说明 |
|---|---|---|
autoCheck |
true | 12h 定时 + 回合末刷新库存 |
nudge |
true | 超预算/到期时注入一行提醒 |
lightMode |
true | 提醒里优先 archiveCheck + deep |
sweepIntervalDays |
7 | 距上次整理多少天再提醒 |
archiveMaxEntries |
30 | 归档轨条数阈值 |
budgetRatio |
1.5 | 有基准时:预算 = max(固定阈值, ⌈基准 × 该值⌉) |
autoApprove |
off | off / deterministic / all |
baseline |
null | 预算基准快照 |
纯手动模式:Tab 一键或设 autoCheck:false + nudge:false,此后主要靠工具/API 刷新与产提案。
3. 配套补丁:区分「事实」与「整理工单」¶
上游有两处可能把整理意图写成记忆条目并长期占预算。仓库提供 patches/dsh-018-memory-facts-vs-tickets-patch.mjs,只改文案、幂等;升级 memory-evolve 后可能需重打。人类本地执行示例(需已有 steward 源码目录):
node patches/dsh-018-memory-facts-vs-tickets-patch.mjs # 默认 web profile
node patches/dsh-018-memory-facts-vs-tickets-patch.mjs web-test # 指定 profile
期望输出「已打补丁 2 个文件 / 6 处」或「无需打补丁(契约已在)」;完成后重启 dsh web。README 亦给出让 agent 按步骤 grep、取补丁、核对「不是事实」文案的指引。
适用场景与注意¶
适合谁:已在 DSH Web profile 使用 dsh-memory-evolve,希望有人帮你看预算、到期整理、提案审批与可回滚执行,且接受「模型在会话里判读、插件只治理与回调 API」的分工。
务必注意:
- 插件以当前 dsh 进程权限运行;安装前请自行查看源码与 MIT 许可证,并理解其只读本地记忆、写操作走 HTTP 的边界。
- 社区目录 skillhub.cn 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」。
- 作者 README 已声明记忆插件路线弃用、转向 dsh-doc-kit;新立项可先评估文档路线,再决定是否投入 memory-evolve + steward 组合。
- 仓库 README 写明:禁止在未核对上游文本的情况下强行打补丁;补丁「无匹配文本」说明上游已改句。
结尾¶
dsh-memory-steward 把 memory-evolve 擅长的「入库」和入库后的「预算、提醒、审批、备份执行」接在一起,且坚持单写者与官方 API 契约。进一步了解可访问社区目录页与 GitHub 仓库:
- 目录页:https://www.skillhub.cn/plugins/rezon-aki/dsh-memory-steward
- GitHub:https://github.com/rezon-aki/dsh-memory-steward
设计细节见仓库 docs/ARCHITECTURE.md,人机验收见 TESTING.md。