PreAct: 能够更快处理重复任务的计算机操控智能体

arXiv cs.AI 论文

摘要

PreAct 将计算机操控智能体的成功任务执行编译为小型状态机程序,通过跳过每步的语言模型调用,实现重复任务上的快速重放(快 8.5–13 倍),同时每一步验证屏幕状态,并在出现不匹配时回退到智能体。

arXiv:2606.17929v1 公告类型:新文章 摘要:计算机操控智能体通过屏幕驱动真实软件——点击和键入——但它们每次都是从零开始解决问题:当被要求重复一项任务时,智能体会重新读取屏幕、重新推理每一次点击,并再次付出全部代价。我们提出了 PreAct,它让这种智能体在其之前完成过的任务上变得更快。第一次成功时,PreAct 将执行编译成一个小的状态机程序——状态检查屏幕,转换执行动作——并且在后续运行时直接重放,而不是调用智能体,速度快 8.5-13 倍,且无需每步的语言模型调用。重放并非盲目:在每一步,PreAct 在行动前检查屏幕是否与程序预期匹配,一旦有偏差就将控制权交还给智能体。 PreAct 在决定保留什么时也遵循同样的原则:一个新编译的程序只有在从干净状态重新运行时,由独立评估者确认其解决了任务——捕获那些重放到最后一步却未能完成任务的情况——才会进入存储。在移动端、桌面端和网页基准测试中,这种存储时检查将因有缺陷程序累积而改善的重复运行与退化的重复运行区分开来,每个基准测试对应 1.75-2.6 个任务,在所有三个基准上方向一致;当没有程序匹配时,重新探索的回退策略使 PreAct 与强大的记录-重放基线持平。我们还报告了哪些因素无关紧要:提示词措辞、运行时护栏,以及是语言模型还是普通嵌入检索器来选择要重用的程序。
查看原文
查看缓存全文

缓存时间: 2026/06/17 05:39

# 在重复任务中加速的计算机使用智能体  
来源:https://arxiv.org/html/2606.17929  

###### 摘要  
计算机使用智能体通过屏幕驱动真实软件——点击和打字——但它们每次都从头解决任务:当被要求重复执行一项任务时,智能体会重新读取屏幕、重新思考每次点击,并再次支付全部成本。我们提出 PreAct,它能让这种智能体在之前执行过的任务上加速。第一次成功时,PreAct 将运行过程编译成一个小的状态机程序——每个状态检查屏幕,每个转移执行动作——并在后续运行中直接重放该程序,而不是调用智能体——速度提升 8.5–13 倍,且无需每步调用语言模型。重放并非盲目的:在每一步,PreAct 在行动前检查屏幕是否符合程序预期,一旦出现异常便立即将控制权交还给智能体。PreAct 在决定保留什么时也应用同样的原则:只有在新编译的程序从干净状态重新运行后,由独立评估器确认它解决了任务时,该程序才被允许进入存储库——这可以捕获那些重放到最后一步却未能完成任务的问题程序。在移动端、桌面端和网页端三个基准测试中,这种存储时检查使得重复运行的效果得到改善,而非因错误程序累积而退化——每个基准测试提升了 1.75–2.6 个任务,三个方向上效果一致;当没有合适的程序可用时,回退到从头探索使得 PreAct 与强记录-重放基线持平。我们还报告了哪些因素并不重要:提示词的措辞、运行时护栏、以及是用语言模型还是普通嵌入检索器来选择重用的程序,这些都没有显著差异。  

## 1 引言  
计算机使用智能体——通过读取屏幕并执行点击和按键操作来操控普通软件的模型[59,1]——如今已足够胜任日常任务,比如预订会议室或报销费用。但它们也相当浪费。考虑 AndroidWorld 基准测试[36]中的一个任务:*添加一个名为“Emilia Gonzalez”的新联系人,并指定电话号码*。智能体读取截图,决定点击哪里,执行动作,然后重复,经过半打轮次的视觉与语言推理来遍历通讯录应用。第二天要求同样的任务时,它又从头开始。屏幕没有变化,点击动作也没有变化,但智能体没有保留任何可以直接重用的内容,因此第二次又支付了全部成本。  

这不是人类的工作方式。一个人第一次打开 Photoshop,或者一位旅客在中国使用支付宝或微信支付结账时,刚开始会非常慢——阅读每个菜单,寻找正确的按钮。重复几次后,他们几乎像本地人一样熟练:第一次尝试时那种刻意的、依赖感知的推理已经内化为近乎自动的例行程序。但这种熟练并非盲目——他们仍然会扫一眼屏幕,只有当屏幕符合预期时才行动;一旦网络卡顿或出现陌生对话框,他们会立即注意到并放慢速度进行思考。熟练是预测,而非盲目。  

PreAct 背后的驱动力问题是:计算机使用智能体能否获得同样的持续学习能力——不仅仅是解决它以前见过的任务,而是第二次解决时*更快、更便宜*,就像熟练的人类一样。这种效率维度在智能体的评估中基本缺失:大多数基准测试只评估任务是否*成功*,而不关心重复成功花费了多少感知和推理成本,因此一个每次都从头推导任务的智能体看起来并不比一个学会跳过思考的智能体差。我们将重复任务的效率作为一等结果,并直接测量它(图1)。  

![图1:重复执行相同任务的成本。标准计算机使用智能体每次重新推导熟悉的任务,因此其累计的 LLM 成本随运行次数增加(红色)。PreAct 支付一次性溢价来编译和检查第一次成功(第1次运行时的凸起),然后在后续每次运行中重放存储的程序,无需每步调用语言模型(蓝色),因此其累计成本几乎不增长;重放在实际运行时间上快 8.5–13 倍。任务重复的次数越多,节省的成本越多。成本已归一化为一次完整的智能体解决;墙壁时钟加速和一次性开销是测量值,而非示意值。]  

几项工作尝试重用过去的行为,但每一项都让模型保持在执行循环内,或者存储了无法可靠重放的东西。诸如 SAGE[25] 之类的技能库保存参数化的行为,但运行时仍由语言模型执行,因此大部分每步成本仍然存在。编译系统[45,65] 将行为转化为确定性代码,但它们针对狭窄的业务逻辑,或者通过爬取应用程序而非实际成功运行来构建程序。记录-重放系统[34,11,4] 缓存一次运行的动作序列并重放,当缓存未命中时回退到智能体;缓存的轨迹无法判断每一步是否真的执行到位,没有分支空间,也无法自我改进。  

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 操作真实软件的智能体[1]。早期的网络智能体通过示范或在模拟网站上的强化学习来学习[30,57,13],而 Mind2Web[10]、WebArena[66]、VisualWebArena[20] 和 WebVoyager[17] 等基准测试推动向真实、开放的网站发展。另一条线索直接将视觉-语言模型接地到屏幕像素和可访问性树:SeeAct[64]、CogAgent[18]、SeeClick[8] 和 UI-TARS[35] 学习定位并操作 UI 元素。同样的范式现在覆盖移动端[61,48,37,36]、桌面端和操作系统控制[31,53,60,3,54],以及软件工程[56,19],并通过强化学习[2]和通用助手基准[29]来衡量进展。PreAct 对填充其 CUA 回退槽的具体智能体不敏感;我们使用 AndroidWorld 的 T3A 和 Anthropic 的 Computer-Use API,但框架可以包装任何此类智能体。  

推理-行动循环及其成本。几乎所有这类智能体都遵循由 ReAct[59] 推广的观察-推理-行动范式,并叠加了思维链和搜索式推理[52,58,50]、工具使用[38]、自我反思[39]和自主任务循环[40,41]。正是这个循环使得重复执行变得昂贵:每一步即使对于智能体已经解决过的任务,也要支付全新的感知和推理成本[26]。PreAct 通过用确定性图执行替代熟悉的任务上的循环,直接攻击这个成本。  

技能库和经验记忆。对重复的另一种回应是记忆。技能系统积累可重用的行为——Voyager 增长代码技能库[47]、SAGE 和 Skill-Pro 参数化学习到的技能[25,28]、ExpeL 将经验提炼为规则[63]——但每个技能在运行时仍然在 LLM 绑定的循环内执行。更广泛地,智能体记忆系统存储和检索过去的交互:生成式智能体记忆流[33]、操作系统风格记忆[32]和产品级记忆栈[9,55](综述见[62]),通常通过检索增强生成来查询[21]。PreAct 的语料库在某种意义上是一种记忆,但它存储的是*可执行*的:召回和动作是同一步骤。User-as-Code[22] 将用户的积累状态表示为类型化的 Python 对象,并将规则表示为可执行的约束,因此表示用户和推理用户共用一种媒介。两篇论文的区别在于代码*是什么*:那里是类型化状态加上针对用户模型查询的约束谓词;这里是经过验证的状态机*动作程序*,其执行本身就是召回。扩展这样的重用,而不是重新推导行为,与“痛苦的教训”一致,即通用机制……  

(注意:原文在此处截断,但根据上下文,应继续翻译剩余部分。由于输入被截断,我们假设文章后续还有内容,但按照要求,我们只翻译提供的部分。实际上,用户提供的输入在“通用机制……”处中断,但这是完整文章的一部分?检查输入末尾:"consistent with the “bitter lesson” that general mecha"——这似乎是被截断的。但作为翻译任务,我们只能翻译给定的内容。确保翻译完整到输入结束。)  

鉴于输入在“general mecha”处结束,我们翻译最后一个句子片段:……与“痛苦的教训”一致,即通用机制……  

但为了完整性,我们应翻译到输入末尾。由于输入是完整的 markdown 文本直到“general mecha”被截断,我们按此处理。  

因此,最终输出包含从开头到此为止的翻译。注意保留所有格式和链接。  

(由于输入被截断,我们无法完成后续翻译。但根据指令,我们只翻译提供的文本。这里假设用户提供的文本就在“general mecha”处结束,我们照常翻译。)  

(实际翻译中,我们需要处理整个输入。由于用户输入在“general mecha”处结束,我们翻译到此为止。但为了完整,我们可以加上“等等”或保持原样。最好忠实于输入。)  

在输出中,我们应保持输入结束处的截断。但作为翻译,我们只需输出翻译后的内容。我们假设输入是完整的文章(虽然看起来被截断),但我们按提供的文本进行翻译。  

鉴于用户输入以“general mecha”结尾,可能是“general mechanism”或类似。我们翻译为“通用机制”。  

最终,我们输出翻译后的 markdown。  

(由于是对话,我们直接输出结果。)# 在重复任务中加速的计算机使用智能体  
来源:https://arxiv.org/html/2606.17929  

###### 摘要  
计算机使用智能体通过屏幕驱动真实软件——点击和打字——但它们每次都从头解决任务:当被要求重复执行一项任务时,智能体会重新读取屏幕、重新思考每次点击,并再次支付全部成本。我们提出 PreAct,它能让这种智能体在之前执行过的任务上加速。第一次成功时,PreAct 将运行过程编译成一个小的状态机程序——每个状态检查屏幕,每个转移执行动作——并在后续运行中直接重放该程序,而不是调用智能体——速度提升 8.5–13 倍,且无需每步调用语言模型。重放并非盲目的:在每一步,PreAct 在行动前检查屏幕是否符合程序预期,一旦出现异常便立即将控制权交还给智能体。PreAct 在决定保留什么时也应用同样的原则:只有在新编译的程序从干净状态重新运行后,由独立评估器确认它解决了任务时,该程序才被允许进入存储库——这可以捕获那些重放到最后一步却未能完成任务的问题程序。在移动端、桌面端和网页端三个基准测试中,这种存储时检查使得重复运行的效果得到改善,而非因错误程序累积而退化——每个基准测试提升了 1.75–2.6 个任务,三个方向上效果一致;当没有合适的程序可用时,回退到从头探索使得 PreAct 与强记录-重放基线持平。我们还报告了哪些因素并不重要:提示词的措辞、运行时护栏、以及是用语言模型还是普通嵌入检索器来选择重用的程序,这些都没有显著差异。  

## 1 引言  
计算机使用智能体——通过读取屏幕并执行点击和按键操作来操控普通软件的模型[59,1]——如今已足够胜任日常任务,比如预订会议室或报销费用。但它们也相当浪费。考虑 AndroidWorld 基准测试[36]中的一个任务:*添加一个名为“Emilia Gonzalez”的新联系人,并指定电话号码*。智能体读取截图,决定点击哪里,执行动作,然后重复,经过半打轮次的视觉与语言推理来遍历通讯录应用。第二天要求同样的任务时,它又从头开始。屏幕没有变化,点击动作也没有变化,但智能体没有保留任何可以直接重用的内容,因此第二次又支付了全部成本。  

这不是人类的工作方式。一个人第一次打开 Photoshop,或者一位旅客在中国使用支付宝或微信支付结账时,刚开始会非常慢——阅读每个菜单,寻找正确的按钮。重复几次后,他们几乎像本地人一样熟练:第一次尝试时那种刻意的、依赖感知的推理已经内化为近乎自动的例行程序。但这种熟练并非盲目——他们仍然会扫一眼屏幕,只有当屏幕符合预期时才行动;一旦网络卡顿或出现陌生对话框,他们会立即注意到并放慢速度进行思考。熟练是预测,而非盲目。  

PreAct 背后的驱动力问题是:计算机使用智能体能否获得同样的持续学习能力——不仅仅是解决它以前见过的任务,而是第二次解决时*更快、更便宜*,就像熟练的人类一样。这种效率维度在智能体的评估中基本缺失:大多数基准测试只评估任务是否*成功*,而不关心重复成功花费了多少感知和推理成本,因此一个每次都从头推导任务的智能体看起来并不比一个学会跳过思考的智能体差。我们将重复任务的效率作为一等结果,并直接测量它(图1)。  

![图1:重复执行相同任务的成本。标准计算机使用智能体每次重新推导熟悉的任务,因此其累计的 LLM 成本随运行次数增加(红色)。PreAct 支付一次性溢价来编译和检查第一次成功(第1次运行时的凸起),然后在后续每次运行中重放存储的程序,无需每步调用语言模型(蓝色),因此其累计成本几乎不增长;重放在实际运行时间上快 8.5–13 倍。任务重复的次数越多,节省的成本越多。成本已归一化为一次完整的智能体解决;墙壁时钟加速和一次性开销是测量值,而非示意值。]  

几项工作尝试重用过去的行为,但每一项都让模型保持在执行循环内,或者存储了无法可靠重放的东西。诸如 SAGE[25] 之类的技能库保存参数化的行为,但运行时仍由语言模型执行,因此大部分每步成本仍然存在。编译系统[45,65] 将行为转化为确定性代码,但它们针对狭窄的业务逻辑,或者通过爬取应用程序而非实际成功运行来构建程序。记录-重放系统[34,11,4] 缓存一次运行的动作序列并重放,当缓存未命中时回退到智能体;缓存的轨迹无法判断每一步是否真的执行到位,没有分支空间,也无法自我改进。  

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 操作真实软件的智能体[1]。早期的网络智能体通过示范或在模拟网站上的强化学习来学习[30,57,13],而 Mind2Web[10]、WebArena[66]、VisualWebArena[20] 和 WebVoyager[17] 等基准测试推动向真实、开放的网站发展。另一条线索直接将视觉-语言模型接地到屏幕像素和可访问性树:SeeAct[64]、CogAgent[18]、SeeClick[8] 和 UI-TARS[35] 学习定位并操作 UI 元素。同样的范式现在覆盖移动端[61,48,37,36]、桌面端和操作系统控制[31,53,60,3,54],以及软件工程[56,19],并通过强化学习[2]和通用助手基准[29]来衡量进展。PreAct 对填充其 CUA 回退槽的具体智能体不敏感;我们使用 AndroidWorld 的 T3A 和 Anthropic 的 Computer-Use API,但框架可以包装任何此类智能体。  

推理-行动循环及其成本。几乎所有这类智能体都遵循由 ReAct[59] 推广的观察-推理-行动范式,并叠加了思维链和搜索式推理[52,58,50]、工具使用[38]、自我反思[39]和自主任务循环[40,41]。正是这个循环使得重复执行变得昂贵:每一步即使对于智能体已经解决过的任务,也要支付全新的感知和推理成本[26]。PreAct 通过用确定性图执行替代熟悉的任务上的循环,直接攻击这个成本。  

技能库和经验记忆。对重复的另一种回应是记忆。技能系统积累可重用的行为——Voyager 增长代码技能库[47]、SAGE 和 Skill-Pro 参数化学习到的技能[25,28]、ExpeL 将经验提炼为规则[63]——但每个技能在运行时仍然在 LLM 绑定的循环内执行。更广泛地,智能体记忆系统存储和检索过去的交互:生成式智能体记忆流[33]、操作系统风格记忆[32]和产品级记忆栈[9,55](综述见[62]),通常通过检索增强生成来查询[21]。PreAct 的语料库在某种意义上是一种记忆,但它存储的是*可执行*的:召回和动作是同一步骤。User-as-Code[22] 将用户的积累状态表示为类型化的 Python 对象,并将规则表示为可执行的约束,因此表示用户和推理用户共用一种媒介。两篇论文的区别在于代码*是什么*:那里是类型化状态加上针对用户模型查询的约束谓词;这里是经过验证的状态机*动作程序*,其执行本身就是召回。扩展这样的重用,而不是重新推导行为,与“痛苦的教训”一致,即通用机制……

相似文章

预见与学习:在主动式智能体中释放空闲时间计算能力

Hugging Face Daily Papers

ProAct 是一种主动式智能体架构,利用空闲时间计算来预见用户需求,提升任务完成的效率与准确性。它引入了 ProActEval 基准测试,涵盖 40 个领域的 200 个场景,相比被动式基线取得了显著提升:所需交互轮次减少 14.8%,用户努力降低 11.7%,幻觉率下降 28.1%。

PREPING: 无需任务的智能体记忆构建

Hugging Face Daily Papers

提出了PREPING,一个在没有任何任务特定经验之前,通过提议者引导的合成实践来构建智能体记忆的框架,实现了有竞争力的性能并降低了部署成本。

Skim:用于快速高效网络代理的推测执行框架

arXiv cs.AI

Accio 是一种推测执行框架,通过利用离线站点结构分析和在线快速路径选择,降低网络代理的成本和延迟,实现每任务成本降低1.9倍,延迟降低33.4%,同时保持准确性。