@garrytan: GBrain SkillOpt 现在有4个端到端评估验证其功能 https://github.com/garrytan/gbrain-evals/blob/main/docs/benc…
摘要
Garry Tan 的 gbrain-evals 是一个用于 gbrain(AI 代理的长期记忆)的开源测试套件,包含4个端到端评估验证 SkillOpt 功能,在多个基准测试中实现了高召回率和高精确度。
查看缓存全文
缓存时间: 2026/06/04 03:58
GBrain SkillOpt 现在有 4 个端到端评估验证其工作正常 https://github.com/garrytan/gbrain-evals/blob/main/docs/benchmarks/2026-06-03-skillopt.md…
garrytan/gbrain-evals
来源:https://github.com/garrytan/gbrain-evals
gbrain-evals
这是 gbrain(https://github.com/garrytan/gbrain)的测试套件,gbrain 是一个 AI 智能体可读写长期记忆的系统。此处所有内容均为公开的,可在你自己的机器上运行,并可通过提交哈希复现。我们测试的是智能体记忆必须正确的全部方面,而不仅仅是一个在推文中看起来漂亮的数据:包括查找相关内容、记住谁是谁、保持时间顺序正确、不自相矛盾、引用事实来源,以及在记忆包含数十万页时仍能保持快速。我们还会公开那些不够理想的数据,与优秀数据并列,因为一个你要在其上构建的记忆系统必须诚实地告知其薄弱之处。如果你正在决定是否信任 gbrain 来承载智能体的记忆,这个仓库就是你检验我们工作成果的方式,而不是仅仅听信我们的一面之词。
基准测试的工作原理(60 秒速览)
这里的每个基准测试包含三个部分:
- 语料库 —— 一堆逼真的内容(聊天记录、会议笔记、邮件、个人简介页面)。部分内容是我们生成的虚构人生,部分则是其他研究人员使用的公开数据集。
- 带有密封答案的问题 —— 每个问题都有一个已知正确的答案,该答案存在于一个独立文件中,被测系统永远无法看到。gbrain 必须仅从内容中找到答案,无法偷看答案密钥,因此无法作弊。
- 分数 —— 我们提出问题,查看返回的结果,并与密封答案进行比较。有两个通俗易懂的衡量指标随处可见:
- 召回率 —— “返回结果中是否包含了正确答案?” 召回率@5 为 97% 意味着在 100 次提问中,正确的记忆出现在前 5 个结果里共 97 次。
- 精确率 —— “返回的结果中,有多少是真正相关的?” 高精确率意味着混杂的无关内容很少。
大多数问题追求高召回率(不遗漏答案),某些问题则追求高精确率(不埋没答案)。一个真正的记忆系统必须在两者上都表现出色,并根据所提问题的需求保持适当的平衡。我们测试的正是这种平衡,而不是为了一个指标牺牲另一个。
gbrain 目前的水平
| 测量项目 | 结果 | 通俗解释 | 报告 |
|---|---|---|---|
| LongMemEval(公开数据集,500 道题,基于长对话历史) | 97.6% 召回率@5 | 正确的记忆有 97.6% 的概率出现在前 5 个结果中。这是该测试已发布的最佳成绩,且检索循环中未使用 LLM。 | 报告 |
| 关系型问题(“谁把 X 介绍给了 Y?”)基于 240 页虚构人生 | 97.9% 召回率@5,49.1% 精确率@5 | 在精确率上比纯向量搜索高出 38 个百分点。图结构层(谁认识谁)独自贡献了其中约 30 个百分点。 | 报告 |
| 跨 20 个版本的稳定性(v0.20.0 → v0.40.6.0) | 零回归 | 各个版本的主要指标保持不变。新功能并未悄无声息地让检索效果变差。 | 报告 |
| PrecisionMembench(外部纯精确率测试) | 第 2 名,以及一个诚实的“默认第一”的故事 | 见下文关于诚实的说明。 | 报告 |
| SkillOpt(技能能否在不作弊的情况下自我改进?) | 4/4 技能从 0 提升到 1.00;作弊行为被阻止;改进可迁移 | 有缺陷的技能在保留任务上重写自身至完美;关键词填充作弊被独立评判器捕获;在一个模型上优化的技能可在另一个模型上工作。 | 报告 |
一个持续更新的跨系统对比表位于 docs/comparison-systems.md。
我们也公布不好的数据
关于我们思考方式最清晰的例子是 PrecisionMembench,这是一个仅评估检索精确率的外部测试,它会惩罚那些返回多个结果让模型自行筛选的系统。
- gbrain 的默认设置在此测试中得分 0.076 精确率。这看起来很差,我们将其公布了。它在这个特定测试上表现差是因为 gbrain 的默认设置调整为了从不遗漏答案(召回率保持在 0.99),这对于一般情况来说是正确选择。
- 这个结果促成了一个真正的功能:一个可选设置,在问题期望单个答案时收紧返回结果的数量。启用该设置后,gbrain 的精确率达到 0.582,延迟比最接近的通用系统低三分之二,仅次于专门为这一基准测试构建的工具。我们特意在 README 中保留了诚实的默认值 0.076。你要在其上构建的系统应该针对真实的问题分布进行优化,而不是为了在某一个狭隘测试中登顶,并且当某个数字来自特殊情况时,它应该直接告诉你。
反游戏机制已内置于测试工具本身:在边界处使用密封答案密钥、根据重复运行设置容忍范围、固定评判器版本、随机化问题顺序。
我们测试的内容(端到端)
每一行都是一个真实的测试,带有确定的通过/失败阈值。“已上线”表示它在 CI 中运行并控制发布。
| 领域 | 检查内容 | 标准 | 状态 |
|---|---|---|---|
| 检索 | 在大量散文中找到相关页面 | recall@5 > 0.83 | 已上线 |
| 身份识别 | 将别名、用户名、邮箱解析为同一人 | recall > 0.80 | 已上线 |
| 时间 | “截至去年三月”、时间点/区间/时效性问题 | as-of recall > 0.80 | 已上线 |
| 来源引用 | 引用事实来自哪个源 | accuracy > 0.90 | 已上线 |
| 链接 | 连接相关页面,不产生错误链接 | precision > 0.95 | 已上线 |
| 速度 | 在负载下保持快速 | p95 < 200ms | 已上线 |
| 技能 | 智能体行为如其声称 | all > 0.90 | 已上线 |
| 工作流 | 完整的多步骤任务,按评分规则评判 | 80% pass | 已上线 |
| 鲁棒性 | 22 个对抗性输入,永不崩溃或损坏 | 100% | 已上线 |
| 多模态 | 正确摄入 PDF + 音频 + HTML | text > 0.95, audio WER < 0.15 | 已上线 |
| 信任边界 | 面向智能体的 API 不能被诱骗导致静默损坏 | no corruption | 已上线 |
自己运行
git clone https://github.com/garrytan/gbrain-evals.git
cd gbrain-evals
bun install # 将 gbrain 作为库拉取
公开数据集(LongMemEval,500 道题):
mkdir -p ~/datasets/longmemeval
curl -Lo ~/datasets/longmemeval/longmemeval_s.json \
https://huggingface.co/datasets/xiaowu0162/longmemeval/resolve/main/longmemeval_s
export OPENAI_API_KEY="sk-..." # 用于嵌入
export ANTHROPIC_API_KEY="sk-ant-..." # 仅用于查询扩展变体
bash eval/runner/longmemeval-batch.sh # 所有变体,并行,可恢复
bun eval/runner/longmemeval.ts --stratify 10 # 快速按类型取样 10 个
首次运行嵌入成本约 $2;后续运行命中本地缓存,成本几乎为零。
我们自己的套件(称为 BrainBench;无需 API 密钥,完全离线):
bun run eval:run # 完整的检索 + 行为套件,约 15 分钟
bun run eval:run:dev # 一次性烟测试
bun run eval:world:view # 浏览测试所运行的虚构语料
精确率测试:
bun eval/runner/precisionmembench.ts --mode gbrain-hybrid # 诚实的默认值(0.076)
bun eval/runner/precisionmembench.ts --mode gbrain-adaptive --entity-max 1 --other-max 1 # 0.582
语料库
我们测试的内容都是可发布的,因此任何人都可以在不接触私有数据的情况下复现结果。
- 240 页虚构人生(2.0MB,已提交):80 个人、80 家公司、50 次会议、30 个概念,由 Opus 生成。每个页面附带一个密封答案密钥,该密钥永不会进入被测系统。
- 一个混乱的虚构星期(2.1MB,已提交):50 封邮件、300 条聊天消息、20 个日历事件、8 份转录稿、40 条笔记,其中植入了矛盾、过时事实和刻意垃圾信息,以便我们在输入真实且有噪音时测试大脑是否保持清晰。可通过
bun run eval:generate-amara-life确定性重新生成(种子 42)。
仓库结构
gbrain-evals/
├── eval/
│ ├── data/ 语料库 + 密封答案密钥 + 公开数据集
│ ├── runner/ 每个基准测试一个文件(我们的套件、LongMemEval 等)
│ ├── reports/ 临时运行输出(已 gitignore)
│ └── cli/ 浏览和验证语料库
├── docs/
│ ├── benchmarks/ 已发布的评分卡,附带数据和图表
│ └── comparison-systems.md
└── test/eval/ 测试工具自身的单元测试
贡献
- 复现结果: 每张评分卡都标明了运行时的提交哈希。
git checkout && bun run eval:run。 - 为自己的系统打分: 针对我们的接口实现一个适配器,注册它,运行套件,并提交一个包含你评分卡的 PR。gbrain 是众多被测系统之一,而非基准测试的主体。
- 添加测试: 新建基准测试文件,接入,添加单元测试,提交一个基线。
许可
MIT。虚构语料库完全由我们编造,可自由再分发。附带的精确率测试产物为 MIT 许可(tenurehq);参见 eval/precisionmembench/ATTRIBUTION.md。
与 gbrain 的关系
此仓库使用 gbrain 的方式与你相同:它将 gbrain 作为库安装并调用其公共接口。gbrain 是此处的参考系统,但测试工具会对任何实现适配器接口的系统进行评分,从而保证比较的公平性。
相似文章
@garrytan: GBrain 现在能做到的一件有趣的事情:如果你有技能 + 代码 + 测试 + 解析器 + 解析器触发器 + 评估,你想要…
GBrain 现在可以将技能、代码、测试和评估打包成一个 SKILLPACK tarball,其他人可以通过一个简单的命令安装它。
@garrytan: 我的最新gbrain-evals刚刚发布 - 这是gbrain与其他选项的比较。http://ZeroEntropy.dev 在重新排名方面是SOTA…
Garry Tan发布了新的gbrain-evals基准测试,显示ZeroEntropy.dev在重新排名和嵌入成本、速度及检索成功率方面达到SOTA,击败了MemPalace和Vector RAG。
@Voxyz_ai: 等不及这个gbrain功能了。这是循环:智能体使用技能尝试任务 ↓ gbrain评估或LLM作为裁判…
Voxyz宣布了一项新的GBrain功能,该功能使智能体能够通过LLM作为裁判的评估和隔夜优化循环,迭代改进技能。
@garrytan: GBrain v0.36.1 刚刚合并到主分支。它带来了一个周末黑客马拉松团队的想法:一个团队创造…
GBrain v0.36.1 增加了完整的评估功能,灵感来自一个黑客马拉松团队的 Hindsight 概念,用于随时间追踪预测。
@garrytan:GBrain 在 LongMemEval 上击败 MemPalace,并且我发布了基准测试和开源评估仓库来证明这一点
作者声称 GBrain 在 LongMemEval 基准测试中表现优于 MemPalace,并已开源评估仓库以验证结果。