自动驾驶实验室不再只是"黑盒炼丹":SynAgent 让 LLM 智能体边做实验边写"科学理解文档"
你有没有想过一个问题:现在很火的自动驾驶实验室(self-driving lab),跑完一轮优化之后,到底给你留下了什么?
答案通常是:一批优化好的样品,加上一堆数据。至于"为什么这个条件行、那个条件不行",你得自己去数据堆里翻。决策层那个贝叶斯优化器(BO)是个黑盒——它不会告诉你它为什么提议下一个条件,也不会总结这场实验到底建立了什么认知、还有什么没搞清楚。说句不好听的,实验室自动化到现在为止,加速的只是假设的检验,而假设的生成和修正仍然被关在闭环外面,靠的是人脑。
东京大学团队这篇论文(arXiv: 2609.18598)就是冲着这个缺口来的。他们做了个叫 SynAgent 的框架,让多模态 LLM 智能体直接操作自动化实验系统,而且把 campaign 的主要产出从"优化好的样品"换成了一份显式的、可修正的、人可读的合成过程理解文档。在 LiCoO2 薄膜沉积的 18 次自主实验中,它不仅长出了高结晶度的薄膜,还真的"悟出"了衬底温度如何支配结晶——发现了 650°C 附近一个陡峭的结晶阈值,和 650–690°C 这个狭窄的最优生长窗口。
我的总体判断:这不是一篇刷榜论文,而是一次范式演示。它值钱的点不在于比 BO 快多少,而在于把"实验伙伴"这个概念落地了——智能体自己决定新数据该怎么分析,自己构建假设,还故意去做那些它预测会失败的实验来压力测试自己的理解。当然也有明显的坑,后面细聊。
📖 论文信息
- 标题:Hypothesis-Driven Autonomous Materials Synthesis with Multimodal LLM Agents
- 作者:Izumi Takahara, Kazunori Nishio, Akira Aiba, Shigeru Kobayashi, Takao Nakajima, Taro Hitosugi, Teruyasu Mizoguchi
- 机构:东京大学 Institute of Industrial Science / Department of Chemistry、Rigaku Corporation、MITSUI KNOWLEDGE INDUSTRY
- 链接:https://arxiv.org/abs/2609.18598(2026 年 9 月 16 日提交)
🎯 问题动机:黑盒优化器到底缺了什么
先说清楚 SDL 的现状。这类系统就是"机器人做实验 + 机器学习规划下一步"的闭环,过去几年在光催化剂配方、功能薄膜、无机粉体、半导体纳米晶上都实现了数量级的加速。业界最成熟的方案——比如多伦多 Acceleration Consortium 那套——决策层基本都是贝叶斯优化。
但 BO 当决策层有两个绕不开的毛病,这篇论文把它们点得很透。
第一个,数据利用太抠门。现代实验平台把模块化合成和测量仪器都连起来了,一次实验产出衍射图谱、电镜照片、光谱、物性测量一大堆数据,可优化器眼里只有一两个手工定义的标量指标。剩下那些数据?基本浪费了。做过实验的人都知道,很多时候真正的信息恰恰藏在那些没被写进目标函数的信号里。
第二个更要命,不透明。BO 不会解释它为什么提议这个条件,也不会告诉你积累下来的测量到底建立了什么、还缺什么。campaign 结束,你拿到一个最优点,然后呢?没有然后了。
那 LLM 能补什么?作者列了四条:自然语言推理可检视、模型本身编码了大量无机合成知识(微调过的 LLM 在可合成性预测上能比肩专用模型)、多模态能力可以直接读异构实验数据、推理加工具调用让它能当自主智能体用。
说到这里得泼点冷水。LLM 进物理实验室这事,2025 年已经有不少工作了,但论文自己承认,现有框架大多"remain largely passive"——用预定义的工具集、单一数据模态在跑,对系统的认识是隐式的。而且 LLM 推理有已知偏差:锚定早期探索选择、过度信任先验知识和听起来合理的假设。一个开局就错的信念,可能整场 campaign 都没被纠正。
这个观察很关键,因为它直接决定了 SynAgent 最核心的设计——verify-falsify 机制。带着这个伏笔往下看。
🏗️ SynAgent 架构:四步循环 + 两个关键机制

图1:SynAgent 框架总览。a,四步自主循环:实验提议(Step 1)→ 合成与测量(Step 2)→ 基于 skill 的数据分析(Step 3)→ 反思并更新理解(Step 4),所有推理由多模态 LLM 智能体完成。b,自适应 skill 生成:skill 库里没有合适的分析技能时,main agent 委托 subagent 创建并注册新 skill,注册后在后续迭代中复用。c,通过 verify–falsify 推理演化理解:每次提议都设计为验证或证伪当前理解,实验结果的反思会强化或修正它。
框架是 multi-agent 结构:一个 main agent 负责规划实验和解释结果,若干 subagent 负责生成分析技能。所有 agent 由 GPT-5.5(OpenAI 的多模态模型)驱动,基于 OpenAI Agents SDK 实现。
两个机制值得展开。
🔧 机制一:自适应 skill 生成——不预定义任何分析能力
这个设计我觉得是全文最漂亮的地方。传统 SDL 的分析流水线是设计时就定死的:XRD 数据来了跑峰拟合,SEM 图像来了跑某个分割模型。SynAgent 反着来——campaign 开始时 skill 库是空的,一个分析能力都不预定义。
流程是这样的:新数据来了,main agent 先看 skill 库里有没有匹配的,没有就委托一个 subagent 现场写。subagent 拿着实际测量数据设计分析代码,验证通过后注册入库,后面的迭代直接复用。论文里那句话说得很好:"The analysis repertoire therefore grows over the course of the campaign rather than being fixed at design time."
技术细节上,每个 skill 由两部分组成:一个元数据文档(SKILL.md,描述技术、材料、仪器、指标、适用范围),加一个分析模块(analyze.py,单一函数,读取标准化的 MaiML 格式测量文件,返回结构化结果)。生成 agent 带 code-execution 工具,在固定的工具调用预算内迭代写码跑码;如果数据引用了图像,图像会作为 vision input 一起喂给生成器。注册前必须通过 self-test,失败了回馈错误信息重写,最多试 3 次。main agent 每次迭代最多请求 1 个新 skill,prompt 里明确要求优先复用已有的。
这个"现场写分析代码"的思路,说实话让我想到我们自己项目里给 LLM 配工具的老问题:预定义工具集永远不够用,开放代码生成又怕它乱来。SynAgent 的折中挺务实——代码生成但带 self-test 门禁,写一次终身复用,每轮最多新增一个。收敛性和开放性都照顾到了。
🧠 机制二:verify–falsify——故意做"注定失败"的实验
这是另一个核心,也是回应前面说的 LLM 信念偏差的方案。
逻辑起点是一句挺有哲学味的话:如果目标只是优化,那没理由去测试预测会失败的条件。但"理解"是关于过程在哪里成功、在哪里失败的一组声明——而这种声明,只有在预测的失败真的被观察到时才算被确认。
具体做法:智能体维护一份显式的自然语言文档 <understanding>,内容是"合成条件如何支配结果"的一组声明,每个循环更新。每次迭代从当前理解推出两种提议:
- verify 提议:针对预测会成功的条件;
- falsify 提议:针对预测会失败的条件。
两种模式下都必须白纸黑字承诺检验哪个假设、给出具体数值预测。模式交替进行,从 verify 开始。
判定规则有点意思:不设数值容差。verify 模式下测量和预测都表明成功就算 supported;falsify 模式下都表明失败也算 supported。数值预测只是个"具体承诺",结果落不落在预测的类别里由 agent 自己判断。被支持了就指明哪条 claim 得到强化,而且不允许外推到测试范围之外;被推翻了就做溯因推理(abduction),指出受质疑的 claim,给出最合理的替代解释,然后重写整份理解文档。
多模态这块也落到实处了:反思时 agent 直接把 SEM 图像本身作为 vision input 看进去,和测量目标、skill 提取的描述符一起推理。会话管理上有个细节——最近 3 次迭代的 SEM 图像会重放,更早的图像替换成 agent 当时记下的文字形态描述。这是典型的上下文窗口妥协,但用"自己写的观察笔记"来替代原始图像,比直接丢掉要聪明。
🔬 实验台:LiCoO2 (001) 薄膜,一个变量,18 次机会
实验平台是团队自己的 dLab——把模块化合成和测量仪器物理互联的数字实验室。材料体系选在 Al2O3 (0001) 衬底上用 RF 磁控溅射生长 (001) 取向 LiCoO2 薄膜,靶材是烧结的 Li1.2CoOx。这个体系的高结晶性对应着 Li 和 Co 离子占据交替阳离子层的有序层状结构。
固定条件:RF 功率 80 W,沉积 1.5 小时,总气压 0.50 Pa(Ar 0.45 / O2 0.05)。唯一可控变量是衬底温度,agent 从 200–750°C、步长 10°C 的网格里挑,预算 18 次迭代。
表征用 XRD(Rigaku SmartLab XE,2θ 范围 10–120°)和 SEM(JEOL JSM-IT700HR,像素 5.0 nm),所有数据以 MaiML 文件交付。优化目标是 XRD 中 003 与 006 衍射峰的强度比 \(I(003)/I(006)\)——越大结晶度越高。
有个背景值得一提:这个任务的温度网格、目标和此前同一平台上 BO 驱动的 campaign 完全一样,这次只是把决策层换成 SynAgent。这为后面的对比埋了个伏笔。
📊 实验结果:18 次实验,3 次被打脸,两次大突破都来自"证伪"
第一次实验就逼出了两个 skill
首次实验(600°C)的数据一到,agent 现场生成了两个 skill(图2a):
lco_peak_ratio_xrd:在参考位置附近的窗口内搜索 003 和 006 峰,计算强度比;lco_bright_particles_sem:这个更有意思——agent 在 SEM 图像里注意到膜表面散布着亮颗粒(bright particles),这是"肉眼可见但不属于任何预定义分析的特征",于是它自己写代码量化亮颗粒面积占比、颗粒数、等效直径和背景纹理统计。返回值和人工分析一致。
关键是,这两个 skill 在后面 17 次实验里未经修改直接复用。分析能力真的是"长"出来的,不是设计出来的。
18 次实验全记录

图2:a,agent 从首次实验(600°C)数据生成的两个分析 skill——XRD 峰比分析和 SEM 亮颗粒分析。b,\(I(003)/I(006)\) 随提议衬底温度的变化,数字为迭代编号,蓝圆点为 verify 提议、红菱形为 falsify 提议,实心/空心分别表示预测被支持/推翻;竖虚线标出 670°C(第 13 次迭代,全场最高比值),内嵌图为 400、670、730°C 下薄膜的 SEM 图像。c,SEM skill 返回的三个形态描述符随温度的变化。
我把 Supplementary Table 1 的完整数据整理成了表格,这是全文信息密度最高的一张表:
| 迭代 | 模式 | 温度 (°C) | 预测值 | 实测值 | 判定 |
|---|---|---|---|---|---|
| 1 | verify | 600 | 8.0 | 0.001 | refuted |
| 2 | falsify | 700 | 0.001 | 35.6 | refuted |
| 3 | verify | 710 | 34.0 | 34.8 | supported |
| 4 | falsify | 400 | 0.010 | 0.081 | supported |
| 5 | verify | 720 | 32.0 | 31.8 | supported |
| 6 | falsify | 250 | 0.005 | 0.056 | supported |
| 7 | verify | 730 | 29.0 | 34.9 | supported |
| 8 | falsify | 500 | 0.050 | 0.001 | supported |
| 9 | verify | 740 | 33.0 | 35.5 | supported |
| 10 | falsify | 650 | 0.200 | 54.9 | refuted |
| 11 | verify | 660 | 52.0 | 60.2 | supported |
| 12 | falsify | 320 | 0.050 | 0.043 | supported |
| 13 | verify | 670 | 58.0 | 61.6 | supported |
| 14 | falsify | 750 | 34.0 | 40.9 | supported |
| 15 | verify | 680 | 60.0 | 55.0 | supported |
| 16 | falsify | 620 | 1.0 | 0.001 | supported |
| 17 | verify | 690 | 48.0 | 58.2 | supported |
| 18 | falsify | 630 | 2.0 | 0.001 | supported |
18 次实验,15 次 supported,3 次 refuted(第 1、2、10 次)。注意判定是按类别而非数值——第 4 次在 400°C 预测 0.010 实测 0.081,偏了 8 倍照样算 supported,因为都落在"失败"这个类别里。
逐次看叙事,真的很像在看一个研究生摸索工艺窗口的过程:
第 1 次(verify, 600°C):agent 带着"600°C 接近最优"的先验预期上场,实测 0.001——直接打脸。它推测失败和结晶不完全、形貌不均或杂相偏析有关,把最优区间修正到 600°C 以下。
第 2 次(falsify, 700°C):在修正后的图景下,700°C 被预测会失败。结果呢?比值 35.6,有序膜到手。原文那句"This single refutation overturned the revised picture"——单次证伪推翻整个修正图景。agent 重新组织理解:存在温度激活的结晶阈值,位于 600–700°C 之间。
第 3–9 次:verify 把有序生长从 700°C 一路扩到 740°C(建立平台区),falsify 在 250–500°C 确认低温无有序化。稳步积累。
第 10 次(falsify, 650°C):这是决定性的一步。600°C(失败)和 700°C(成功)之间有块没采样的空隙,agent 主动去探,预测 0.2,实测 54.9——当时全场最优。"阈值接近 700°C"的论断被推翻,转变区间收窄到 600–650°C。
第 11–17 次:660°C → 60.2;670°C → 61.6(全场最高);680/690°C → 55.0/58.2;750°C → 40.9(坐实"平台区 robust 但次优");620/630°C 彻底失败,把突变阈值夹在 630–650°C 这个 20 度区间里。
最终理解:一张温度分区图

图3:上图为截至每次迭代获得的最优 \(I(003)/I(006)\) 比值,灰三角标出预测被推翻的迭代(1、2、10);下图为每次迭代提议的衬底温度(蓝圆点 verify、红菱形 falsify),叠加在 agent 不断演化的理解所划分的温度区域上,虚线为各阶段 agent 认定的最优温度。
campaign 结束时,agent 的 <understanding> 文档把温度轴分成了四个区域:
| 温度区间 | 区域性质 |
|---|---|
| < 630°C | 无有序化区域 |
| 630–650°C | 转变区间(阈值夹在 20 度内) |
| 650–690°C | 有序生长窗口,最优近 670°C |
| 700–750°C | 有序但次优的平台区 |
每条声明都绑定了支持或推翻它的具体实验。这就是论文标题里 "human-readable understanding" 的实际形态。
SEM 形态学证据还补了 XRD 补不上的信息:250–320°C 的膜表面几乎无特征,亮颗粒面积占比约 0.1%,agent 暂定为"迁移率受限下形成的连续膜";400–630°C 亮颗粒覆盖表面 4–6%,被解释为结晶不完全或表面偏析的可能迹象;700–750°C 平台区是连续膜但表面粗糙化,agent 把较低的比值归因于缺陷、织构、应变或轻微的化学计量偏移这类更微妙的原因。
最让我印象深刻的是这句总结:两次最大的进展——700°C 发现有序生长、650°C 发现更优窗口——都来自 falsify 提议。论文原文把这个道理讲得很透:"It is when a predicted failure does not occur that the agent learns something it could not have anticipated."预测失败却没失败的时候,才是学到预期之外东西的时候。实验的信息量,正比于你对失败预测的置信度。
🤔 我的判断:范式演示很漂亮,但别当成性能声明
先说亮点。
一,产出的重新定义是真贡献。 同样到达最优条件,BO 留下的是最优点加一堆原始数据,SynAgent 额外留下一份把温度轴分四区、定位阈值、标注每条 claim 证据链的文档。对材料学家来说,后者的长期价值明显更高——下次换体系、换设备,这份理解是可迁移的起点,而 BO 的后验模型基本是次抛的。
二,verify-falsify 是冲着 LLM 真实弱点去的。 前面说过 LLM 有锚定偏差和过度自信的问题,这个机制说到底就是用波普尔式的证伪纪律强制 agent 去踩自己预测的雷区。三次 refuted 迭代全都触发了理解的大幅重组,这个因果链在数据里是看得见的,不是嘴上说说的。
三,skill 自生成把"分析"也闭环了。 之前大多数 agentic SDL 工作,分析流水线还是人写的。这次连"怎么分析新数据"都交给了 agent,亮颗粒那类没被任何预定义流程覆盖的特征能被主动捕捉——这是人写 pipeline 时很难预见的东西。
再说问题,有几个地方让我皱眉。
没有受控对比是硬伤。 作者自己承认,跟 BO 的对比只是定性的——任务相同、都到达了最优,仅此而已。要严格控制对比得在相同预算下重跑两套决策层,但物理实验是顺序性的,做不到。这话诚实,但也等于承认"SynAgent 比 BO 更好"这个说法全文没有任何数据支撑。论文的定位是"补充而非替代 BO",这个自我定位是清醒的。
单次采样的噪声问题。 每个条件只访问一次,650–690°C 窗口内 61.6、60.2、58.2、55.0 这些"最优比值"之间的差异,完全可能落在 run-to-run 变异之内。作者承认了这点,但读者看那个"670°C 最优"的结论时还是要捏把汗。
整个判断链条压在 LLM 自己的推理上。 skill 的正确性只在 self-test 范围内验证;supported/refuted 的判定、溯因解释,全是 LLM 自说自话。而且先验知识可能通过分析工具的设计悄悄渗进 campaign——比如那个峰比 skill 的窗口怎么定,本身就编码了"该看哪里"的偏见。作者建议引入 human-in-the-loop 或专门的验证 agent,我认为这几乎不是"建议",是下一阶段必须要做的事。
还有个我自己没完全想通的点:verify/falsify 目前是死板地交替,从 verify 开始。如果 understanding 已经很成熟,还硬要一半预算花在证伪上,效率划不划算?作者也把自适应切换策略列为未来方向,说明他们自己也意识到这个交替策略是个占位符。
跟同期工作比一下位置。2025 年以来 LLM agent 进实验室的工作不少,比如 CRESt 那类用视觉语言模型加知识辅助 BO 做多元催化的方案(Nature 2025),但那些系统里 LLM 更多是辅助角色,决策核心还是 BO。SynAgent 的差异化在于把 LLM 推到决策层正中央,并且把"理解"而非"优化"设为第一产出。在这个细分定位上,它确实是独一份——但注意这是在单变量、单体系上跑通的,推广到高维条件空间才是真考验。
💡 工程启发
如果你在做 SDL 或者 agentic 实验系统,这篇论文有三样东西可以直接借鉴:
- 显式理解文档 + 证据链绑定。不管决策层用什么,让系统维护一份"当前我们相信什么、依据是哪几次实验"的活文档,成本极低,价值极高。
- 证伪式主动实验设计。哪怕你用 BO,也可以在 acquisition function 里加一项"最能推翻当前信念"的采样倾向——最大信息增益的点往往不是预期最优的点。
- skill 库自生长 + self-test 门禁。预定义分析流水线永远不够用,让 agent 现场写分析代码但卡一道自动验证的门槛,是个务实且可复用的模式。
收个尾。这篇论文让我想起一句话:好的自动化不是替人做实验,而是让机器学会像人一样"想明白"实验。SynAgent 离这个理想还远——单变量、无受控对比、判断链条全靠 LLM 自觉——但它把"campaign 的产出应该是一份可检验的理解"这个命题立住了。接下来如果有人在多变量体系上复现这个范式,再加一层独立的验证 agent,这事就真的有意思了。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我