AMB — Agent Memory Benchmark(智能体记忆评测基准)
AMB 是 Vectorize(vectorize-io)开源发布的智能体记忆评测基准,数据集、提示词、评分逻辑与结果全部公开。它针对百万级上下文时代检索不再稀缺的问题,在准确率之外同时追踪检索速度与 token 成本,并新增面向智能体任务的数据集(跨工具调用记忆、文档研究形成知识、偏好应用于多步决策),通过 Ingest→Retrieve→Generate→Judge 四步流水线给出可复现的评测结果。
社区作者 · zZz
它解决什么问题
项目定位
AMB(Agent Memory Benchmark)由 Vectorize 团队构建,作者称其动机是“诚实评估 Hindsight 的表现”,并指出既有基准无法给出完整图景。AMB 完全开放:数据集、提示词、评分逻辑和结果均公开,线上排行榜为 agentmemorybenchmark.ai。
为什么要做新基准
- LoComo 与 LongMemEval 是扎实的数据集,但设计于 32k 上下文窗口时代。当前 SOTA 模型拥有百万级 token 上下文,在多数实例上“把一切塞进上下文”的朴素做法就能取得有竞争力的分数——不是因为记忆架构好,而是检索本身变简单了,这些基准已无法区分优劣。
- 这两个数据集围绕聊天机器人场景构建。今天的智能体不只是回答对话历史问题,还会研究、规划、执行多步任务,并在大量交互中积累知识。AMB 增加了面向智能体任务的数据集:跨工具调用的记忆、从文档研究中构建的知识、应用于多步决策的偏好。
AMB 衡量什么
准确率 90% 但每位用户每天成本 10 美元的系统,并不优于准确率 82%、成本 0.10 美元的系统。AMB 以准确率为起点(因为它最难造假),同时追踪速度与 token 成本。
作者强调:唯一可信的基准结果是你能自己复现的结果。AMB 公开了评测 harness、评判提示词、答案生成提示词以及所用具体模型;这些任一环节的小改动都可能让准确率出现两位数波动,因此全部公开。
工作流程
- Ingest:将数据集中的文档加载进某个记忆提供方(memory provider)。
- Retrieve:对每个查询,记忆提供方检索相关上下文。
- Generate:由一个 Gemini 模型基于检索到的上下文生成答案。
- Judge:第二次 Gemini 调用将答案与标准答案对比打分。
检索时间与生成时间分开统计,摄入(ingestion)时间也会被记录。
特例数据集
PrecisionMemBench(upstream)有意打破上述流程:它按用例断言哪些记忆必须返回、哪些绝对不能返回——噪声是硬失败而非隐性成本——因此以 --mode retrieval 运行:不调用答案 LLM、不调用评判,得分等于“返回的 belief-ID 集合满足全部断言”的用例比例。
uv run amb run --dataset precisionmembench --split single-turn --memory hindsight-cloud --mode retrieval结果输出
结果保存在 outputs/{dataset}/{memory}/{mode}/{domain}.json,可用 uv run amb view 在浏览器中浏览。
适用对象
- 研发/评估智能体长期记忆方案的团队,需要横向对比不同记忆提供方(如示例中的 bm25、hindsight-cloud)。
- 需要可复现、可审计评测流程的研究者与工程团队。
- 关注记忆系统成本(token 花费)与延迟,而不只看准确率的工程负责人。
许可证
来源正文未提及许可证信息,待核验(请以仓库内 LICENSE 文件为准)。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
环境准备
- 安装 Python ≥ 3.11。
- 运行方式基于 uv(命令均以
uv run amb ...形式给出);来源未提供显式的依赖安装/uv sync命令,具体初始化命令待核验。
配置 API 密钥
# Copy and fill in your API key
cp .env.example .env # 或者直接创建 .env 并写入:
# GEMINI_API_KEY=...即:复制 .env.example 为 .env,或直接创建 .env 文件并填入 GEMINI_API_KEY。GEMINI_API_KEY 需存在于 .env 或环境变量中。
MemBench 数据路径
使用 MemBench 时,需将 MEMBENCH_DATA_PATH 设置为本地数据目录。
常用命令(按使用顺序)
# 列出可用的数据集、记忆提供方与模式
uv run amb providers
# 列出某个数据集的 domain
uv run amb domains --dataset personamem
# 运行一次基准
uv run amb run --dataset personamem --domain 32k --memory bm25
# 快速小规模测试(限制查询数量)
uv run amb run --dataset personamem --domain 32k --memory bm25 --query-limit 20
# Oracle 模式:只摄入 gold 文档,单独测试生成质量
uv run amb run --dataset personamem --domain 32k --memory bm25 --oracle
# 数据集统计
uv run amb dataset-stats --dataset personamem
# 在浏览器中浏览结果
uv run amb viewPrecisionMemBench 的 retrieval 模式示例:
uv run amb run --dataset precisionmembench --split single-turn --memory hindsight-cloud --mode retrieval首次运行与结果查看
- 结果写入
outputs/{dataset}/{memory}/{mode}/{domain}.json,用uv run amb view打开浏览器查看。
常见问题
- 未配置 GEMINI_API_KEY 时无法完成 Generate 与 Judge 两步(retrieval 模式除外,该模式不使用答案 LLM 与评判)。
- 检索耗时与生成耗时分开统计,摄入时间单独记录,因此对比时需注意三者口径不同。
- 评判提示词、答案生成提示词与所用模型的小改动可能造成准确率两位数波动,故 AMB 全部公开以支持复现。
- MemBench 未设置 MEMBENCH_DATA_PATH 时无法读取本地数据。