[ 中文快速上手 · memprove 0.1.0 ]
快速上手
memprove 是给 coding agent 用的记忆和任务状态层。agent 记录的每条 fact 都绑定到一个 commit、一个仓库状态和一次测试运行,由确定性的规则(不是模型)判断它现在是
verified、stale 还是 unconfirmed。记录保存在本地 daemon 维护的哈希链 ledger 里。新的会话(之后的同一个
agent、另一个 agent,或者一个人)读一份紧凑的 Context Pack:哪些仍然成立、哪些还没解决、下一步做什么;再按一条规则接手工作,这条规则说明什么时候可以结束别人留下的 Session。
它是一个 Rust workspace:memproved(daemon)、memprove(命令行客户端、Claude Code 的 SessionStart hook,以及一个有十个工具的
MCP server),还有它们共用的 crate。所有东西都在你的机器上通过 Unix socket 运行,没有数据离开你的机器。
memprove 的命令、输出和完整文档都是英文的,本页只翻译说明文字。Task、Session、fact、Evidence、Pack 这些词保留英文,因为命令和输出里就是这些词。英文原文:Quickstart。
1. 安装
支持 Apple 芯片的 macOS,以及 glibc 2.35 或更高版本的 Linux x86_64(比如 Ubuntu 22.04、Debian 12):
安装器从最新的 GitHub release 里挑出适合这台机器的发布包(aarch64-apple-darwin 或
x86_64-unknown-linux-gnu),发布包的 SHA-256 和它的 .sha256 文件对不上就停下,然后运行发布包自带的
scripts/install.sh --from-binaries bin:memprove 装进 ~/.memprove,daemon 随之启动。再运行一次就是升级,数据会先备份。选项写在
sh -s -- 后面:
两个配置文件选项都不加时,如果是在终端里运行,安装器会在修改配置文件之前问一次。Linux arm64 暂不支持;在没有发布包的平台上安装器会直接停下,这时请按 Install, upgrade and backup(英文)从源码构建。
手动安装
不用安装器,同样的步骤,版本 0.1.0:
macOS 的二进制没有经过公证:如果发布包是用浏览器下载的,先清除隔离标记(xattr -dr com.apple.quarantine memprove-0.1.0-aarch64-apple-darwin)。用
curl 下载的包(安装器就是这样下载的)没有这个标记。
安装器和手动安装都从 GitHub 下载。如果你的网络访问 GitHub 很慢,可以先用浏览器或代理下载发布包和它的 .sha256 文件(macOS:发布包、.sha256;Linux:发布包、.sha256),放进同一个目录,再从上面的
shasum 那一行接着做。
2. 在仓库里启用
在仓库的 Git 工作区里运行(仓库至少要有一个 commit):
init 会注册这个 Project;通过 .git/info/exclude 把 memprove 自己的文件排除在 Evidence 之外;为它找到的客户端写配置(Claude
Code:.claude/settings.local.json 里的 SessionStart hook 和 .mcp.json;Codex:~/.codex/config.toml 和
AGENTS.md 里的一段说明;Cursor:.cursor/mcp.json 和一条 rule);最后运行 memprove doctor。再运行一次不会改变任何东西。--client 指定客户端;--allow-tools 还会写入 Claude Code 对 MCP server 和 memprove run 的 allow 规则。第一个 Session 之前,doctor 会打印两行 WARN(workspace、ledger),之后两项都会通过。细节见
Enabling memprove in a project(英文)。
3. 一次会话,五条命令
begin 在一个 Task 上开始一个 Session(加 --new-task 时同时创建这个 Task)。run 在你的 shell
里运行命令,并把结果和当时的仓库状态一起记录下来。checkpoint create 记录 fact(每条都引用运行)、open item、decision 和 next action;fact
需要一次通过的测试运行,并且只有在工作区和那次运行一致时才保持 verified(测试运行生成的文件要提交或忽略,比如第一次生成的 Cargo.lock)。
resume --pack 打印 Context Pack:Task 的判定、各个 Session、最近一次通过的运行、接下来能做什么、每条有效陈述的判定和它绑定的 commit,以及需要重新运行什么。end 结束 Session。在 Claude Code 里,hook 会在每个会话开始时注入 Pack;MCP 工具能做命令能做的事,只有运行命令除外:测试总是用 memprove run 记录。
memprove --help 列出所有命令;The agent's guide(英文)是 agent 的手册,从安装讲到接手。
只有 git status --short 没有列出未跟踪文件时,一次运行才能支持 fact。Python 的测试运行会留下 __pycache__/:在你要引用的那次运行之前,把它加进
.gitignore 或 .git/info/exclude,否则 fact 会是 unconfirmed。
下一个会话读到什么
下面是 tinyini(一个小的 Python 仓库)里一次真实会话在第一个 checkpoint 之后的 Pack(这次会话的每条命令,英文):
Task「…」 (in_progress): verified:Task 的判定,以及各类陈述的数量。Sessions:和Session 1 … not ended:还没结束的 Session,接手规则看的就是这几行。Last passed::最近一次通过的测试运行,和它对应的 commit。Can::接下来能做什么,以及每一步需要的权限。#1 verified: …:每条有效陈述的判定,和它的 Evidence 绑定的 commit。Omitted::在预算内省略了什么,以及怎样读到全文。
接手
Pack 会列出每个还没结束的 Session。会话发现另一个 agent 留下的 Session 时,只有同时满足三条才会把它作为 abandoned 结束:它的 agent 不是你;它看起来已经不在了,因为它最后一次写入超过
15 分钟,或者派发它的 Session 已经结束;它不是你自己的父 Session。否则那个 Session 保持打开,你照常 begin,本会话的第一个 checkpoint 会记录一条 open
item,说明另一个 Session 可能还在工作。hook 的开场会告诉你你的名字、当前的 UTC 时间和你的父 Session,所以这条规则不需要读取你的环境。
memproved 会记录谁结束了谁。声明了 sub_agent 角色的 Session 不能记录 Decision、不能完成 Task,也不能推翻其他 agent 的 fact,这些由负责编排的会话或者人来做。接手评测(docs/takeover-eval.md,英文)用真实的客户端跑六个场景,并给归档打分。
下一步
- The agent's guide(英文):所有命令、Pack、hook、MCP server 和退出码。
- How it works(英文):daemon、ledger、Evidence 和判定,附一次录制下来的会话。
- llms.txt(英文):同样的安装步骤,写给 coding agent 照着做。
- 问题和 bug:GitHub issues。