跳到正文
Hacker News· Na6z·· 6 天前AI 评分62

Mnemosyne 发布智能体记忆版本控制工具,提供 blame、bisect 与 merge

Git for Robots In The Future

AI 导读

Mnemosyne 为 AI 智能体记忆引入类似 Git 的版本控制,提供 blame、bisect、commit、branch、merge 等命令,由 Rust 核心、mnem CLI 和 Python SDK 组成,本地运行、确定性、不联网也不调用模型。

正文 · AI 翻译

A support agent is told a past answer was wrong. It runs bisect to find the commit where the belief entered, blame to trace it to a misread billing note, then merges in a parallel branch that had the right answer, resolving a real conflict. The history keeps every line of it.

AI agent 在工作时会积累记忆:它学到的事实、做出的决定。框架把这些存储为状态,并随着工作不断覆盖。Mnemosyne 赋予 agent 记忆以 Git 赋予代码的能力:blame、bisect、commits、branches 和 merge。一个 Rust 核心、一个 mnem CLI 和一个 Python SDK。本地运行、确定性、无网络、无模型调用。

问题所在

你的 agent 运行一小时,进行四十次工具调用,并全程更新其记忆。然后它出了错,而你手里只有它当前状态的记忆。你无法看到错误事实是何时进入的,agent 在偏离轨道之前知道什么,或者它为什么相信自己相信的东西。版本控制正是为代码解决了这个问题。

你能得到什么

命令 作用
blame 将任何信念解析到引入它的提交(穿过合并)和观察
bisect 对一次运行进行二分查找,找到错误信念首次出现的提交
commit · log 将记忆记录为不可变、内容寻址的快照及其来源,并遍历历史
show <commit> 精确重建任意过去提交时的记忆状态
branch · checkout · diff 以指针的代价分叉记忆,以隔离方式探索假设
merge 合并两条记忆线,将冲突作为对象呈现,供你检查和解决
export · import 将整个历史导出为一个可移植的 JSON 文件,并从中重建存储

A Python agent loop: a Claude call, store.add with provenance, store.commit, and store.blame tracing a belief to its origin

上述所有正确性属性——精确重建、精确的 bisect、准确的 blame、merge 上无丢失写入——在 80 个种子、720 次运行的扫描中 100% 成立,另外还有针对合并算法的独立 50,000 例模糊测试,在每次变更时于 CI 中把关。完整细节:基准测试。

快速开始

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Nabzx/mnemosyne/releases/latest/download/mnem-git-installer.sh | sh
# no Rust toolchain needed; PowerShell equivalent: mnem-git-installer.ps1 on the same release page
pip install mnem-agents     # the Python SDK; `import mnem`

已经有 Rust?cargo install mnem-git 则从源码构建 CLI。

三条命令,agent 的记忆就纳入版本控制:

mnem init ./agent-memory && cd ./agent-memory
mnem add customer-4821 "on the Enterprise plan" --source ticket-4821
mnem commit -m "open the case" --author agent

现在看它抓住一个真实错误:

# an hour later, the agent misreads a billing note:
mnem add customer-4821 "downgraded to Pro last month" --source billing-note-8842 --step step-31
mnem commit -m "reconcile the plan tier" --author agent

# a wrong answer surfaces. find where it entered, and why:
mnem bisect --node customer-4821 --equals '"downgraded to Pro last month"'
mnem blame customer-4821

Python SDK:

import mnem

store = mnem.init("./agent-memory")
store.add("customer-4821", "on the Enterprise plan",
          provenance=mnem.Provenance(source="ticket-4821"))
store.commit("learn the plan tier", author="support-agent")

b = store.blame("customer-4821")       # which commit set this, and why
print(b.commit[:8], b.provenance.source)

Shell 补全:

mnem completions zsh > ~/.zfunc/_mnem     # or bash, fish, powershell, elvish

更多示例,每个界面一个(SDK、Claude、LangGraph、MCP),位于 examples/——上面的 README GIF 是 examples/claude_agent.py。

来自 Git

Git mnem
git init mnem init
git add mnem add
git commit mnem commit
git log mnem log
git branch mnem branch
git checkout mnem checkout
git diff mnem diff
git merge mnem merge
git blame mnem blame,同样的思路
git bisect mnem bisect,同样的思路

目前有意缺失的部分:push / pull / clone(存储之间的同步协议属于 Era 2)、暂存的 hunk(add -p,暂存是一个完整节点),以及文本合并冲突标记(冲突是一个对象,你用 --resolve <id>=ours|theirs|base|delete 或 --strategy 解决,而不是内联标记)。

愿景

代码需要版本控制,然后需要一种共享和共同构建的方式。AI agent 需要完全相同的东西,而且不止于记忆:它延伸到整个 agent、agent 之间如何协作,最终延伸到它们运行的物理机器。Mnemosyne 正在端到端地构建这一切:

  1. 版本控制 (现在):单 agent 的版本化记忆,本地且确定性。
  2. 协作层:agent 在共享记忆上协同工作,变更落地前有审查步骤,就像代码的 pull request 一样。
  3. 平台:整个 agent,而不仅仅是其记忆,像今天 GitHub 上的代码一样被保存、共享和分叉。
  4. 翻译层:一个 agent 定义,写一次,即可在任何框架上运行,而不是为每个框架重建。
  5. 物理 AI:机器人是未来。同样的版本控制和翻译层,应用于物理技能而非软件记忆,这样一个系统学到的东西可以迁移到另一个系统。

我们从软件 agent 开始。这是证明其可行的最容易的地方。但物理 AI 是新现象,而这最终正是为此而构建的。

先前工作

2026年的一波研究都指向这个想法(Git4Data、GitOfThoughts、StateFuse、MemTX、LatticeMind),每一个都是一篇论文或一个原型。有一个发现值得直说:版本化记忆并不会让智能体给出更好的答案。它给你的是历史记录、审计和安全合并。这就是全部卖点,而这就足够了。基准测试里有具体数字,我为什么构建这个里有更长的版本,而为什么智能体记忆需要版本控制则阐述了普遍情况。

想要同样的故事从头到尾走一遍,一次一条命令,用真实的提交 ID 而不是压缩过的摘要?用 bisect 调试被投毒的智能体逐字讲述了上面 GIF 所做的事。

贡献与许可

非常欢迎提出问题、bug 报告和想法,这是塑造下一步要构建什么的最佳方式。由一位维护者开发,所以目前 docs//examples/ 之外的大多数拉取请求都不会被合并(详情见 CONTRIBUTING.md)。Apache 2.0(LICENSE)。

来源:Hacker News · github.com