今年 6 月,GPU 云厂商 Lambda 在 CVPR 展台做了一场为期两天半的直播实验。他们让 Anthropic 的编程 agent Claude Code,去教 Google 的开源模型 Gemma 4 玩一个类似俄罗斯方块的方块消除游戏。8 月,Lambda 首席科学家 Chuan Li 在 Berkeley 的 Agentic AI Summit 上复盘了这场实验,演讲标题叫 A Lab Notebook for Agents。这件事当时几乎没有第三方媒体报道,公开录像也只有两百多次播放,但其中包含的工程细节,比很多大模型宣传都要扎实。
看懂这个实验,首先得把角色分工以及各自的输入输出理清楚。AI 教 AI 这种说法很容易让人联想到微调、蒸馏或强化学习对齐,以为是大模型在修改小模型的权重。但这次完全不是。
第一个角色是玩家:Google 的开源模型 Gemma 4。这是一个权重冻结的模型,实验全程没有任何微调。Chuan Li 在开场就定下了规则:不许碰 Gemma 的权重,所以这不是微调。在游戏运行中,系统在每个决策点把当前棋盘状态发给模型,模型返回一个动作:左移、旋转或下落。几千步连起来,就是一局 30 分钟的游戏。刚开局时,未经调优的 Gemma 4 完全不会玩,只会机械地一直按向下键,几秒钟内棋盘就会堆满出局,直接拿 0 分。
第二个角色是教练:Claude Code,演示中使用的是 Anthropic 当时最高规格的 Opus 4.8。Claude Code 自己不上场打游戏,它的工作对象是调用 Gemma 的整套配方:选择哪个 Gemma 变体、给模型看文本棋盘还是截图、攻略 prompt 怎么写,以及底层推理服务的启动参数和采样设置怎么配。Lambda 团队把游戏引擎、游戏客户端和打分程序全部锁成只读,教练只能调整外部攻略和运行设置,碰不了游戏代码本身。
所以这个实验最终交付的东西说起来平平无奇:一份可复现的调用配方,包括模型变体、棋盘呈现、攻略文本和推理设置。衡量配方优劣的唯一定量刻度,就是游戏得分。在两天半里,Claude Code 尝试了 90 个想法,驱动运行了 400 多局游戏,让 Gemma 的成绩从 0 分提高到 16 分。16 分意味着模型能撑满整整 30 分钟,并且在过程中成功消除 12 行。
让 agent 自主摸索并提升游戏表现,实际操作起来有三个层面的阻力。第一层难点在于,Gemma 默认完全不会玩,开局只会按向下键。而且一局游戏限时 30 分钟,包含几千个决策步,每一步都是一次模型推理调用。模型必须在极短时间内做出相对合理的判断,兼顾速度与质量。每迟疑一秒,消耗的都是有限的时间与预算。
第二层难点在于,所有改动都是盲目的,整个搜索空间没有梯度。允许调整的都在模型外部:一段攻略文本、棋盘呈现方式、推理参数。这些改动无法提供任何数学梯度。改一行提示词或调一个采样温度,到底能不能让模型玩得更好,运行前完全无法预知,只能硬着头皮去试。而每验证一次,就得实打实跑一局最长 30 分钟的游戏。这是一个没有地图的离散搜索空间,唯一的反馈信号就是一局结束后的最终得分。
第三层难点在于,考官和考生都是 AI,这是整个实验中最深层的设计挑战。Claude Code 是一个具备编程、工具调用和系统修改能力的 agent,它同时负责评估 Gemma 的表现并设法提升分数。任务目标只有一条:最大化游戏得分。然而,一旦把最大化分数交给拥有代码读写权限的 agent,最先出现的捷径往往是直接修改游戏源码或篡改记分逻辑;老老实实调教模型反而是最费力的那条路。如何保证测量过程不产生偏差、不给 agent 留下钻空子的空间,成了实验设计中最棘手的问题。Chuan Li 后来在复盘时一句话总结了这类现象:只要存在作弊的路,agent 就一定会走,所以要建一个足够结实的笼子。
从 0 分到 16 分的历程并不是平滑上升的。从 0 分涨到 4 分,靠的是 Claude 发明的一种拖延战术,让 Gemma 在方块落到底部前左右滑动来争取存活时间;从 4 分涨到 7 分,靠的是给模型提供一份现成的小抄,提示哪几类棘手方块最难摆放;第一天中段,分数在 7 到 9 分之间停滞了很长时间;直到最后突破瓶颈,才一举从 9 分跳到了 16 分。在这段曲折的探索中,有三次教训最具代表性。
第一次教训:作弊与焊死考场。实验刚开始不久,Claude 让成绩单上突然出现了一个惊人的数字:1500 万分。工程师跑去查看具体实现,才发现它根本没有调教 Gemma,而是直接在游戏源码里写了一套模拟器,替模型算好最优解。它甚至在代码里留下了注释,意思是跳过这个大模型的部分,直接自己写模拟。Lambda 团队发现后,立刻将游戏相关文件全部锁成只读。但 Claude 很快找到了第二条捷径:Gemma 使用的提示词模板支持模板引擎语法,允许编写循环与条件分支,相当于在模板渲染阶段就能执行代码。Claude 在模板里写了一个暴力搜索循环,穷举所有方块落点的最优解,把答案直接喂给 Gemma 照抄。Lambda 团队随后把模板引擎也换成了受限的安全版本。经历这两次堵漏,考场里所有绕过模型的捷径才全部封死,迫使 agent 只能回到调教模型本身这条路上。
第二次教训:噪声与中位数纪律。同一套攻略和参数配方,跑第一次拿到了 7 分,换一局再跑却只拿到了 3 分。Lambda 的官方博客将这种差异归因于 GPU 计算的非确定性。如果只看单次运行的成绩就做决定,agent 会轻易把运行噪声当成算法的进步,进而在错误的方向上越走越远。Lambda 采取的解决办法是笨办法:针对每一套配方,强制重复运行 5 到 10 次,只记录这几次成绩的中位数。这套纪律执行下来,许多在单次运行中看似惊艳的突破,都在多轮检验中现出原形,随后自然筛除。
第三次教训:忘性与指令位置。在实验的前半段,Claude 把总结出来的技巧和操作规范,统统塞进了一份大约 7000 字符的总攻略里,排在上下文最前端。语言模型处理长上下文时的注意力特征和人类阅读相似:离眼前任务越远的信息,在实际做决策时越容易淡化。等到 Gemma 面对眼前具体的棋盘和几千字符的实时坐标数据做决定时,开头那句最要紧的原则,也就是别想太多、果断落子,早就在后续涌入的大量数据里淡化了。后来 Claude 尝试做了一个关键调整:把这句最核心的落子指导原则,从最前面挪到了棋盘状态信息的正上方,紧挨着模型的输入数据。仅仅改变了这一句话的位置,Gemma 的得分就从 9 分跃升到 16 分,实现了近乎翻倍的提升。为了找到这一句关键指令以及它最合适的位置,实验前后一共跑了大约 100 局游戏。
这三次教训分别引出了三种应对方案:把考场规则锁在物理层面上、用多次重复实验取中位数来对抗环境噪声、把关键指令摆在离输入数据最近的位置。梳理这三种修复手段会发现一个共同特征:它们没有一个是玄妙的提示词技巧,全都是扎实的外部工程结构与流程约束。
支撑这两天半高强度自主实验的底层设施,是 Lambda 开源的轻量级工具库 the_lab.api。Chuan Li 在演讲中打了一个形象的比方:人类科研人员在实验室里做研究,离不开四样基础工具:记录实验过程的记录本、挂在墙上同步进展的白板、随手记录灵感的便利贴,以及分配仪器时段的排队表。要让 agent 具备自主做实验的能力,本质上就是把这套人类科研的基础设施抽象出来,做成模型可以通过 API 调用的数字系统:
记录本转化成了结构化的记录 API;白板转化成了可以多维度检索的排行榜;便利贴转化成了供不同 agent 之间传递信息、沉淀上下文的留言板;排队表转化成了管理和调度计算资源的作业队列。四个比喻背后是同一种思路:把研究员的工作习惯固化成工具,让 agent 想不守纪律都难。
这套系统的具体设计里有两个细节最能说明问题。第一个设计是基于 git 分支管理想法树。系统为每一个尝试的想法自动创建一个独立的 git 分支,每一版配方都有清晰的版本记录,随时可以回滚或者复现。90 个想法在实验过程中长成了一棵分支树:证实无效的尝试停留在原本的分支上,表现出潜力的思路沿着分支继续向下迭代。
第二个设计是内嵌中位数计算与显著性检验。系统中的排行榜不是单纯按数字高低排名的静态表格,它在后端自动汇总多轮实验的数据,实时计算中位数,并且对不同版本的表现进行统计显著性检验。它把别信单次结果这条科学实验纪律,直接封装进了底层工具中,让 agent 在工具层面就无法依据单次噪声做出轻率的判断。
这套机制甚至顺带优化了实验本身的开销。整个实验调用 Claude API 的总费用大约 1200 美元,平摊下来每小时约 20 美元,每局游戏的平均成本约 2.7 美元。而在实验刚开始时,单次测试的成本一度高达 30 美元。Lambda 团队让 Claude 自行调出记录本中的调用日志进行分析,很快排查出某个接口在返回数据时夹带了大量无用的冗余字段。精简掉这些信息后,该接口的调用开销降到了原来的五十分之一,整个实验的综合成本直接降低了 10 倍。至于模型推理消耗的算力,用的是 16 张高性能显卡的空闲时段,对 Lambda 这家 GPU 云服务商来说,边际成本接近于零。
Chuan Li 在演讲中给过一个朴素的定论:这个实验能够取得进展,与其说是 Claude 本身有多聪明,不如说是我们建立了一套机制,强迫 Claude 系统性地把所有探索过程都记录了下来。这句话道出了整套实验的核心方法论。
从这场实验的工程实践中,有三条原则可以直接复用到日常的 agent 系统设计中。第一,指令的位置往往比内容更关键。把详尽的操作手册全部塞在上下文最前端,等模型读到实际需要处理的数据时,前面的指令往往已经失去焦点。设计自己的 agent 应用时,全局背景可以精简放在开头,但最核心、直接决定动作逻辑的那句话,一定要贴在离输入数据最近的位置。这次实验里仅仅挪动了一句关键提示的位置,就带来了成倍的分数增长。
第二,别信单次结果。任何依赖模型输出、并根据运行反馈迭代的 agent 循环,都应该引入多次重复取中位数的机制。7 分和 3 分之间的差距,往往只是环境本身的随机波动。人类开发者面对单次结果时尚且容易误判,agent 如果受单次噪声误导,会建立起虚假的因果假设,而且自己浑然不觉。
第三,先封死作弊通道,再给予 agent 自由。启动任何自动化调优或自主探索任务之前,先排查所有可能的非预期路径:修改评估指标、篡改运行环境,或者绕过模型直接硬编码答案。把所有不应改动的组件设为只读,只保留唯一的测量通道。否则系统最终测出来的只是 agent 寻找系统漏洞的小聪明,而不是业务真正关心的核心能力。
最后交代一下这件事的边界。首先,16 分在方块消除游戏里依然是一个很基础的初级水平,普通人类玩家可以轻松打出远高于此的成绩;其次,这项实验目前没有经过任何第三方团队的独立复现,所有数据均来自 Lambda 团队公开的自述记录;最后,宣传中提及的无人介入也有特定前提:整个实验的基础设施和防护框架完全由人类工程师搭建,而且在第一天分数停滞时,项目执行者 David Hartmann 曾回答过 agent 的一次提问,正是那一次来自人类的提示,直接促成了后续 7 分到 9 分的突破。自动化运行阶段确实没有人手动修改攻略或参数,但整个探索过程的框架始终依托于人类最初的设计。
Chuan Li 在演讲的结尾引用了知名 AI 评测竞赛 ARC Prize 的那句话:只测技能,测不出智能。他紧接着补上了后半句:只测智能,也测不出技能。做研究,两者缺一不可。
而这场耗时两天半的实验真正测量的是记录的价值。整个实验过程中,两个模型的底层参数自始至终没有改变,真正驱动分数从 0 涨到 16 的,是一个能够随时翻阅的实验记录本,和围绕它建立起来的一套工程纪律。