remvu:为编码智能体保存可携带的项目记忆

前言

在 DeepSeek Harness(DSH)或多客户端混用 Claude Code、Codex 时,常见痛点是:会话触顶、换模型或换工具后,目标、约束、已否决方案和未完成的检查证据难以完整交接。手写 HANDOFF 笔记可以应急,但结构化程度、代码指纹与并发更新往往靠自觉维护。

remvu(DSH 侧包名 dsh-remvu)由维护者 caotaiyi 开源,归类为「记忆」类插件。它用独立运行时把项目记忆落在本地 .remvu/,支持显式 save/resume、可选的可观测记录与代码指纹,并为 DSH 0.2.1-rc.2 提供五个原生工具。社区目录页见 SkillHub:caotaiyi/remvu;源码与文档在 GitHub:caotaiyi/remvu(当前资料中 GitHub 星标为 1)。

这是什么

一句话:Portable project memory for coding agents——面向编码智能体的可携带项目记忆;独立运行时、可观测记录、代码指纹,并适配 Claude Code、Codex 与 DeepSeek Harness。

完整独立应用自带运行时,用户无需单独安装 Python。新装默认不挂 hooks;是否开启记录是单独选择。指纹、CAS 保护与恢复在手动模式下仍可用。resume 先读短预览,细节按需拉取。

核心功能

记忆内容与可信度

记忆条目区分 user_confirmed、observed、inferred、unverified。被否决的决策与 superseded 历史会保留。检查结果绑定当时实测的代码指纹;后续改代码会使旧检查变为历史记录。并发提案不能静默覆盖更新的记忆。

私有记忆与详细证据在被忽略的 .remvu/ 中。仅在显式分享时生成公开的 REMVU.md,并做公开内联证据与 patch 审查;隐藏推理、凭证与无关对话会被排除。

DSH 适配层

dsh-remvu 与同一套独立引擎和 .remvu/ 状态对接,向 DSH 0.2.1-rc.2 增加五个工具:remvu_save、remvu_resume、remvu_check、remvu_events、remvu_show,以及可选的本地可观测事件记录。JavaScript 包无需编译或安装期构建脚本。

记录与自动上下文注入默认关闭;save/resume 安装后即可使用。上下文在每个 session/compaction 窗口注入一次,而非每次工具结果后都注入。

与其他客户端的对应动作

日常操作 Claude Code Codex
保存私有交接 /remvu save $remvu save
新会话继续 /remvu resume $remvu resume

save 会请当前智能体整理已审查证据,并导出 .remvu/handoff/REMVU.md;无 proposal 的直接调用则导出既有状态、保留 pending 证据。不上传、不自动 commit。resume 在继续前核对已保存的代码状态;接收方也可在不安装 Remvu 的情况下阅读 handoff 与代码。

安装与启用

安装须基于你审查过的下载与 Remvu 源码检出;保留独立应用目录完整。下文 REMVU 表示该应用的绝对路径可执行文件(或安装返回的稳定可执行文件),不是 Python 脚本。

插件以当前 DSH 进程权限访问本地项目;安装前请阅读源码与 MIT 许可证。仅声称支持本地项目,不宣称云盘或远程文件系统。

1、为项目安装完整 Remvu 应用。仅 DSH 时可选 --platform none;若同一项目还用 Claude Code/Codex,可选 both。

REMVU install --repo PROJECT --platform none

2、在已有 DSH profile 中,添加经审查的固定提交:

dsh plugin --profile YOUR_PROFILE add github:caotaiyi/remvu#REVIEWED_COMMIT_SHA

将 REVIEWED_COMMIT_SHA 换为你实测过的完整提交 SHA。仓库根目录声明可安装的 DSH bundle 并自带 JavaScript,不运行构建脚本。离线或本地使用时,可将 GitHub 规格换为审查过的检出绝对路径,或其 adapters/dsh 目录。

若新建 Web profile,须在添加插件之前仅创建一次:

dsh --profile remvu --from-default-profile web --dump-config

不要用 --from-default-profile 重置已有用户 profile;之后可将 YOUR_PROFILE 设为 remvu。

3、用已安装的稳定可执行文件生成私有 overlay,避免移动下载目录后路径失效:

REMVU dsh-config --repo PROJECT
dsh --profile YOUR_PROFILE --patch PROJECT/.remvu/dsh.patch.yml

overlay 记录精确可执行文件与项目路径,启动 DSH 前请审查。目标已存在时会拒绝写入;更新安装后保留旧 overlay,用 --out 生成新文件名。也可选 dsh-config --recording on 开启记录,或用 --recording off 生成新 overlay 后重启 profile 关闭记录,既有私有状态不受影响。

package.json 要求 Node >=22、DSH 0.2.1-rc.2;当前插件版本为 0.3.0-beta.3(测试候选,生产发布与完整原生客户端矩阵仍待验收)。

典型用法

跨客户端 30 秒交接(README 工作流)

1、在 Claude Code 中执行 /remvu save。
2、在 Codex 中打开同一项目,执行 $remvu resume。
3、查看下一步、过期检查、pending 证据或冲突,再继续编码。

这是文档描述的工作流,并非承诺实测耗时。

在 DSH 中 save / resume

切换智能体前,可要求「Remvu save」。智能体应查看 remvu_resume、remvu_events 及相关的 remvu_show 结果,起草经审查的 proposal,再调用 remvu_save。可选 proposal 为 JSON 字符串,含 base_revision、实际审查的 base_event_count 与类型化 entries。无 proposal 时导出既有状态并保留 pending 观察。

要求「Remvu resume」时加载已保存上下文并检查代码是否仍新鲜。接收方也可直接阅读私有 handoff 或显式分享的 REMVU.md,无需安装本插件;公开分享仍须通过独立应用的 share 及既有隐私检查。

未宣称注册斜杠命令;工具通过 DSH 原生 defineTool 注册。失败会保留为失败;工具传输成功 alone 不会变成项目检查通过。

适用场景与注意

适合:本地单仓项目、需要在 DSH 与 Claude Code/Codex 之间交接背景、希望结构化记忆与代码指纹、并愿意显式 save 的团队或个人。

边界与限制(摘自 DSH 适配文档):

  • 仅本地项目;配置项目外的 session、嵌套仓库与 worktree 排除;符号链接的适配器路径会被拒绝。
  • Plan/read-only 模式推迟写入;workspace-write 要求记忆根落在宿主解析的可写工作区内。插件是受信任宿主代码,不绕过 DSH 授权;若部署需要显式只读,请在插件配置中保持 readOnly: true。
  • 观察按序排队且有界 backlog;进程异常退出仍可能丢失队列中的工作,不能从干净退出推断完整语义记录。
  • 适配层针对 DSH 0.2.1-rc.2 预发布 API;升级 DSH 须重新验证。
  • 官方文档记载:插件经 dsh plugin add 流程安装并在隔离 SDK profile 中加载(无模型请求);模型驱动的 handoff 与 GUI 验收为待办项。

卸载插件层:dsh plugin --profile YOUR_PROFILE remove dsh-remvu,保留 .remvu/,并从启动命令中移除多余的 --patch 参数。

结尾

remvu 把目标、约束、证据与 handoff 收进可审查的本地状态,让 DSH 与多客户端协作时少丢上下文。目录与版本信息:SkillHub 插件页;安装细节与开放格式:GitHub 仓库,DSH 专章见 adapters/dsh/README.md。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜