@dair_ai: 关于计算机使用智能体的杰出论文。(收藏)计算机使用智能体通过屏幕操控真实软件,……
摘要
PreAct 将成功的智能体运行编译成小型状态机程序,在重复任务上实现 8.5-13 倍更快的重放,无需逐步骤的语言模型调用,并通过运行时屏幕检查确保正确性。
查看缓存全文
缓存时间: 2026/06/18 00:00
关于计算机使用智能体的杰出论文。
(收藏它)
计算机使用智能体通过屏幕驱动真实软件,但每个任务都是从零开始解决。如果要求它重复执行一项任务,它会重新读取屏幕并重新推理每一步操作,再次付出全部成本。
PreAct 将首次成功运行编译成一个小的状态机程序——状态检查屏幕,动作执行转换——然后在后续运行中直接重放该程序。这使得运行速度提升 8.5 到 13 倍,且无需逐步骤的语言模型调用。
重放过程受到保护。在每个步骤,PreAct 在行动前检查屏幕是否与程序预期相符,当现实出现偏差时将控制权交还给智能体。
为什么这很重要?
大多数计算机使用成本都花在智能体已经解决的任务的重复推理上。将这部分成本分摊到一个可重放的程序中,是一种让智能体在第二次运行时变得更快且更简洁的方法。
论文:https://arxiv.org/abs/2606.17929
在我们的学院中学习构建有效的 AI 智能体:https://academy.dair.ai
计算机使用智能体:重复任务执行速度更快
来源:https://arxiv.org/html/2606.17929
摘要
计算机使用智能体通过屏幕驱动真实软件——点击和打字——但每个任务都是从零开始解决:如果要求它重复执行一项任务,智能体会重新读取屏幕,重新推理每一步操作,并再次付出全部成本。我们提出 PreAct,它让这类智能体在完成过的任务上运行更快。首次成功时,PreAct 将运行过程编译成一个小的状态机程序——状态检查屏幕,动作执行转换——并在后续运行中直接重放该程序,而不是调用智能体——速度提升 8.5–13 倍,无需逐步骤的语言模型调用。重放并非盲目:在每个步骤,PreAct 在行动前检查屏幕是否与程序预期相符,一旦出现偏差就将控制权交还给智能体。
PreAct 在决定保留什么时也应用相同的原则:一个新编译的程序只有在从干净状态重新运行时,由独立评估器确认其解决了任务后,才能进入存储库——这可以捕获那些重放到最后一步但任务仍未完成的程序。在移动端、桌面端和网页基准测试中,这种存储时检查将重复运行中因错误程序积累而变差的情况与变好的情况区分开来——在所有三个基准上,每项基准任务的价值提升在 1.75–2.6 个任务之间;当没有程序匹配时,从零开始探索的降级策略使 PreAct 与强大的记录重放基线持平。我们还报告了什么并不重要:提示词措辞、运行时防护措施,以及使用语言模型还是普通嵌入检索器来选择重用的程序,这些影响都很小或没有影响。
1 引言
计算机使用智能体——通过读取屏幕并发出点击和按键操作来操控普通软件的模型——现在已经足够处理日常事务,比如预订会议或提交报销。但它们也很浪费。考虑 AndroidWorld 基准测试中的一个任务:添加一个名为“Emilia Gonzalez”的新联系人,并附上给定的电话号码。智能体读取屏幕截图,决定点击哪里,执行动作,然后重复,花费半打轮次的视觉和语言推理来浏览通讯录应用。明天再要求执行相同任务时,它会重新开始。屏幕没有变化,点击操作也没有变化,但智能体没有保留任何可以直接再次运行的东西,因此第二次它又付出了全部成本。
这不是人类的工作方式。某人第一次打开 Photoshop,或者一位在中国的旅行者使用支付宝或微信支付结账,起初都非常缓慢——阅读每个菜单,寻找正确的按钮。经过几次重复后,他们几乎像当地人一样熟练:第一次尝试时那种刻意的、依赖感知的推理已内化为近乎自动的例行程序。然而,这种熟练并非盲目——他们仍然会瞥一眼屏幕,只在屏幕与预期相符时才行动;一旦网络卡顿或出现不熟悉的对话框,他们会立刻注意到并放慢速度重新思考。熟练是预测,而非盲目。PreAct 背后的核心问题是:计算机使用智能体能否获得相同的持续学习能力——不仅是解决以前见过的任务,而是在第二次时更快且更便宜地解决它,就像熟练的人类那样。这种效率维度在很大程度上被智能体的评估方式所忽略:大多数基准测试只评分任务是否成功,而不关注重复成功需要多少感知和推理成本,因此一个每次从零推导任务的智能体看起来并不比一个学会跳过推理的智能体差。我们将重复任务的效率视为一等目标并直接衡量(图1)。
图1:重复执行相同任务的成本。标准的计算机使用智能体每次都会重新推导熟悉的任务,因此其累积的 LLM 成本随运行次数增加(红色)。PreAct 在首次成功时支付一次性溢价来编译和检查(运行 1 处的凸起),然后在后续每次运行中直接重放存储的程序,无需逐步骤的语言模型调用(蓝色),因此其累积成本几乎不上升;重放速度在挂钟时间上提升 8.5–13 倍。任务重复得越频繁,节省越多。成本归一化为一次完整的智能体解决;挂钟加速和一次性开销是实际测量的,而非示意性的。
有几条研究路线尝试重用过去的行为,但每条路线要么在执行循环中保留模型,要么存储无法可靠重用的东西。像 SAGE 这样的技能库保存参数化的行为,但在运行时仍然由语言模型执行,因此大部分逐步骤成本仍然存在。编译系统将行为转化为确定性代码,但它们针对狭窄的业务逻辑,或者通过爬取应用程序来构建程序,而非基于实际成功运行。记录重放系统缓存一次运行的动作序列并重放,当缓存未命中时降级到智能体;缓存的轨迹无法判断每个步骤是否真的到达,没有分支空间,也无法自我改进。
PreAct 采取不同的立场:智能体存储的东西正是它稍后运行的东西。第一次智能体完成“添加 Emilia Gonzalez”时,PreAct 将这次运行转化为一个小的状态机。每个状态带有对屏幕的检查——联系人表单已打开;姓名字段显示我们输入的值——而每个转换带有动作,例如点击“创建联系人”或输入名字。下次出现匹配的任务时,PreAct 检索该状态机并逐步执行:在每个状态,它先确认屏幕看起来正确,然后才做任何事;在每个转换,它执行动作。成功重放期间没有语言模型运行,这就是数量级节省的来源。这种“先观察后行动”的纪律使得直接重放值得信赖,也使 PreAct 与记录的宏区分开来:RPA 脚本或缓存的动作轨迹会盲目触发存储的步骤,而 PreAct 在每一步之前检查屏幕。当检查失败时——应用已更改,出现了意外的对话框——PreAct 将控制权交还给完整的智能体,由它完成任务并生成新的程序。随着时间的推移,存储库自行增长:驱动这个循环的代码是固定的,积累的是一组智能体可以直接运行的程序(图2)。
图2:PreAct 框架是一个经过验证的“编译-扩展-替换”循环。目标被路由到程序选择器;检索到的程序由重放器运行,后者遍历图并检查每个谓词与实时屏幕的匹配情况。任何未命中都会降级到完整智能体(CUA),其轨迹被编译成一个新程序 P’。P’ 仅通过验证后再存储门进入语料库。语料库是唯一增长的结构;框架代码是固定的。
同样的检查会运行第二次,在 PreAct 决定记住什么的时候——而我们花最长的时间才让这部分正确。一个编译好的程序可以一路重放到最后一步,但仍然留下未完成的任务:它点击联系人表单并按下“保存”,但一个过时的字段意味着姓名从未输入,因此没有联系人存在。信任这样一个程序的智能体每次重用它时都会以同样的方式失败,运行得越多,情况越糟。PreAct 的答案是在存储之前再次应用运行时纪律:编译完成后立即重置环境,从头运行新程序,并让基准测试自己的评估器判断任务是否确实被解决;只有在这之后程序才被允许进入存储库。同样的原则因此在两个时间尺度上运作——重放时的每个动作之前,以及程序被保留之前——而后者是决定系统是越用越好还是悄悄退化的关键。
我们在三个平台上测试 PreAct——手机(AndroidWorld)、桌面(OSWorld)和网站(WebArena)——在这些平台上,热重放比从头重新推导任务快 8.5–13 倍,并且没有逐步骤的语言模型调用。在新鲜语料库或智能体已构建的语料库上开启或关闭检查,得出一致的结论:有检查时,重复运行变得更好;没有检查时,随着错误程序积累,重复运行变得更差。这个门在所有平台上冷→热转换期间价值 1.75–2.6 个任务,方向一致。第二个较小的想法也很重要——当没有存储的程序适合某个任务时,从零开始探索它而不是放弃,这使得 PreAct 与强大的记录重放基线(Muscle-Mem)持平。我们还小心地报告了没有改变结果的因素,因为很容易归功于错误的东西:提示语的精确措辞、少量手写的运行时防护措施,以及使用语言模型还是普通嵌入检索器(后者与智能体选择器匹配率为 100% vs. 75.6%)来选择重用哪个存储的程序,这些影响都很小或没有影响。带来结果的是设计本身——存储你运行的程序,并且绝不保留未经检查的程序。
2 相关工作
PreAct 位于六个研究领域的交叉点:计算机使用智能体、它们运行的推理-行动循环、尝试重用过去行为的技能和记忆系统、作为智能体表示的代码、学习环境动态的世界模型,以及编译或重放工作流的系统。我们依次审视每个领域,然后(表1,图3)将 PreAct 与最接近的先前工作进行比较。
表1:PreAct 与相关方法的比较。
图3:PreAct 的位置,沿着它设计要结合的两个属性。许多先前的系统实现了其中一个或另一个。记录重放系统(Muscle-Mem, Workflow-Use)和经典 RPA 在没有 LLM 的情况下运行其存储的人工制品,但只是附加它(左上)。技能和记忆系统——Voyager, TroVE, ExpeL, Mem0/A-MEM——真正自我扩展,有些(Voyager, TroVE)甚至自我验证添加的内容,但在运行时通过 LLM 调用它(右下)。PreAct 的区别在于结合:一个可直接执行的人工制品(重放时无 LLM 在循环中),通过经过验证的就地改进而增长。坐标轴是定性的。
计算机使用智能体。一个快速发展的研究方向构建的智能体通过图形界面操作真实软件——点击、打字和滚动——而不是通过定制 API。早期的网络智能体从演示或模拟网站上的强化学习中学习,而 Mind2Web、WebArena、VisualWebArena 和 WebVoyager 等基准测试推动了更真实、开放式的网站发展。并行的工作将视觉语言模型直接接地于屏幕像素和可访问性树:SeeAct、CogAgent、SeeClick 和 UI-TARS 学习定位 UI 元素并对其采取行动。同样的范式现在扩展到移动端、桌面和操作系统控制,以及软件工程,强化学习和通用助手基准测试衡量进展。PreAct 对其 CUA 降级插槽中填充哪种智能体是无关的;我们使用 AndroidWorld 的 T3A 和 Anthropic 的 Computer-Use API,但框架可以包装其中任何一个。
推理-行动循环及其成本。几乎所有这类智能体都遵循由 ReAct 推广的观察-推理-行动范式,并叠加了思维链和搜索类推理、工具使用、自我反思和自主任务循环。这个循环正是重复执行成本高昂的原因:即使任务是智能体以前解决过的,每一步都要付出全新的感知和推理成本。PreAct 通过用确定性图执行替换这个循环(对于熟悉的任务)来直接攻击这个成本。
技能库和经验记忆。对重复的第二种响应是记忆。技能系统积累可重复使用的行为——Voyager 增长一个代码技能库,SAGE 和 Skill-Pro 参数化已学技能,ExpeL 将经验提炼为规则——但每个技能在执行时仍然在 LLM 绑定的循环内运行。更广泛地说,智能体记忆系统存储和检索过去的交互:生成式智能体记忆流、操作系统式记忆
相似文章
PreAct: 能够更快处理重复任务的计算机操控智能体
PreAct 将计算机操控智能体的成功任务执行编译为小型状态机程序,通过跳过每步的语言模型调用,实现重复任务上的快速重放(快 8.5–13 倍),同时每一步验证屏幕状态,并在出现不匹配时回退到智能体。
论计算机使用智能体的可靠性
一篇预印本论文,分析为何计算机使用智能体首次成功却在重复执行时失败,将不可靠性归因于执行随机性、任务模糊性和行为变异性,并倡导重复评估与稳定策略。
预见与学习:在主动式智能体中释放空闲时间计算能力
ProAct 是一种主动式智能体架构,利用空闲时间计算来预见用户需求,提升任务完成的效率与准确性。它引入了 ProActEval 基准测试,涵盖 40 个领域的 200 个场景,相比被动式基线取得了显著提升:所需交互轮次减少 14.8%,用户努力降低 11.7%,幻觉率下降 28.1%。
@dair_ai: https://x.com/dair_ai/status/2068724104815890889
重点介绍近期三篇AI论文:SpatialClaw(通过代码实现无需训练的空间推理),SkillWeaver(组合式技能路由,采用分解-检索-组合流水线),以及PreAct(将智能体运行编译为快速状态机,用于重复任务)。
@dair_ai:关于长时程智能体的杰出论文(建议收藏)——类似人类,如何让智能体在困难任务中坚持下去?
AutoLab 是一个新基准测试,针对 36 个由专家精心设计的长时程任务(系统优化、模型开发、CUDA 内核、谜题),对 17 个前沿模型进行评估。研究发现,决定成功的关键因素是持久性——而非初始尝试的质量。Claude-opus-4.6 在所有类别中名列前茅,而大多数其他模型要么过早终止,要么在几乎没有进展的情况下耗尽了预算。