你的下一个编程 Agent,不该从零开始

换编程 Agent 最贵的地方,不是订阅费,而是你又花了一个小时,把项目从头讲一遍。
哪些文件重要,哪个方案已经试过并且挂了,测试为什么是这个结构,那个做到一半的分支在干什么。Claude Code 一概不知。Codex、Cursor、Gemini CLI 也一样。每个都是从空的上下文窗口开始,再加上一句客气的“我很乐意帮忙”。
ai-memory 是一个想解决这件事的 Rust 二进制程序,而它的设计取舍比功能列表更有意思。
一份记忆,多个 harness
它的卖点是:二十来个 agent harness——Claude Code、Codex、Cursor、Gemini CLI、OpenCode、Grok、Devin、Kimi、Kiro 等等——都从同一个共享记忆库里读。你在其中一个里干活,任务做到一半停下,在同一个目录里打开另一个,它接着上一个的进度往下走。
机制是“有归属的交接”。不是让 agent 自己生成一段摘要、然后祈祷它准确,而是一条明确的记录,带一个只能被认领一次的 owner。最后这条约束才是关键:它意味着两个 Agent 不可能同时以为自己是在接着干,也意味着一个被放弃的交接是看得见的,而不是悄悄丢掉。
还有一层是跨项目的。你的工作偏好——包管理器、测试布局、你喜欢怎么组织模块——会跟着你进新仓库,所以刚 clone 下来的项目,在那些“到哪儿都成立”的事情上不用从零开始。

拿 Markdown 当真相来源
这里有个设计决策,值得好好吵一吵。
Agent 的记忆系统通常就是 embedding。把历史切块、向量化、塞进向量数据库、按相似度检索。这套能跑,但有三个问题:你读不了它,你 diff 不了它,而且检索足够不透明——当它返回错误的东西时,你根本不知道为什么。
ai-memory 把它倒过来了。真相来源是一份普通的 Markdown wiki,用 git 做版本管理。SQLite 索引——全文搜索、实体、embedding——是派生的,可以重建。把数据库删了,你什么都没损失。
这一个选择换来很多东西。你可以 grep 这份 wiki。可以在 Obsidian 里打开它。可以手动改掉一条错的记录。可以 rsync 它。可以看一个 diff,然后发现 Agent 对你架构的理解在周二变了。而且没有向量库把你锁死。
这也意味着记忆是可审计的,而这对团队很重要。“Agent 为什么认为我们用 pnpm”这个问题,答案是某个文件。
会变旧,但不会被删
项目里描述了一套记忆老化机制:分层衰减、按访问加权保留、去重、矛盾标记。不用的笔记优先级会下降,但不会消失;互相冲突的条目会被标出来,而不是被悄悄覆盖。
重要的细节是:没有硬删除。旧页面留在 git 里,一条 restore 命令就能找回来。想想 Agent 那条“过时”的笔记,有多经常是某个决定为何做出的唯一记录,这个默认值就是对的。
还有个可选功能叫 dreaming,在空闲时间用 LLM 重写一批冷笔记。默认关闭,README 也写得很明确:它从不删除原始素材。任何用模型改写你笔记的东西,默认关掉都是对的。
安装确实很短
Linux 或 macOS 上两条命令:一个 curl 到 shell 的安装脚本(会校验 SHA-256),然后 ai-memory setup,它会建好数据目录、启动一个用户级服务,再把它检测到的 Agent 都接上。Windows 有对应的 PowerShell 版本,另外还有 AUR、RPM、Nix、Docker,以及 Claude Code 和 Codex 的插件市场条目。
日常使用围绕一个 wrapper:用 ai-memory run claude 代替 claude。首次运行会装好对应的 hooks 和 MCP server,并把会话限定在当前项目。之后 ai-memory continue 恢复最近一次受管理的 checkout,resume --search auth 则按名字从你的工作流里挑一个。
还有个 bootstrap 命令,一次性导入已有的项目历史——这就是“你会真的用起来的工具”和“你一直打算用起来的工具”之间的差别。
让人不太舒服的部分
通过生命周期 hooks 静默抓取,意味着系统会在你干活的时候记录 prompt、工具调用和会话边界。这是它唯一能运转的方式——你不可能手动写日志——但这一点值得看清楚。你对着客户代码库敲过的每一条 prompt,其记录都是敏感材料,而现在它就躺在一个被 git 版本管理的目录里。
缓解措施算是合理:默认只绑 loopback,setup 会生成一个 bearer token,写进只有 owner 能读的文件,而不是写进你的 Agent 配置里。但 Docker 的快速启动是不带认证跑的,README 也标了仅限本地使用。如果你在没有 TLS 反向代理的情况下把那个端口暴露出去,等于把你的工作历史公开了。
团队那部分比我预想的成熟,考虑到这项目还这么年轻:共享服务器、按项目共享、私有交接、多用户认证、归属和审计日志,全在付费层之外。这套功能集才决定它能不能扛住和一个真实工程组织的接触。
如果你不想跑服务器
一个合理的反对意见:“我自己的服务器”这句话,一出口就劝退一半读者。
它不一定非得是台服务器。setup 命令会在同一台机器上起一个用户级服务,绑在 loopback 上,这就是默认路径——不用 homelab,不用 VPS,不用 DNS。跨机器和团队功能只有在你想要的时候才重要,而且它们和核心循环是可分开的。
还有个从仓库里构建的 macOS 菜单栏应用,以及一个只读的网页视图——如果你更想在浏览器里而不是编辑器里翻你的 wiki。Docker 那条路,主要是给本来就习惯用容器思考的人准备的。
所以老实的上手阶梯是:装到你的笔记本上,让它记录一个项目,然后看看它产出的 wiki 是不是你真的会去读的东西。如果是,剩下的自然跟上。如果 wiki 就是一堆噪音,再多的团队功能也救不了它。
为什么这事比听起来更重要
Agent 市场现在是按厂商划分的,而厂商没有动机让你轻松离开。你的上下文就是锁定本身。这就是为什么切换成本感觉比订阅价格所暗示的要高。
一个坐在所有厂商下面、用你自己拥有的格式保存记忆的工具,是一次小规模但实在的用户侧标准化。ai-memory 是不是最后赢的那个,其实几乎不重要——这个解法的形状,可移植的纯文本加上可重建的索引,明显是对的,而且每一个专有的记忆功能,早晚都得和这个形状竞争。
另外,它就是个单二进制,核心循环不需要 API key。在一个“记忆”通常意味着“再订一个服务”的品类里,这挺少见。
相关文章
5B 的 MOSS-Image 把海报上的中文写对了,代价是它不会改图
开源权重新高的长文本渲染分数、能按坐标摆版式的 JSON Layout,以及一个绕不过去的短板:它是纯文生图,接不了参考图,也改不了图。
Cloudflare 开源了自用的审计器:值钱的是它会反驳
六个阶段、三种结论,还有一条最要紧的规则:检查 finding 的 agent 永远不是发现它的那个;Cloudflare 也承认单次运行大约只找到一半。
LLM 智能体拼出一家交易公司:117,000 星,先读免责声明
分析师、多头、空头、交易员、风控、组合经理——组织架构就是系统架构,而 README 里那句关于非确定性的提醒,才是全文最重要的一行。
225,000 颗 star 只为一份 markdown:Karpathy 的抱怨变成四条规则
没有代码,没有构建,没有 benchmark:四原则写进一份 CLAUDE.md,比今年大多数讲能力的发布都更受关注,而这个落差本身就是新闻。