Maurice Heumann · Maurice’s Blog · 阅读原文

原始来源:Maurice Heumann · Maurice’s Blog

发现渠道:Hacker News · 当期讨论

Maurice Heumann 记录了用多个 Agent 重建游戏的过程。早期代码能启动,却存在类型、布局和逻辑错误;团队随后搁置现代化与移植目标,改用原编译器比对函数字节,并单独检查重定位符号与偏移。作者报告,最终 99% 的函数有重建源码、83% 达到字节一致,二者分母均是全部函数。代码未公开,部分日志丢失;文末的 6000 亿至 7000 亿 token 是估算,不是完整账单。

可信度 65 · 重要性 82 · 新颖度 70

技术与主题

Agent 系统 · AI 编程 · 评测与基准 · Multi-Agent · Decompilation · Binary Equivalence · Verification Harness

Maurice Heumann

观点原文

原作者的实践判断;节选验收方法的结论。

brandonpelfrey

观点原文

针对本篇反编译记录提出替代方案,来自本人经验,未提供可核验对照数据。

忠实转述(非原句):他认为,若不要求字节完全相同,可以让 Agent 写语义相同的函数和测试,在模拟环境运行原版与候选版,再比较内存读写序列并要求完整行与分支覆盖。他称这样更快,也允许改变寄存器选择和指令顺序。

j2kun

观点原文

回应上述替代方案,对保证范围提出技术质疑。

忠实转述(非原句):他提醒,行为测试的等价性依赖测试集是否充分;例如溢出行为可能漏测,而本项目希望连原版缺陷也保留。

Maurice Heumann

观点原文

原作者回应替代检查方案;与博客属于同一作者,不算独立证据。

忠实转述(非原句):他反驳,内存访问相同未必覆盖寄存器与浮点状态,访问不同也可能来自不同栈槽而不改变语义。他曾尝试更宽松的等价检查,但反馈太慢;仍用它核查了部分剩余函数。

编辑评读

这份经验最有用的部分,是把验收放在生成解释之外。若审阅者主要依据工作者的注释,越能写出合理理由的结果越容易通过;若它必须对照一个不能随意改动的参照物,检查的含义就更清楚。这是读原文后的工程判断,不能由单个私有项目推出所有 Agent 都会这样失败。

不过,字节一致也会约束实现自由。brandonpelfrey 提议用执行状态和覆盖测试替代,原作者指出它可能漏掉浮点或寄存器差异。应先确定要保留哪些行为,再选择判据;只要目标允许改变实现,就不能把“不匹配”一概当成“不正确”。两人都未提供相同任务上的公开对照,因此目前能比较的是保证范围。

还有一个应单独测的问题:判据更清楚后,是否真的减少了人的审阅时间?这里至少要把搭建检查器的一次性工作,与后续每个合格结果的复核时间分开。否则把审阅者撤掉,可能只是把人工工作提前了;原文没有足以完成这种核算的时间记录。

需要留意

  • 私有项目自报,未找到独立复测。

核查依据

所属事件

收录记录