跳转至

Read this paper write-up in English

Memento 3:反思规则册与可执行世界模型

论文信息

字段 内容
论文链接 arXiv:2610.11794v1;官方全文
一作所属机构 University College London;合作作者来自 Huawei Noah’s Ark Lab、University of Liverpool
首次公开日期 2026-10-08
原作者开源代码 未找到作者公开实现;论文提到 baseline1 起始代码,不等同于 Memento 3 开源
Adapter memento3(独立 checkpoint runner;尚未注册为通用 Agent 基准)
本地复现代码 src/auto_research/agent_research/memento3.py、memento3_python.py

原始论文总结

背景与主要改动

冻结 LLM 将黑盒交互证据写成可修改规则册,再编译为世界模型。新代码必须同时通过语义忠实性判断和全部历史逐格回放;规划失配会触发修复。多个模型共享历史,按不同完整计划的等价类均匀抽样,而非按重复模型投票。论文第 2 节

flowchart LR
    O[公开观察与动作历史] --> R[冻结 LLM 反思/修改规则册]
    R --> C[冻结 LLM 编译可执行模型]
    C --> J[LLM 语义忠实性]
    J --> V[全部历史 cell-exact 回放]
    V -->|接受| P[模型 BFS / 完整计划等价类]
    P --> A[真实环境动作]
    A --> O
    V -->|拒绝,保留失败| R

原论文关键图

Memento 3:反思规则册与可执行世界模型 原论文 Figure 2

原论文 Figure 2(关键图):观察失配、反思、规则修正、编译与双重验证构成冻结 LLM 的世界模型学习闭环;图中由镜像假设修正为徽章顺时针旋转规则。为原论文示例,不是本地成功轨迹。图片来自原论文,版权归原作者所有;点击图片可查看来源。

核心公式

接受要求为 \(\theta\in[\![\psi]\!]\) 且对全部历史转移有 \(\rho_\theta(f_\theta(\hat s_i,a_i))=o_{i+1}\)。模型从每条轨迹初始观察仅初始化一次,再连续回放;不能每步用下一张真实图重置状态。

相同非空完整动作序列组成一个等价类;从类集合均匀抽样,并保持所选计划直到完成、失配或重新规划。论文式 20–21、32–33

论文离线与线上效果

论文报告 ARC-AGI-3 25 个公开游戏全部完成,平均 RHAE 100,动作量为人类基线的 44%;Pong 三个开局均为 21:0。未报告生产线上 A/B。上述数值均不是本地结果。论文第 4–5 节

本地复现

当前实现为 L1 核心机制实验,不是原论文完整基准。已在 NVIDIA A100-SXM4-80GB 上实际运行冻结 Qwen2.5-7B;生成模型在第一次真实动作后被证伪,修复未成功,最终没有可用世界模型,任务也未完成。这是一条保留失败的机制执行记录,不是能力提升结果。

# 另安装固定版 gymnasium==1.1.1;checkpoint 必须是公开固定版本缓存。
PYTHONPATH=src python scripts/run_memento3_checkpoint.py \
  --checkpoint /path/to/Qwen2.5-7B-Instruct \
  --output runs/memento3-seed42.json \
  --source-commit <包含本轮源码的40位提交号> \
  --seed 42 --population 2 --action-budget 8 --revisions 2

数据协议

使用 Gymnasium 1.1.1 的 deterministic FrozenLake-v1,4×4 随机地图在运行前由 seed 固定。政策仅看到整数 grid、动作编号、真实 completion/termination;不看到环境源码、隐藏转移表、正确计划或奖励实现。这个替代环境不计算 ARC RHAE,也不冒充 Pong 或 25-game 能力评测。冻结 Qwen2.5-7B 同时生成规则、源码、语义判断与探索动作。

结果与边界

固定公开 checkpoint 为 Qwen/Qwen2.5-7B-Instruct,revision bb46c15ee4bb56c5b63245ef50fd7637234d6f75;实际执行源码提交 c10a88e8ba06d764628642405eb6e99baa285cd5。seed 42、人口 2、真实动作上限 8、最多 2 轮修订;每次源码生成上限 1600 token。

本地实测 结果
冻结 LLM 调用 / 生成源码调用 9 / 2
曾接受版本(仅通过初始观察,尚无真实转移) 1
实际动作 / 预测失配 1 / 1
拒绝的规则或源码提案 3
最终满足全部历史 replay 的模型 0
任务完成 否

人工核查显示:模型从初始 grid 臆测“填满数字即获胜”的规则,编译出的源码与该错误规则册一致,因此未校准的语义 judge 同意。初始观察回放尚不能检验动作动态;执行动作编号 1 后,真实下一帧与生成模型逐格不符,控制器立即停止余下计划、撤销旧模型。修复时模型返回相同源码,仍被完整历史回放拒绝;另一成员规则输出类型错误,随后探索输出也不满足 JSON 合同,运行不再补造动作。

因此 learning_status 为 falsified_generated_model,不是“已学会世界模型”。指标产物保留接受与证伪两个计数;GPU 回执中的 passed 只表示 CUDA 推理、安全解释、验证/失配控制链真实执行,明确 capability_passed: false。不删除负结果,也不把语义 judge 的同意冒充现实环境正确性。

CPU 单测覆盖全部历史逐格验证、共享人口计划等价类、失配停止、预算耗尽撤销旧模型、语法逃逸/递归/无限循环/超大分配拒绝。测试中的手写程序只用于 L0 测试,从不作为运行时的生成或修复 fallback。

运行产物保存全部生成输出、拒绝原因、动作、失配、合法最终模型数及成功与否。没有合法生成模型也保留失败,不能用手写导航规则补齐。 每个接受版本保存到独立运行 Git memory,固定文件名与 iteration tag;不执行模型生成的路径或命令。

语义 judge 由同一个冻结 LLM 完成,尚未人工校准,因此“judge 同意”不能当作语义正确性能力指标。逐格回放只能排除已观察证据矛盾,也不保证未见状态泛化。受限 Python 解释器不支持完整 Python(例如属性调用、导入、推导式),这是安全与规模折衷,结果必须保留对应生成拒绝。

代码映射

组件 代码
反思、规则册、编译、双重验收、共享历史人口 src/auto_research/agent_research/memento3.py
有界 AST 解释器(无 exec/eval) src/auto_research/agent_research/memento3_python.py
冻结真实 checkpoint、黑盒环境、Git memory scripts/run_memento3_checkpoint.py
L0 安全和行为回归 tests/agent_research/test_memento3.py
真实结果源代码/生成来源/逐格验证与证伪状态防伪 scripts/curate_memento3_evidence.py、tests/agent_research/test_memento3_evidence.py

尚未将此替代环境指标用于 Evolve 晋级;不是只添加 registry 标签便称“已接入”。