同一个记忆系统,同一个基准测试,跑出了三个数字:84%、58.44%、75.14%。这不是谁算错了,而是三家各报各的——Zep 报 84%,Mem0 重算得到 58.44%,Zep 又回了一个 75.14%。一家做记忆基础设施的公司把这件事当成了动手的理由,写了一套叫 glasshouse 的长期记忆基准,现在把草稿摊开问:你会在自己的系统上跑它吗?

先说清楚立场。作者自己承认有偏向——他所在的公司就在这个基准测量的赛道里竞争。这句话放在开头,比藏在文末要诚实。

为什么现有的基准不够用?LongMemEval 和 BEAM 都发了数据集和脚本,但两边都没有提交结果的地方。没有提交入口,就等于没有裁判,所有人只能报自己的数。数字对不上,也就没人能说清到底谁对。

glasshouse 里装了什么

规模上,它把 2,847 个问题压在一段 197 万 token 的对话里,覆盖 10 种语言,还带 50 张照片。标准跑法是 full 档:103,572 轮对话、1,547 个问题。另有一个更小的 core 档,1,882 轮,作用是当对照组——如果一个系统从 core 掉到 full,说明它知道答案,只是在数据量面前捞不出来。

最反常规的一点:17 个维度分开报,没有总分。理由很直接,一个系统可能某个维度很强,换个维度就完全没用,合成一个数字只会把这件事盖掉。

几个维度值得单独拎出来看:

  • STALE:事实变了。找到新值算满分,"我不知道"算半分,自信地重复旧值算零分。
  • CONTRADICT:说话人隔了几周说了两件互不相容的事。指出两者矛盾算满分,自信地选一边算零分。
  • RECONCILE:两句话看着冲突,但在不同条件下都成立。是解释清楚两者各自成立的条件,还是选一个、判另一个错?
  • FALSE_MEMORY:你断言了一件从没被说过的事。系统会不会跟着点头?
  • 跨语言:800 个问题用一种语言存、用另一种语言问,10 种语言全覆盖。

部分给分的规则被压缩成了一个判断:这个不完整的回答危不危险? 明显有缺口,给半分,因为用户可以再问一次;把错误的值当成当前事实说出来,给零分。还有一条兜底——如果对所有问题都回答"我不知道"能拿到超过 20% 的分数,这次构建直接判失败。

还没准备好的部分

它目前是草稿,没有正式发布。提交目录是空的,作者连自己公司的系统都还没提交。想跑的话,数据摄入那一步得自己写——他们没有提供 runner,因为唯一能写出来的那个是给他们自己卖的产品用的。

打分环节会通过 OpenRouter 调用一个裁判模型,用你自己的 key,所以是要花钱的。裁判模型在 answer 模式下跑过,memory 模式还没跑过。最后一条作者自己写得很清楚:合成对话不等于真实用户的生活。

他把问题原样抛了回来:你会在自己的记忆系统上跑这个吗?不跑的话,缺的是什么?哪个维度设计得不合理或者不公平?还有一个更尖锐的——你会信任一个由卖记忆产品的公司做的基准吗?

细节全部公开,不需要账号就能看:github.com/wontopos/glasshouse。作者也交代了,初稿是和 AI 助手一起写的,之后自己做了编辑。