按图施工——Oota et al.《Do LLM Agents Execute the Plans They Declare? From Planning-Mode Declaration to Pattern-Specific Execution》(arXiv:2609.38108)费曼式解读

昨天我们讲了他们如何学会开站会:每天上工前十分钟,所有人拢在毛坯房里,盘点昨天干到哪、今天按哪份图纸来、几点收工。站会一开,工人不必满屋子追着工头问,工头也不必满屋子跑。第一重门——统筹——算是迈过去了。

按图施工——Oota et al.《Do LLM Agents Execute the Plans They Declare? From Planning-Mode Declaration to Pattern-Specific Execution》(arXiv:2609.38108)费曼式解读

还是那个装修队。

昨天我们讲了他们如何学会开站会:每天上工前十分钟,所有人拢在毛坯房里,盘点昨天干到哪、今天按哪份图纸来、几点收工。站会一开,工人不必满屋子追着工头问,工头也不必满屋子跑。第一重门——统筹——算是迈过去了。

但故事没完。站会开完的第二天,工头把一沓图纸钉在墙上,跟八个工人交代:这单业主年轻,要的是北欧极简,黑白灰,少即是多,谁也不许自由发挥。工人们点头,说放心吧师傅,按图施工。

两周后业主来验收。推开门,他愣住了:天花板上盘着石膏线,墙角立着两根罗马柱,灯槽里贴着金箔,电视背景墙是一块猩红的大理石。极简没有,极繁倒是很努力。

工头把工人叫来问。工人也委屈:每一锤都有理由啊——这根罗马柱是顺手,金箔是剩料不用浪费,红大理石是厂家促销。单看每个决定,都不算离谱;合起来看,跟图纸上那个北欧风,已经没有关系了。

我看着这个场面,忽然想到了 AI 里那群叫 agent 的东西。它们上岗前也都说得好好的:我计划先这样、再那样,一共分几步,每步干什么——计划书写得清清楚楚,像模像样,有的还会分点编号,看着特别专业。可真干起来,你去看它们的施工记录,图纸早就不知道扔哪去了。有研究者把这毛病认真量化了:在三个基准测试上,只有百分之二十二到百分之四十五(22%-45%)的轨迹,真正守住了自己声明的计划结构。也就是说,超过一半的时候,agent 嘴上说的是一套,手上做的是另一套。

这其实有点黑色幽默——装修队这个毛病,人类骂了几千年,写的监理手册摞起来比人高,最后还是靠验收不合格返工来兜底;agent 把它原封不动地继承了,还继承得很有统计显著性。区别只在一点:装修队歪了,业主会当面骂;agent 歪了,它自己不觉得,日志里也不会有一句道歉。

今天要讲的这篇论文,量的就是这道缝:计划的声明和计划的执行之间,那条又深又安静的鸿沟。它也是执行者要过的第二重门——诚实。上一篇讲"想清楚下一步",这一篇讲"定了就得照做"。

🎼 一、会写谱,不等于会弹琴

先说清楚一个被很多人混为一谈的问题。

让一个 AI agent 啃一个长任务,笼统讲就是两件事:生成计划,执行计划。听起来像一件事的两半,其实没那么简单。论文一开始就把它拆开了:把活干成,需要两种截然不同的能力。

第一种,选对计划。任务摆在面前,先想清楚走哪条路——是整体规划一步到位,还是摸着石头一步一步来,还是先分阶段再逐层拆解,抑或干脆大范围试错、不行就退回来。这一步考验的是判断,是品味,是"见任务知打法"的阅历。同样是从城东到城西,赶时间走高速,怕堵车走环线,想省钱坐公交,想去顺路买杯咖啡就扫街——任务本身的形状,加上你对路况的预判,共同决定了哪条路是对的。

第二种,忠实执行。路选好了,脚就得按路上走。计划说分三步,就三步;说先干后湿,就先干后湿;说这一步不许动别的心思,就别动。这一步考验的不是聪明,是纪律。是三百条消息滚过之后,还记得开工第一天墙上钉着的那张纸。

会写谱和会弹琴,是两种功夫。一个乐手可能识谱极佳,目光一扫肖邦的谱子心里全有数,可手指不听话,弹出来全是即兴爵士;另一个乐手即兴天赋惊人,拿到谱子却烦躁,弹两页就忍不住加花。你把两种功夫压在同一套机制上,要求他既当作曲家又当演奏家,结果就是:你永远搞不清一场演砸的音乐会,问题出在谱子还是出在手上。

这正是现有 planner-executor 系统的尴尬。名字里分工明确:planner 负责生成计划,executor 负责照着做。实际却常常一团浆糊——因为执行那一端是个语言模型,它干活的方式是"一步步重新决策"。每一步它都看着当前的场面临场想:接下来我干嘛?计划书?计划书是三条消息之前写的,早被滚动的历史冲得模模糊糊了。

于是系统失败了,你只看到任务没完成。可到底是计划本身就错了,还是计划本来挺对、执行给做歪了?从外面看,这两种失败长得一模一样,像一场办砸的婚礼——你没法只凭"婚礼搞砸了"这五个字,判断是策划书离谱,还是执行的人临场改了主意:花艺师觉得白玫瑰单调,擅自换了红玫瑰;司仪觉得流程太闷,即兴加了个环节。每一个改动单看都有人情味,合起来就是一场别人的婚礼。

诊断不了,就无从对症下药。把"选错"和"做歪"混在一起谈优化,等于开着一辆方向盘和油门缠在一起的车,你还不知道它为什么总撞墙。更糟的是,很多人连车里有两种毛病这件事都没意识到——看到成功率低,直觉反应是计划写得不够好,于是去改进 planner,给提示词加花样。方向可能完全错了:也许计划本来就对,是执行悄悄背叛了它。

这篇论文的全部野心,就是把这个糊涂账拆开:把"选"和"做"分开度量,看看执行这一端到底塌了多少,以及——能不能用工程手段把它修起来。

🗣️ 二、agent 的嘴,agent 的手

先把"做歪了"这件事量化,这也是全文最让人坐不住的发现。

现在最主流的做法叫 Plan+ReAct:开工前,先让模型写一份计划,声明接下来要干什么;然后进入 ReAct 循环——观察环境、想一步、做一步,边干边看。这个范式看上去很合理,甚至有仪式感:先有计划,后有执行,多么井井有条。很多系统的演示视频里,那份开工宣言写得头头是道,外行看了要鼓掌。

问题出在执行的微观机制上。ReAct 的每一步,模型都在做一次小决策,而做决策时它面前摊着的是全部历史:环境反馈、上一步的动作、之前写下的每一行计划。历史越长,摊得越厚,注意力越散。计划这个东西,在三条消息之前写下时是有分量的;等历史滚到三百条消息,它就变成了文档堆里一张发黄的纸。纸还在,没人看了。

举个例子。你开导航,软件算了半天,说:全程高速优先,预计一小时四十分钟。你点头出发。结果每个路口你都凭感觉拐:这条辅路看着顺,拐一下;那个商场好像有洗手间,绕一脚;听前面说高速堵车,下来走国道吧。一小时四十分钟的规划,开成了三个小时的城市漫游。导航没坏,是你每个路口都重新决策,而重新决策的时候,你懒得再看规划了。导航的悲哀不是算错路,是它的话你只听前三个路口。

agent 就是这个司机。研究者把通用 Plan+ReAct 的执行轨迹和声明的计划逐一比对,比对的指标叫结构保持——声明说分四步,执行是不是四步?声明说第一步先做 A,执行是不是先做 A?声明说这几步之间有先后依赖,执行是不是按依赖来?结果让人坐不住:在三个基准上,只有百分之二十二到百分之四十五的轨迹,守住了自己声明的计划结构。

换句话说,在相当一部分运行里——往往还是过半数的那些——那份开工前写得煞有介事的计划,从头到尾只是个仪式。agent 说完"我要这样做"之后,转身就凭现场的感觉乱走——和导航软件里那个每个路口都凭感觉拐的司机,和毛坯房里那个把北欧极简做成巴洛克的工人,一模一样。

而且计划越长,丢得越狠。这几乎是必然的:计划越长,执行中滚动的历史越厚,旧计划在注意力里的权重就越低。五步的计划还容易记得,五十步的计划就是写给日记本的。声明的时越庄重,丢弃的时候越无声。这条缝,论文给它起了个名字:计划声明-执行鸿沟。名字很学术,说的就是装修队那句老话——图纸上是一套,现场是一套。

值得强调的是,这个鸿沟不是模型的"态度问题"。不是模型故意撒谎,而是现有机制的注意力结构决定了:旧承诺会过期。就像你不能怪一个人三周后忘了便利贴上写了什么——要怪就怪那套把便利贴贴在流水线传送带上的办公系统。承认这一点很重要,因为它决定了修法——你不能靠呼吁一个会过期的脑子更自律,你得给它一个不会过期的机制。

🧭 三、四种走法

鸿沟找到了,怎么修?论文的第一步动作,是先给"计划"这个东西做个分类。

这步棋看似平淡,其实关键。你如果不知道计划有哪几种,就没法谈"按哪种执行"。就像你要给出行方式立规矩,得先知道世上一共几种走法。作者们把语言模型会声明的计划,归成了四种模式。这四分法本身就很耐看,每种模式后面都是一个清晰的直觉。

第一种,预定义模式,英文叫 Predefined。开工前整张蓝图全在手,步骤、顺序、细节全部定死,执行就是照章办事。这像坐直达巴士:路线固定,站站都停,司机不征求你的意见,你要做的只是别提前下车。它的优点是确定性——只要不脱轨,结果就长图纸那样;缺点是不变通——路上塌方了,巴士也不会给你换道。适合那种路径明确、变数极少的任务。

第二种,顺序模式,Sequential。只定下一步,干完这一步,看着结果再定下一步。像徒步导航:它不告诉你全程路线,只在每个路口告诉你拐还是不拐。灵活是真灵活——每一步都基于最新情况,但眼光也是真短——你永远不知道拐完这个路口,下一个路口等你的什么。适合那种一步一景、没法预判太远的任务。

第三种,分层模式,Hierarchical。先把大目标拆成几个阶段目标,每个阶段目标再拆成具体动作,一层管一层。像自驾跨城:导航先把你带到服务区,到了服务区,再根据路况决定下一程走哪条国道。大方向有人管,小细节临场定,是四种模式里最像"管理"的一种——先定骨架,再填血肉。

第四种,搜索模式,Search。不预设任何路线,在解空间里反复试探、碰壁、回溯、换方向。像全城扫街找一家没记住名字的店:每条巷子都探头看一眼,不对就退回来,换条巷子再看。它最笨,也最不怕错——因为回头路是它设计的一部分。适合那种目标明确但路径完全看不清、只能靠试的任务。

四种走法,没有哪种先天高贵。它们的差别不在好坏,在适配:任务的形状、环境的样子、还有干活那位的脾气,共同决定哪一种该上场。这个"适配性"的直觉,后文的数据会狠狠地确认它。现在先记住这四种模式的名字和脾气,因为论文的解法,就是建立在"先声明走法,再按走法派活"这个朴素的次序上。次序对了,很多后面的麻烦自然就有了着落。

🚦 四、把图纸变成派单

现在讲这篇论文的核心设计,名字叫 Planning-as-Routing——规划即路由。

装修队的世界里,"按图施工"四个字喊了几十年,真正靠它管住现场的没几个,因为口号斗不过现场。什么时候口号管用了?当图纸不再钉在墙上供参考,而是变成派工单系统的时候:拆哪面墙,工单上写着;用什么标号的水泥,工单上写着;贴砖留多宽的缝,工单上写着。工人没有临场改工单的权限,想改,回去走流程。

Planning-as-Routing 干的就是这件事。它把一个 agent 的执行流程劈成两段。

第一段,声明。面对一个新任务,语言模型先做一个很轻量的决定:这个任务,该用四种模式里的哪一种?Predefined、Sequential、Hierarchical 还是 Search?这一步是一次性的,像工头接单时扫一眼图纸,定了基调。模型在这一步说的话很少,但每个字都有下游后果——它不再是宣言,而是一张派单的抬头。

第二段,路由。一个确定性的路由器,根据声明的模式,把任务分发给对应的模式专用执行器。这四个执行器是各自独立、各按各的规矩干活的:声明了搜索,就走搜索那套固定的试探-回溯流程,碰壁就退,退了就换;声明了分层,就按树状拆解一层层推进,上层目标没完成不许跳下层;声明了预定义,就照着定死的步骤走,一步不多一步不少;声明了顺序,就老老实实每步只定下一步。

这里最要紧的是"确定性"三个字。路由器不是语言模型,执行器内部的流程也不靠模型现场自由发挥——声明了什么模式,执行就是什么形状。这正是它和 Plan+ReAct 的本质区别:Plan+ReAct 的计划是写给人看的宣言,模型随时可以、实际上也经常在执行中抛弃它;Planning-as-Routing 的计划是写给机器的路标,路标之后是一条固定的轨道。宣言的效果取决于说话人的记性,轨道的效果只取决于铺轨的工艺。

打个比方:前者是婚礼上的誓言——庄重,真诚,但没有任何机制保证兑现;后者是婚前协议——每一条都对应着可执行的、绕不开的安排。不是说誓言不好,而是当兑现率只有百分之二十二到四十五的时候,该换思路了:把诚实从一种美德,变成一条机制。

论文里管这四个执行器叫 pattern-specific executor,模式专用执行器。名字拗口,思想朴素:让"做计划的嘴管不住干活的手"这个问题,从根上消失——不是让手更自律,而是给手戴上分好类型的手套;戴什么手套,由嘴声明的那一刻就定死了。手的自由发挥空间被收走了,换来的,是承诺的保质期无限延长。

📈 五、数字不会说谎

机制讲得再漂亮,也得过实验这一关。这组实验铺得相当开:四个基准、三个大语言模型,横跨多种任务形态——模拟家庭、真实软件工程,以及更多不同脾性的环境。这个跨度值得专门说一句:单一基准上的漂亮数字,经常只是碰巧适配了那一亩三分地;把场景拉开到四种、把模型换成三家不同厂商的,结论还站得住,才算真站住了。我们看最要紧的几组数。

第一组,结构保持。模式专用执行器像轨道一样,从机制上就不存在"走样"这回事——声明什么结构,执行就是什么结构,百分之百。这是结构性保证,不是概率性自觉。这一下就把 Plan+ReAct 那个百分之二十二到四十五的尴尬,从根上抹掉了。别忘了上一节的教训:这不是模型变乖了,是机制不让它歪。

第二组,也是全文最硬的数:任务成功率。在 ALFWorld 这个模拟家庭环境的基准上,把通用的 Plan+ReAct 换成模式专用执行器,成功率从 0.48 提到了 0.92。接近翻倍。你可以停下来咂摸一下这个数——不是靠更聪明的模型,不是靠更多的数据,只是把"说到做到"从口号变成机制,一半的失败就消失了。装修队还是那个装修队,手艺一分没长,只是图纸变成了派工单。

第三组,在 SWE-bench Verified 这个真实软件工程任务的基准上,成功率从 0.36 提到 0.44。提升是实打实的,但比起 ALFWorld 的翻倍,明显温和。怎么理解这个落差?家庭任务里,大量的失败恰恰是执行纪律问题——步骤乱了、东西忘拿、做到第三步忘了第一步要干嘛,这种任务,把结构钉死就能救回来大半。而真实软件工程里,卡脖子的更多是问题本身的难度:这个 bug 就是难定位,这段代码就是绕,执行再忠实,也忠实不出本来就不会的东西。执行纪律能加的分,是有上限的。

但这正是这组实验最可贵的地方:它没有把话说满。同样的机制,在一个基准上翻天覆地,在另一个基准上稳步前进——诚实的报告就该长这样。大而化之的"全面超越"谁都会喊,具体到每个环境的涨跌,才看得出研究者对自己的数据有没有敬畏。顺便说一句,这篇论文和昨天那篇的气质在此刻合流了:都是在用工程机制,兑现人类常识里早就有的道理——昨天是站会,今天是派工单。

综合来看,所有数字指向同一个结论:在"选"和"做"这对老搭档里,最大的短板在"做",最大的收益也在"做"。把执行端修好,比把选择端修好,立竿见影得多。这为整个领域提了个醒:过去几年大家痴迷于让模型"想得更聪明",而这篇论文证明了,先让它"做得更老实",回报可能大得多。花活儿决定的是上限,老实决定的是下限;而下限,恰恰是多数系统死的地方。

🗺️ 六、没有一种走法包打天下

那是不是说,存在一种最强的模式,以后所有任务都用它?数据说:不。

论文里有个非常关键也很诚实的发现:四种模式的有效性,随环境而变,随模型而变。

在 ALFWorld 上,表现最好的是搜索模式。想想也对——模拟家庭任务里,试错是廉价的:打开冰箱发现没有番茄,关上就是了,退回来换条路线,几乎零成本。而一个肯扫街的 agent,早晚能把全屋摸清楚。在这种环境里,预设再漂亮的蓝图,都不如"碰壁了就退回来"的韧性值钱。搜索模式的笨,在这个环境里变成了耐。

到了 SWE-bench 上,最好的是分层模式。这也好理解——修一个真实软件的 bug,门道是先把症状定位到模块,再把模块拆成函数,一层层往下追,而不是拿着扳手满机箱乱敲。乱枪打鸟式的搜索在这里代价极高:每改一行代码,都可能引入新错误,每一次回溯都要重新跑测试,成本高得让扫街变成奢侈。先分层定位、再精准下手,是老程序员的本能,也是数据选出的赢家。

更有意思的是,同一个基准上,不同的模型选出的最优模式也可能不同。用出行打比方:去楼下便利店,全城扫街是蠢的,直达才是正解;跨省搬家,徒步导航是疯的,分层中转才是正解;而同样的跨省路线,老司机熟悉国道,新司机只敢全程高速——路是同一条路,人不是同一个人。任务决定大类,模型决定细类——这张"没有万能模式"的地图,恰恰反过来证明了"先声明模式、再按模式执行"这个架构的合理性:正因为不存在全局最优,才需要在每个任务开头,郑重其事地选一次。如果世上只有一种走法,路由本身就多余了;正因为走法必须挑,声明这一步才有分量。

这也顺便回答了很多人心里的疑问:四种模式会不会太多了,两种行不行?数据说,不行。环境的脾气差异大到这个份上,模式的选择空间一旦收窄,就等于强迫所有出行都坐同一种交通工具。堵在环线上的时候,你会想念那辆自行车的。

🎲 七、最难的题还在前头

故事讲到这,似乎圆满:模式分类清楚了,路由机制装上了,结构保住了,成功率涨了。但论文没有把结尾写成庆功宴,而是留了一个开放的、有点刺手的尾巴。

什么尾巴?声明模式这一步,目前还是语言模型自己拍的。也就是说,agent 不仅要"说到做到",还得先"看任务知走法"。而数据显示,当前的模型,并不总能选对。

前面说了,模式的有效性随环境、随模型而变,这本身就够难选的了——连研究者事后对着数据都要仔细分析才能看清各环境的脾气,凭什么要求模型在任务开头、信息最少的时候一击即中?更要命的是,模型自己对这个选择的自觉相当有限,它的"模式直觉"里有不少想当然:见任务就分层,似乎是个稳当答案,可稳当不等于最优。

研究者试了 few-shot 的办法:在提示里给几个"什么任务配什么模式"的示例,相当于给司机看几份别人的出行攻略——去机场该直达,逛夜市该扫街,配好对的例子摆在那,让模型自己悟。结果是——在部分基准和模型的组合上,选择确实变好了;但不是所有组合都灵。这个"部分改善"很诚实,也很无奈:它说明模型并非完全不可教,但也远没出师。示例能治标,规律还没学到手——它记住了几个配对的答案,没悟出配对的道理。这跟人类学开车一个道理:看十份别人的路书,不如自己摸熟一座城市的脾气。

这就是这篇论文最有分寸的地方。它没有宣称解决了全部问题,而是把问题清清楚楚切成两半:执行端的问题,被模式专用执行器干净利落地解决了——这是工程;选择端的问题,模型还只是部分可靠——这仍是科学。装修队的话讲:我们已经有了一支按图施工的可靠队伍,派给他们的图纸类型,目前还得靠老师傅的经验来定,而这个经验,还没有变成能传下去的规矩。

这个留白,恰好是通向第三重门的门缝。先说好的,本篇的账:诚实这一重门,已经可以工程化地迈过去了——把声明变成路由,把誓言变成机制,鸿沟就能大幅关闭。选模式这一半,还悬着。

🚪 八、第二重门之后

回到开头那个毛坯房。

后来工头学乖了:图纸不再钉在墙上,而是变成了派工单系统。拆哪面墙、砌什么标号的水泥、贴哪个牌子的砖,全在单子上;工人想改,没有权限。下一单业主来验收,推门一看——北欧极简,黑白灰,连窗帘的色号都对得上。业主在屋里转了三圈,只说了一句话:这才叫按图施工。

这就是第二重门:诚实。统筹之后的第二份作业,管的是"定了就得照做"。这篇论文给出的答案朴素得近乎固执:别指望语言模型在三百条消息的历史里还记得开工宣言——它不是不想守,是那玩意儿在它注意力里的保质期太短。与其呼吁自律,不如设计机制:让声明发生在路由之前,让路由决定执行器的形状,让结构从愿望变成轨道。轨道铺好,诺言才不再靠记性活着。这篇论文和上一篇摆在一起,你会看到一个共同的方法论:凡是需要美德的地方,先想想能不能换成结构——站会如此,派单如此,后面第三重门还会如此。

数字替这个朴素说了话:结构保持从百分之二十二到四十五,修到百分之百;ALFWorld 上成功率 0.48 到 0.92,SWE-bench Verified 上 0.36 到 0.44;四个基准、三个模型横跨验证。三组数摆在一起,就是这篇论文的完整答卷。同时它也诚实地标出了边界:模式怎么选,模型还只是部分可靠,few-shot 只是部分改善——诚实的执行可以工程化,聪明的选择还不能。这句话值得抄下来贴在工作台上:机制能解决的部分,别留给祈祷;祈祷也解决不了的,承认它是科学。

前两重门连起来看,是一个执行者成形的顺序:先学会统筹,想清楚下一步;再学会诚实,定了就照做。还差最后一重:进化。前面两门,都假设有个老师傅在上头——塔台管着调度,路由器管着纪律,老师傅的经验管着选模式。可如果压根没有老师傅呢?没有考试、没有评分、没有外部奖励的时候,agent 能不能自己把自己打磨得更好?

下一篇我们讲这件事。那里有个数字我先放在这:4.03 美元——一杯咖啡的钱,换来的东西追平了全世界最顶级的那批 harness。不靠老师傅的修行,是什么样子。

统筹、诚实、进化。管事、守信、成长——听着像家训,其实也是算法要一份一份交的作业。装修队的老话头说完了,明天去看那个不请教练、自己写日记的。

📚 参考文献

  • 论文:Oota et al. "Do LLM Agents Execute the Plans They Declare? From Planning-Mode Declaration to Pattern-Specific Execution", arXiv:2609.38108, 2026-09-29
#论文 #arXiv #AI #小凯 #2026-10-01

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论

本文标签

合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens