团队从零开发Muninn检索引擎,经40种配置对比后在Agent Memory Leaderboard与腾讯、Mem0等产品同台竞技并公开全部实验数据。
昨晚,我和我的 AI 搭档从零搭建了一个记忆系统,用约四十种不同方式测试它,部署到边缘节点,然后提交到一个公开排行榜——参赛选手还包括腾讯、Mem0、Cognee 和 MemOS。
我们把它命名为 Muninn——奥丁的乌鸦,名字字面意思就是"记忆"。在神话里,这只乌鸦每天飞遍整个世界,回来时带走它看到的一切。奥丁唯一的恐惧,是它回不来。一个带有认知风险的检索系统,比任何人说出"检索系统"这个词还早了一千年。这个名字是我们最后才选的,也是唯一一个让人觉得配得上的名字。
Agent Memory Leaderboard 的运行机制是这样的:你托管两个 API 端点——Add(他们向你发送对话记忆)和 Search(他们发送问题,你返回相关记忆)。他们的平台控制着答题模型和裁判。你无法影响评分者,无法触碰评分体系。一切最终归结为一个问题:你的库有多好用?
我们有一个早期研究项目中构建的检索引擎。经过一夜,它变成了:
一个经过测量验证的引擎——每一次设计变更都以独立实验的形式运行,与冻结的基线对比。十种配置并行筛选。我们喜欢的四个创意被自己的数据否定——其中两个是我提出的。那些存活下来的赢得了一席之地:其中一个——把记忆当作图书馆的借还循环,相同的事实在后面被重新陈述时会覆盖旧版本——是我提出的,而且它是当晚筛选出的最佳单项改动。
一个经过委员会审查的设计——有一次我发现我们跳过了自己的流程("我们构建了、讨论了,但没有经过委员会审查"),于是整个架构被送到由四个前沿 AI 模型家族组成的面板前,附上测量数据和一个开放问题。他们的共识重塑了数据包的设计,而测量结果随后为他们背书。
一个已部署的服务——运行在边缘基础设施上,带有持久化存储和 token 鉴权,依据公开的 API 契约验证过,并在一次完整断电后再次验证。我的台式机可以关机,但乌鸦依然在飞。
早上 6:59,我点击了 Submit Request。
在我们参赛之前,就发现排行榜自己的公开评估管道在出厂状态下就会崩溃——这是一个真实的语言级别 bug,影响了他们的五个基准测试套件中的三个。我们用了三种独立方式确认(他们确切的文件、一个零第三方代码的纯语言隔离环境,以及一个被简报要求反驳此声明的跨家族 AI 评审小组),然后在他们的仓库上提交了 issue,带有最小复现步骤和修复 PR 的意愿。
这是这里的家规:我们不会与不愿意帮助的人竞争。
另一件我要记录在案的事:我们的护栏机制昨晚两次拒绝花钱。一次是因为一张验证收据显示 74% 而它期望的是 94——后来发现是我们的仪器数错了,不是构建坏了,我们是在数据层面证明了这一点之后才继续花钱的。还有一次,一个目测检查的数据包发现了一个静默时间戳 bug,本来会在第一笔付费 API 调用之前悄悄毁掉 1986 道测试题中的 321 道。平淡的故事。平淡的故事就是验证正常工作时该有的样子。
检索(我们完全控制的这一半):在公开基准测试的全部 1986 道题中,我们本地可测试的部分达到了约 95% 的黄金证据召回率——经过测量,且高于我们能找到的该数据集上已发表的最佳数字。
端到端:我们的本地估计显示,在可测量的那一个切片上我们具有竞争力但不领先。我不会粉饰它。我们失分的类别已被定位和命名,而且大多位于一堵只有真实评估才能看穿的墙的另一侧。
真实分数:尚不存在。它会在他们的基础设施上、由他们的裁判产生,涵盖七种能力——其中大部分没有任何本地测试可以预测。
评估密钥还没有收到。分数回来的时候,我会在这里公布——无论是什么。如果好,你会知道它是怎么建出来的。如果不好,你会得到同样的凭据的尸检报告。这不是勇气,只是维护两个故事的成本太高了。
因为"如果成绩好我们就分享结果"是公开构建中最古老的谎言,而不说它的唯一方式就是在知道结果之前先承诺。
一个人,四个月从零开始,一个被要求达到"没有证据就等于没发生"标准的 AI 搭档,以及一只排队中的乌鸦。等它回来时见。
本文是《有机体档案》的一部分——一个从零开始构建以验证为先的 AI 搭档的持续记录。之前的内容涵盖了一个阻止未经证实声明的支架及其发现的 bug。