AI Agent 做研究时卡在哪里

一个 AI Agent 最多连续工作六天,用掉数千美元算力,没有人替它写代码,也没有人半路帮它收拾残局。

它把工程工作全部做完了。

然后,原论文作者看完结果,毫不含糊地拒绝了它。

同样的实验做了两次,两次都是如此。

这不是在测 AI 会不会写代码,而是在问一个更难的问题:当代码已经不是瓶颈,AI 能不能自己找到值得研究的问题,并把一条失败的路线救回来?

最新答案是:还不能。

研究者没有再给Agent做标准题

判断 AI 会不会做研究,一直很麻烦。

如果给它一道答案已知的题,当然容易评分。但这种任务考的是解题能力,不是研究能力。真正的研究没有标准答案,甚至没人能保证问题本身值得做。

另一种做法,是让 AI 写论文,再送去匿名评审。这个方法听起来直接,实际噪声很大。同行评审本来就有随机性,审稿人水平和偏好也不一致,而且现在的评审系统已经非常拥挤。

这项新研究换了一种方式,叫「影子评测」(shadow evaluation)。

研究团队选取了两篇尚未公开的 NeurIPS 2026 投稿,把论文最核心、最开放的研究问题交给前沿 Agent。Agent 不会看到原作者的答案,只能像研究者一样自己设计方案、写代码、跑实验、分析结果。

每个 Agent 最多工作六天,并获得数千美元的计算资源。实验结束后,由原论文作者亲自评审 Agent 产出的研究成果。

这个设计有一个很强的地方:出题的人知道什么算真正的进展,也知道哪些路线看起来热闹,其实没有碰到问题核心。

当然,它也有明显限制。样本只有两篇论文,论文作者自己也把结论称为「早期证据」。

工程做完了,研究却没往前走

两个 Agent 都完成了全部工程工作,而且没有人类介入。

这句话单独拿出来,已经很惊人。

它们可以搭环境、实现代码、启动实验、处理结果。换成几年前,这些工作中的任何一项都足以让模型卡住。现在,Agent 已经能在长时间任务里持续执行,甚至把一整套研究工程跑完。

可原作者给出的评审结果很明确:Agent 没有对核心研究问题取得实质性进展,两份成果都应该被拒绝。

研究团队又换了第二种模型和 Agent 脚手架做稳健性检查,类似失败仍然出现。这说明问题至少不只是某个模型偶然失常,也不能简单归咎于某一套提示词。

最容易误判的地方就在这里。

如果我们只看过程日志,会看到大量活动:代码在增长,实验在运行,图表在生成,错误也不断被修复。整个系统看起来非常勤奋。

但研究的进度不能用活动量衡量。

写了多少代码、跑了多少实验、消耗了多少 token,都不等于离答案更近。一个 Agent 可以连续工作六天,也可以连续六天沿着不值得做的方向前进。

五种失败,比「不会写代码」麻烦得多

论文把两次实验中的问题归纳为五类。

第一类:不知道什么结果够得上发表

Agent 会完成任务,却难以判断成果有没有研究价值。

常规软件任务通常有相对清楚的结束条件:测试通过、接口返回正确、页面符合设计稿。开放式研究没有这么明确。一个实验跑出正结果,不代表结论新;一个指标提高,也不代表提高得有意义。

Agent 对「任务完成」很敏感,对「研究门槛」却缺少稳定判断。它容易把一个形式完整的结果,当成一个值得发表的结果。

第二类:研究设计出问题时,缺少创造性补救

实验结果不理想并不稀奇。真正区分研究能力的,往往是下一步怎么办。

经验丰富的研究者可能会怀疑假设、重新定义变量、换掉评测方法,或者意识到问题问错了。Agent 更容易在原框架里继续修补:再改一组参数,再加一次实验,再让结果看起来完整一点。

它能在路线内优化,却不擅长决定这条路线是否应该放弃。

第三类:走进死胡同时,不会有效回退

写代码时,回退通常很具体。最近一个提交出错,撤销改动,恢复测试即可。

研究中的回退不同。它可能要求你承认过去两天的实验没有信息价值,重新检查最初假设,甚至推翻自己已经完成的大量工作。

人也会受到沉没成本影响,Agent 同样会。区别是 Agent 可以更快地产生更多「已经完成的工作」,于是错误方向上的沉没成本积累得更快。当系统把持续执行当作默认目标,它很容易把坚持误认为进展。

第四类:缺少资源意识

六天和数千美元听起来不少,但对开放研究来说仍然有限。

一个可靠的研究者会持续估算:这项实验需要多久?剩余算力够不够?如果本轮失败,还有没有时间换路线?哪个不确定性最值得优先验证?

Agent 能调用资源,却不一定理解资源的机会成本。它可能在低价值实验上消耗大量预算,等到关键问题暴露时,已经没有足够时间重新开始。

第五类:工作越久,离最初目标越远——指令漂移

Agent 在执行过程中会遇到大量局部问题。环境装不上、指标异常、脚本报错、结果不稳定。每解决一个局部问题,新的上下文都会进入工作记忆。

时间一长,它可能还在认真干活,却已经悄悄改写了任务:从「回答核心研究问题」,变成「让这套实验顺利跑完」;从「验证新方法是否成立」,变成「产出一组看上去能解释的结果」。

局部目标越来越具体,原始目标越来越模糊。

程序员对这种状态并不陌生。修着修着,测试全绿了;回头一看,用户最初的问题还在那里。

「能做事」和「知道该做什么」正在分开

过去我们担心 AI 做不了长任务:上下文会丢,工具会报错,代码跑不起来。

这些问题还没有消失,但能力边界已经往前移动。现在的 Agent 能完成越来越长的工程链条。于是新的瓶颈开始暴露:它做事很快,却不一定知道什么事值得继续做。

这项研究并没有证明 AI 永远做不了研究。它证明的是,在这两个开放式案例里,工程自动化没有自动带来研究自动化。

两者中间隔着判断。

研究判断包括挑选问题、设定证据门槛、识别路线失败、决定何时回退,以及在有限预算里优先消除哪个不确定性。这些工作通常不产生代码,却决定代码有没有价值。

也正因为如此,「AI 已经完成全部工程」与「AI 没有完成研究」可以同时成立。

对程序员来说,这个结果更近

很多人可能觉得 AI 做科研离日常开发太远。其实论文里的五类失败,几乎可以原样映射到软件项目。

你让 Agent「把注册流程做完」,它可能写完接口、页面和测试,却没有发现真实目标是降低新用户流失。

你让它「修复并发问题」,它可能让测试不再报错,却没有确认状态到底归谁所有,竞态只是被更慢的执行顺序掩盖了。

你让它「重构这个模块」,它可以产出几千行漂亮代码,却没有证明新结构比原结构更容易维护。

这些都不是编码能力问题,而是验收标准和方向判断出了问题。

当 AI 写代码越来越快,团队反而更需要主动压低无效产出。代码便宜之后,写错方向的代码也会变得异常便宜。

形式越完整,推翻它的心理成本越高。

怎样避免Agent勤奋地做错事

如果我们接受 Agent 暂时不擅长开放式判断,就不该只靠一句提示词让它「更聪明」。工作流需要主动设置刹车。

第一,写清成功标准,也写清失败标准。

不要只告诉 Agent 最终要交什么,还要定义什么证据出现时说明路线不成立。没有失败标准的任务,很容易无限修补下去。

第二,把长任务切成可证伪的阶段。

第一阶段验证需求,第二阶段验证最危险的假设,第三阶段才扩大实现。每一阶段都允许停止,不要默认 Agent 必须一路做到最终成品。

第三,要求它记录假设,而不只是记录进度。

「今天新增了 12 个文件」没有多少决策价值。「我们假设瓶颈来自数据库查询,但现有数据尚未支持」才有价值。后者能帮助人判断是否需要换方向。

第四,预先规定回退条件。

例如连续两次实验没有改善,就回到方案选择;预算消耗达到 40% 仍未验证核心假设,就停止扩展功能;关键结果无法由独立方法复现,就不进入发布阶段。

第五,把验收交给没有参与执行的人。

Agent 自己生成方案、自己实现、再自己宣布成功,很容易把过程完整误认为结果正确。独立评审能强迫系统回到最初目标,而不是顺着执行日志继续讲一个自洽故事。

代码不是研究,忙碌也不是进展

这项实验最让我在意的,不是「两篇都被拒」本身,而是 Agent 已经足够强,强到可以制造非常像进展的东西

它会写代码,会跑实验,会修错误,会生成一份结构完整的结果。只看过程,我们很容易相信它快要成功了。

原作者的评审把这个幻觉戳破了:所有工程都做完,核心问题仍然可能没有前进一步。

对今天的 AI 团队来说,这比「模型偶尔写错代码」更值得警惕。代码错误还能被测试抓住,方向错误却可能带着测试、文档和漂亮图表一起通过内部汇报。

以后人与 Agent 的分工,未必是人提需求、AI 写代码这么简单。更可靠的分工可能是:AI 扩大执行能力,人负责选择问题、设置停止条件,并判断结果是否真的改变了我们对问题的认识。

Agent 可以很勤奋。我们得负责确保它没有在错误方向上勤奋。


资料来源

  • Peter Kirgis、Sayash Kapoor、Arvind Narayanan 等,Can AI agents conduct open-ended AI research? Early evidence from two case studies
  • arXiv:2607.27191

说明:论文只包含两个案例,属于早期证据,不能据此推断所有模型、Agent 框架或科研领域的普遍能力。文中「完成全部工程」指论文实验条件下由 Agent 无人协助完成工程执行,不代表其完成了完整研究。