Synapse: Trajectory-as-Exemplar Prompting with Memory for Computer Control
TL;DR 精炼摘要
Synapse提出状态抽象、轨迹示例提示和示例记忆三大机制,有效解决LLM上下文受限、示例不完整及泛化差的问题。其在MiniWoB++和Mind2Web基准上显著提升成功率,首次实现复杂任务长时序的显著进步。
摘要
Building agents with large language models (LLMs) for computer control is a burgeoning research area, where the agent receives computer states and performs actions to complete complex tasks. Previous computer agents have demonstrated the benefits of in-context learning (ICL); however, their performance is hindered by several issues. First, the limited context length of LLMs and complex computer states restrict the number of exemplars, as a single webpage can consume the entire context. Second, the exemplars in current methods, such as high-level plans and multi-choice questions, cannot represent complete trajectories, leading to suboptimal performance in long-horizon tasks. Third, existing computer agents rely on task-specific exemplars and overlook the similarity among tasks, resulting in poor generalization to novel tasks. To address these challenges, we introduce Synapse, a computer agent featuring three key components: i) state abstraction, which filters out task-irrelevant information from raw states, allowing more exemplars within the limited context, ii) trajectory-as-exemplar prompting, which prompts the LLM with complete trajectories of the abstracted states and actions to improve multi-step decision-making, and iii) exemplar memory, which stores the embeddings of exemplars and retrieves them via similarity search for generalization to novel tasks. We evaluate Synapse on MiniWoB++, a standard task suite, and Mind2Web, a real-world website benchmark. In MiniWoB++, Synapse achieves a 99.2% average success rate (a 10% relative improvement) across 64 tasks using demonstrations from only 48 tasks. Notably, Synapse is the first ICL method to solve the book-flight task in MiniWoB++. Synapse also exhibits a 56% relative improvement in average step success rate over the previous state-of-the-art prompting scheme in Mind2Web.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
Synapse: Trajectory-as-Exemplar Prompting with Memory for Computer Control
1.2. 作者
Longtao Zheng, Rundong Wang, Xinrun Wang, Bo An。 他们的研究机构是新加坡南洋理工大学 (NTU, Singapore)。
1.3. 发表期刊/会议
该论文以预印本形式发布在 arXiv 上。arXiv 是一个开放获取的预印本服务器,在计算机科学(特别是机器学习和人工智能领域)具有很高的知名度和影响力,许多前沿研究成果在正式发表前都会在此发布。
1.4. 发表年份
2023年
1.5. 摘要
为计算机控制构建基于大型语言模型 (Large Language Models, LLMs) 的智能体是一个新兴的研究领域,其中智能体接收计算机状态并执行操作以完成复杂任务。以往的计算机智能体已经证明了上下文学习 (In-Context Learning, ICL) 的优势;然而,它们的性能受到几个问题的阻碍。首先,LLM 有限的上下文长度 (context length) 和复杂的计算机状态限制了示例 (exemplars) 的数量,因为一个网页可能就会消耗整个上下文。其次,当前方法中的示例(例如,高层计划和多选题)无法表示完整的操作轨迹 (trajectories),导致在长时序任务中性能不佳。第三,现有计算机智能体依赖任务特定示例,忽视了任务之间的相似性,导致对新任务的泛化能力差。为了解决这些挑战,本文引入了 Synapse,一个具有三个关键组件的计算机智能体:i) 状态抽象 (state abstraction),它从原始状态中过滤掉与任务无关的信息,允许在有限的上下文内包含更多示例;ii) 轨迹即示例提示 (trajectory-as-exemplar prompting, TaE),它用抽象状态和动作的完整轨迹来提示 LLM,以改进多步决策;iii) 示例记忆 (exemplar memory),它存储示例的嵌入 (embeddings) 并通过相似性搜索检索它们,以实现对新任务的泛化。我们在标准任务套件 和真实世界网站基准 Mind2Web 上评估了 Synapse。在 中,Synapse 仅使用来自48个任务的演示,就在64个任务中实现了99.2%的平均成功率(相对提升10%)。值得注意的是,Synapse 是第一个解决 中 book-flight 任务的 ICL 方法。Synapse 在 Mind2Web 中的平均步骤成功率也比之前最先进的提示方案相对提升了56%。
1.6. 原文链接
https://arxiv.org/abs/2306.07863
1.7. PDF 链接
https://arxiv.org/pdf/2306.07863v3.pdf
2. 整体概括
2.1. 研究背景与动机
当前人工智能领域的一个长期目标是构建能够执行复杂任务以减少人类日常操作的智能体。其中,开发精通计算机控制的智能体是实现这一愿景的关键且实用的一步。这类智能体能够感知计算机状态(例如,屏幕截图或网页 HTML)并通过键盘和鼠标执行操作,以完成自然语言指定的任务(例如,预订航班和电子邮件管理)。
虽然传统的训练方法(如行为克隆 Behavioral Cloning, BC 和深度强化学习 Deep Reinforcement Learning, RL)依赖大规模数据集,但近年来研究发现,上下文学习 (In-Context Learning, ICL) 在实现通用和数据高效的计算机控制方面具有显著优势。通过向大型语言模型 (Large Language Models, LLMs) 提供少量演示(称为示例),智能体能够生成相应的动作。
然而,现有的 LLM 驱动计算机智能体仍然面临以下挑战,阻碍了其在 等任务套件中的表现:
-
上下文长度限制与复杂状态: LLM 的上下文窗口是有限的,而复杂的计算机状态(如冗长的网页 HTML)会迅速耗尽这些有限的上下文。这导致在少样本学习 (few-shot learning) 中能够提供的示例数量受限。此外,原始状态中与任务无关的信息可能会干扰 LLM 的正确决策。
-
示例表示不完整与错误累积: 现有智能体使用的示例结构(如高层计划或多选题)无法完整地表示整个操作轨迹。这意味着 LLM 在每个步骤都会被查询,容易导致在长时序任务中出现错误累积,需要额外的自校正机制。
-
任务特异性与泛化能力不足: 当前方法依赖于任务特定的示例,未能有效利用任务之间的相似性。这种硬编码的映射限制了智能体对新颖任务的泛化能力。
本文的动机正是为了解决这些核心挑战,提升 LLM 在计算机控制任务中的效率、准确性和泛化能力。
2.2. 核心贡献/主要发现
本文提出了 Synapse,一个旨在解决上述挑战的 LLM 驱动计算机智能体,其核心贡献和主要发现如下:
-
提出
Synapse智能体及其三大核心组件:- 状态抽象 (State Abstraction): 引入机制将原始计算机状态(如网页 HTML)处理成简洁、任务相关的观察 (observations),显著减少了每个状态所需的词元 (token) 数量,从而在有限的上下文内允许更多示例。
- 轨迹即示例提示 (Trajectory-as-Exemplar Prompting, TaE): 设计了一种新颖的提示方案,使用抽象状态和动作的完整成功轨迹作为少样本示例来提示 LLM。这改善了 LLM 的多步决策能力,减少了错误累积,并能隐式地促使 LLM 生成时间上抽象的动作。
- 示例记忆 (Exemplar Memory): 创建了一个存储成功轨迹嵌入的机制,并通过相似性搜索 (similarity search) 检索最相关的示例。这使得
Synapse能够利用任务相似性,从而提高对新任务的泛化能力。
-
在 基准上达到人类水平表现:
Synapse在64个任务中实现了99.2%的平均成功率,相对于现有方法取得了10%的相对提升。- 仅使用来自48个任务的演示,就成功解决了64个任务,且无需自校正机制。
- 里程碑式成就:
Synapse是第一个成功解决 中具有挑战性的book-flight任务的上下文学习 (ICL) 方法。
-
在
Mind2Web真实世界基准上实现显著提升:-
相对于现有最先进的 ICL 方法
MindAct,Synapse在平均步骤成功率 (Step Success Rate) 上取得了56%的相对提升。 -
通过逐步引入状态抽象、TaE 提示和示例记忆这三个组件,证明了每个组件的有效性。
-
即使使用较小的语言模型(如
CodeLlama-7B),Synapse也能比MindAct实现2.5倍的平均步骤成功率。这些成果共同证明了
Synapse在提高 LLM 驱动计算机智能体的效率、准确性和泛化能力方面的优越性,为构建通用和自适应的计算机智能体奠定了基础。
-
3. 预备知识与相关工作
3.1. 基础概念
为了更好地理解本文,以下是一些必要的背景概念:
-
大型语言模型 (Large Language Models, LLMs): 这是一类基于深度学习的统计语言模型,拥有极其庞大的参数量(通常数千亿甚至更多),通过在海量文本数据上进行自监督预训练,学习语言的复杂模式和知识。
LLM能够理解、生成、总结、翻译文本,并执行各种自然语言处理任务。它们的核心能力在于预测序列中的下一个词元 (token)。本文使用的GPT-3.5和CodeLlama-7B都是LLM。 -
计算机控制 (Computer Control): 指的是智能体 (agent) 通过软件接口(例如,模拟键盘和鼠标操作)与计算机环境(如操作系统、网页浏览器)进行交互,以完成特定任务的能力。这通常涉及感知计算机的视觉或结构化状态(如屏幕截图、HTML 代码)并输出相应的操作(如点击按钮、输入文本)。
-
上下文学习 (In-Context Learning, ICL):
LLM的一种强大能力,指在不更新模型参数的情况下,仅通过在输入提示 (prompt) 中提供少量示例 (exemplars) 和任务说明,模型就能理解并执行新任务。LLM能够从这些示例中推断出任务模式和所需的输出格式。 -
少样本学习 (Few-shot Learning): 在仅有少量训练样本(或演示示例)的情况下,模型能够快速学习并泛化到新任务或新数据。
ICL是实现LLM少样本学习能力的一种主要方式。 -
词元 (Token): 在
LLM中,文本数据在被模型处理之前会被分解成更小的单元,这些单元就是词元。一个词元可以是整个单词、单词的一部分(子词)或一个标点符号。LLM的上下文长度通常以能够处理的最大词元数量来衡量。 -
轨迹 (Trajectory): 在序列决策任务中,
轨迹是智能体与环境交互的完整历史记录,由一系列连续的状态 (state)和动作 (action)对组成。例如,在一个计算机控制任务中,它可能是一系列“看到网页 A -> 点击按钮 X -> 看到网页 B -> 输入文本 Y -> ...”的序列。 -
嵌入 (Embedding): 是一种将高维数据(如单词、句子、图像或复杂对象)映射到低维连续向量空间的技术。在这个向量空间中,语义或功能相似的数据点会具有相近的向量表示。
嵌入使得计算机能够捕捉和处理数据之间的关系。 -
相似性搜索 (Similarity Search): 指在大型数据库中,根据某种相似性度量(如欧几里得距离、余弦相似度),找到与给定查询项最相似的数据项的过程。在本文中,它是通过比较任务元数据 (task metadata) 的
嵌入向量来实现的。
3.2. 前人工作
本研究领域涉及 LLM 驱动智能体、计算机控制以及 ICL 方法。以下是本文提及的关键先前工作及其技术演进:
3.2.1. 基于 LLM 构建智能体
- 早期工作:
LLM结合其他技术来控制智能体。例如,Huang et al. (2022) 和 Brohan et al. (2023) 将LLM生成的计划与嵌入或值函数结合,以确定机器人策略。这些工作主要关注LLM生成高层语义计划的能力,而低层运动控制则仍依赖行为克隆 (Behavioral Cloning, BC)或强化学习 (Reinforcement Learning, RL)。 - 内部独白 (Inner Monologue): Huang et al. (2023) 引入
内部独白概念,将环境反馈融入闭环系统,增强了具身智能体的推理能力。 - LLM 推理/规划/代码能力: 许多工作致力于提升
LLM的推理、规划和编码能力,例如:- 思维链 (Chain-of-Thought, CoT): (Wei et al., 2022a; Kojima et al., 2022) 通过提示
LLM逐步思考,增强复杂推理能力。 - 从少到多 (Least-to-Most): (Zhou et al., 2022) 将复杂问题分解为简单子问题逐步解决。
- ReAct: (Yao et al., 2022a) 结合
推理 (Reasoning)和行动 (Acting),使LLM能够执行任务并获得反馈。 - 思想之树 (Tree-of-Thoughts): (Yao et al., 2023) 进一步扩展
CoT,探索多条推理路径。 - Reflexion: (Shinn et al., 2023) 引入动态记忆和自反思机制。
- 自调试 (Self-debugging): (Chen et al., 2023) 使
LLM能够识别并修正自身的错误。
- 思维链 (Chain-of-Thought, CoT): (Wei et al., 2022a; Kojima et al., 2022) 通过提示
- LLM 结合外部工具: (Wu et al., 2023a; Shen et al., 2023; Schick et al., 2023; Lu et al., 2023; Xu et al., 2023) 允许
LLM调用外部工具或 API 来扩展其能力,解决更广范围的任务。 - 代码生成策略: (Liang et al., 2023; Singh et al., 2023) 将智能体策略表述为代码生成问题,利用
LLM的编程能力。 - 上下文限制问题: Wu et al. (2023b) 识别了上下文限制问题,并使用预训练的问答语言模型来过滤状态,与
MindAct的做法类似。
3.2.2. 计算机控制智能体
- MiniWoB++ 基准:
- (Shi et al., 2017; Liu et al., 2018) 是一个标准基准,用于评估智能体在模拟网页环境中的交互能力。
- BC/RL 方法: 早期工作 (Shi et al., 2017; Liu et al., 2018; Gur et al., 2018; Jia et al., 2018; Gur et al., 2021) 尝试使用
BC和RL,但未能达到人类水平。 - CC-Net: (Humphreys et al., 2022) 通过大规模
BC训练,达到了人类水平性能,但需要2.4百万个演示,相当于6300小时的人类工作,泛化能力受限。 - 微调 LLM:
WebN-T5(Gur et al., 2023a) 和WebGUM(Furuta et al., 2023) 分别在12000和346827个演示上微调T5模型,但仍需大量数据且未达到人类水平。 - ICL 方法:
- RCI: (Kim et al., 2023) 采用递归自校正机制,在54个任务上达到90.6%的成功率,但依赖任务特定示例,泛化能力受限。
- AdaPlanner: (Sun et al., 2023) 利用环境反馈进行自校正,在53个任务上达到92.9%的成功率,与
RCI存在类似问题。 - Pix2Act: (Shaw et al., 2023) 结合树搜索和
BC,在1.3百万演示上解决了59个 任务。 - WebAgent: (Gur et al., 2023b) 使用小型元素排序模型过滤HTML状态,并用
LLM进行少样本动作生成,但未深入研究示例结构和记忆机制。
- 其他基准:
WebGPT(Nakano et al., 2021) 和WebShop(Yao et al., 2022b) 专注于网络浏览环境中的搜索查询优化,而非通用计算机控制。Mind2Web(Deng et al., 2023),AgentBench(Liu et al., 2023a),WebArena(Zhou et al., 2023),Android in the Wild(Rawles et al., 2023) 等新的基准被提出用于评估LLM智能体在真实世界或更复杂环境中的能力。
3.3. 差异化分析
Synapse 的方法与上述相关工作的主要区别和创新点在于:
- 低层动作接地 (Grounding Actions): 现有
LLM智能体在机器人控制等领域多专注于生成高层语义计划,而低层控制通常依赖BC或RL。然而,计算机控制的低层动作本身就具有高度语义性。Synapse提出了轨迹即示例提示 (TaE),旨在直接接地这些语义动作,提供更有效的提示方案。 - 解决上下文长度限制: 针对现有
ICL方法因复杂计算机状态和LLM上下文长度限制而难以提供足够示例的问题,Synapse引入状态抽象来精简输入,从而在有限上下文内允许更多有效信息。这与WebAgent等仅进行简单元素过滤的方法相比,提供了更灵活和智能的抽象机制。 - 完整轨迹表示: 多数
ICL方法(如RCI的高层计划和MindAct的多选题)以单步或高层方式提示LLM,导致在多步决策中容易累积错误。Synapse的TaE提示方案通过提供完整的状态-动作轨迹作为示例,能够更好地捕捉序列决策的本质,减少错误累积,并实现时间抽象 (Temporal Abstraction)。 - 泛化能力提升: 传统的
ICL方法通常依赖任务特定示例,缺乏泛化能力。Synapse的示例记忆通过存储和检索基于任务元数据相似性的示例,克服了这一限制,使得智能体能够利用任务间的相似性,更好地泛化到未见任务。这使得Synapse能够在更少任务的演示下解决更多任务,并对新任务具有更好的适应性。
4. 方法论
4.1. 方法原理
Synapse 的核心原理在于通过优化输入 LLM 的信息表示、决策过程的提示结构以及对历史经验的利用,来增强 LLM 在计算机控制任务中的性能、效率和泛化能力。它认识到现有 LLM 驱动智能体面临的三个主要挑战:有限的上下文长度、不完整的轨迹表示以及缺乏泛化能力。Synapse 提出了三个相互协作的组件来解决这些问题:状态抽象 负责压缩输入信息,轨迹即示例提示 (TaE) 负责引导 LLM 进行多步决策,而 示例记忆 则负责存储和检索相关经验以促进泛化。整体流程如 Figure 1 所示,当任务出现时,Synapse 首先从记忆中检索相关的少样本示例,然后通过 状态抽象 将原始状态转换为干净的、任务相关的观察。最后,结合示例轨迹和当前历史,提示 LLM 生成下一个动作。
以下是原文 Figure 1 的示意图:
该图像是论文中图1的示意图,展示了SyNAPSE系统的三大核心组件:状态抽象、轨迹示例提示和示例记忆。流程从环境信息出发,经过状态抽象生成简洁状态,再通过轨迹示例提示和示例记忆中通过相似度搜索提取的示例轨迹,引导大语言模型决策。
Figure 1: SyNAPSE consists of three main components. The process begins with state abstraction, where raw computer states (e.g., the HTML of webpages) are processed into concise task-relevant observations via few-shot learning of the LLM. This step reduces the number of tokens needed for each state, a prerequisite for the second component: trajectory-as-exemplar (TaE) prompting. In TaE prompting, the LLM is prompted with exemplary trajectories (a sequence of abstracted states and actions) and the current history to determine the next action. These prompts are retrieved from the exemplar memory using similarity search. The retrieval process utilizes the embeddings of task metadata, with each metadata mapped to the corresponding exemplars. Fig. 2 further shows an illustrative comparison of TaE prompting with the prompting schemes of other computer agents.
4.2. 核心方法详解
4.2.1. 问题设置 (Problem Setting)
本文关注计算机控制任务,其中智能体通过与环境交互来完成由自然语言指定的任务。智能体的状态空间和动作空间与人类使用计算机的方式一致。在每个时间步,智能体接收一个计算机状态(例如,网页的 HTML 或屏幕截图),并通过键盘和鼠标执行动作。动作可以是代码或自然语言,具体取决于基准测试。作为决策引擎,LLM 会被提供少样本示例,用于将原始状态处理成干净的观察,并生成动作。当任务完成时,其对应的轨迹被视为成功轨迹。
4.2.2. 状态抽象 (State Abstraction)
状态抽象 是 Synapse 的第一个关键组件,旨在解决 LLM 上下文长度限制和复杂计算机状态中任务无关信息干扰的问题。通过将冗长的原始状态转换为简洁、任务相关的观察,状态抽象 能够显著减少每个状态所需的词元 (token) 数量,从而在有限的 LLM 上下文窗口中容纳更多示例,并避免 LLM 被无关信息分散注意力。
具体而言,Synapse 利用 LLM 的少样本学习 (few-shot learning) 能力来执行状态抽象,并提出了两种形式:
-
显式抽象 (Explicit Abstraction):
- 适用场景: 当上下文可以处理多个状态时,例如在 的
email-inbox任务中。 - 工作方式:
LLM被提供一系列(state, observation)对作为少样本示例。这些示例展示了如何将原始的、详细的state转换为简洁的、任务相关的observation。然后,对于当前的原始状态,LLM将根据这些示例生成相应的干净observation。 - 示例: 一个原始
HTML状态可能包含大量div、span标签和样式信息,而显式抽象会将其精简为“邮件收件箱,包含发件人、主题和日期等字段”这样的文本描述。
- 适用场景: 当上下文可以处理多个状态时,例如在 的
-
隐式抽象 (Implicit Abstraction):
- 适用场景: 在状态非常复杂,显式抽象难以直接应用的情况下,例如 中的
book-flight任务。在这种情况下,直接手动指定state-observation对可能会过于繁琐或不切实际。 - 工作方式:
LLM被提供(task, code)对作为少样本示例。这里的code是用于解析原始状态并提取任务相关信息的程序代码(例如,Python 脚本)。LLM根据当前任务和这些示例生成一段这样的代码。这段生成的代码将原始状态和任务描述作为输入参数,执行后返回干净的observation。 - 错误处理: 如果生成的代码在执行过程中出现错误,
Synapse会进一步要求LLM进行零样本 (zero-shot) 状态抽象,即直接从原始状态中提取信息而无需代码。 - 示例: 对于
book-flight任务,LLM可能会生成一段Python代码,使用BeautifulSoup等库解析航班信息的HTML,并提取出“最便宜的航班价格是 $X 美元”这样的简洁观察。
- 适用场景: 在状态非常复杂,显式抽象难以直接应用的情况下,例如 中的
-
与现有状态抽象工具的结合:
-
Synapse的状态抽象原则可以有效利用现有工具。在Mind2Web基准中,其使用了预训练的元素排序模型 (element-ranking model) 来过滤HTML元素。 -
具体实现: 原始
MindAct方法会保留排名前50的相关元素。而Synapse将 (即保留的元素数量)设置为更小的值,例如对于之前的观察设置为3,对于当前观察设置为5。尽管这会导致从86%下降到53%的召回率(即只有53%的干净观察包含目标元素),但这种更简洁的抽象方式反而带来了更高的步骤成功率。这表明,LLM在处理更精简、更相关的观察时,即使信息量略有减少,也能做出更准确的决策。通过上述方法,
状态抽象将冗长复杂的原始状态转化为精炼的、任务相关的观察,为后续的轨迹即示例提示和示例记忆模块提供了高效的输入。
-
4.2.3. 轨迹即示例提示 (Trajectory-as-Exemplar Prompting, TaE)
轨迹即示例提示 (TaE) 是 Synapse 的第二个核心组件,旨在解决现有计算机智能体提示方案中存在的决策序列性不足和多轮 LLM 查询中错误累积的问题。传统的提示方法(如 RCI 的高层计划或 MindAct 的多选题)往往将决策过程分解为孤立的步骤,忽略了完整的环境交互历史,从而导致在长时序任务中性能下降。
TaE 提示方案的核心思想是利用完整的成功操作轨迹作为少样本示例,来指导 LLM 生成动作。其工作原理如下:
-
示例格式:
TaE提示将成功的轨迹格式化为(task, observation, action, ..., observation, action)序列。这种格式清晰地展示了从给定任务 (task)开始,经过一系列观察 (observation)和动作 (action)的交错序列,最终完成任务的全过程。 -
提示过程:
-
首先,将几个成功的、完整的
轨迹即示例 (TaE exemplars)输入给LLM,以展示如何解决类似任务。 -
然后,将当前的
轨迹 (current trajectory)(包括任务描述以及之前所有干净的观察-动作对)输入LLM,要求其预测下一个动作。 -
执行与更新:
LLM生成动作后,智能体执行这些动作。然后,将新的环境状态经过状态抽象得到新的观察,并将其与刚才执行的动作一起追加到当前轨迹中,形成新的提示,再次输入LLM以生成后续动作。这个过程持续进行,直到任务完成或达到最大步骤数。以下是原文 Figure 2 的示意图,对比了
TaE提示与其他提示方案:
该图像是图表,展示了针对MiniWoB++中删除特定后缀文件任务的三种提示方案对比。包括RCI的逐步计划提示、MindAct的多选题格式示例提示,以及SyNAPSE基于轨迹示例的提示方法,后者能生成连续动作,提升决策效率。
-
Figure 2: Comparison of trajectory-as-exemplar prompting with other prompting schemes. The illustration is based on the terminal task in MiniWoB , where the agent is asked to delete a file ending with a specific extension. To solve this task, RCI (Kim et al., 2023) prompts the LLM with a step-by-step plan combined with the current state and the previous actions to generate each action, while MindAct (Deng et al., 2023) prompts the LLM with MCQ-formatted exemplars at each step. In contrast, SyNAPSE uses a straightforward prompting scheme based on trajectory-level exemplars. This exemplar structure offers a consistent and interactive format, is more informative, and enables the LLM to produce temporally abstracted actions until a new state is required. As shown above, the LLM generates two consecutive actions: type(ls) and press(enter) without querying the new state. After executing these actions, it pauses to receive the new state for subsequent actions. We provide several complete trajectories in Appendix C for illustration.
- 优势分析:
-
一致性与可解析性: 这种
观察-动作交错的固定格式非常适合于LLM理解和生成动作,同时也方便解析LLM的输出并设置停止词 (stop tokens)。 -
信息量丰富: 相较于仅提供高层计划或单步选择,完整的轨迹提供了更丰富的上下文信息,有助于
LLM做出更准确、更连贯的决策。 -
时间抽象 (Temporal Abstraction): 这是
TaE提示的一个关键优势。LLM能够从示例轨迹中学习到,某些动作序列可以连续执行而无需等待新的状态反馈。例如,在terminal任务中,LLM可以一次性生成type('ls')和press('enter')两个动作,然后才接收新的终端输出。这减少了LLM查询的次数,降低了推理成本和延迟,并提高了长时序任务的效率和成功率。 -
直接从人类演示转化:
TaE示例可以直接从人类在计算机上的操作演示中提取和转化,简化了示例的创建过程。通过
TaE提示,Synapse克服了传统ICL方法在多步决策中累积误差的问题,特别是在需要执行许多步骤和重复动作的任务(如use-autocomplete和use-spinner)中表现出色。
-
4.2.4. 示例记忆 (Exemplar Memory)
示例记忆 (Exemplar Memory) 是 Synapse 的第三个核心组件,旨在解决现有计算机智能体依赖任务特定示例、难以泛化到新颖任务的问题。传统方法通常为每个任务硬编码(hard-code)其对应的少样本示例,从而无法利用任务之间的相似性,限制了泛化能力。
示例记忆 的核心思想是建立一个可检索的知识库,存储成功的操作轨迹及其元数据 (metadata),并通过相似性搜索来自动匹配并检索与当前任务最相关的示例。
-
记忆结构:
示例记忆被定义为一个键值对集合 。- 是一个固定大小的数组,存储着任务元数据(例如,任务描述、初始状态等)的嵌入 (embedding) 向量。
- 存储着与 中嵌入向量对应的
状态抽象提示和示例轨迹 (exemplary trajectories)。
-
构建过程:
- 首先,收集一系列成功的操作轨迹。
- 对于每条轨迹,提取其关联的
任务元数据(例如,任务描述、初始环境状态等)。 - 使用一个预训练的
嵌入模型 (embedding model)(如text-embedding-ada-002)对这些任务元数据进行编码,将其转换为高维向量。 - 这些嵌入向量连同其对应的
状态抽象提示和示例轨迹被存储在一个向量数据库 (vector database)中(例如,Faiss),以支持高效的相似性搜索。
-
检索过程:
- 当智能体被赋予一个新任务时,它首先提取该任务的
查询元数据 (query metadata)(例如,任务描述和初始状态)。 - 然后,使用相同的
嵌入模型将查询元数据编码为查询向量 (query vector)。 - 接下来,
Synapse在向量数据库中执行相似性搜索,以查找与 最相似的任务元数据嵌入向量 。 - 相似性度量: 检索过程通常通过最小化
欧几里得距离 (Euclidean distance)来找到最相似的示例。形式化表示为: 其中 表示查询向量 与记忆中示例向量 之间的欧几里得距离。原文摘要和 Figure 1 中写的是 ,使用相似度函数。由于相似度通常与距离负相关,这里沿用原文的含义,即找到最“相似”的示例。 - 具体策略:
- MiniWoB++: 元数据由任务描述与来自48个已选任务的五个随机种子的初始状态拼接而成。
Synapse检索排名前三的示例,然后基于这三个示例中最常见的任务类别,检索该类别下的所有示例作为最终的少样本演示。这种策略利用了任务的明确划分。 - Mind2Web: 将训练集中的网站名称、领域和任务描述作为轨迹的元数据进行编码。检索与匹配元数据对应的示例用于少样本学习。
- MiniWoB++: 元数据由任务描述与来自48个已选任务的五个随机种子的初始状态拼接而成。
- 当智能体被赋予一个新任务时,它首先提取该任务的
-
优势分析:
-
自动匹配:
示例记忆使得Synapse能够自动地为新任务找到最相关的示例,无需人工指定,大大提高了智能体的自适应性。 -
泛化能力增强: 通过利用任务间的相似性,
Synapse能够将从已知任务中学到的经验应用到未见任务中,显著提升了泛化能力。 -
效率与灵活性: 这种模块化的记忆机制使得
Synapse能够更高效地管理和利用知识,为构建通用型计算机智能体奠定了基础。通过这三个组件的协同工作,
Synapse构成了一个强大而灵活的计算机控制智能体,能够有效地处理复杂状态、进行多步决策并泛化到新任务。
-
5. 实验设置
5.1. 数据集
本文在两个广泛使用的基准上评估了 Synapse: 和 Mind2Web。
5.1.1. MiniWoB++
-
来源与特点: (Shi et al., 2017; Liu et al., 2018) 是一个标准的计算机控制任务套件,集成了多样化的任务,旨在模拟真实世界中的人机交互复杂性。尽管这是一个相对简化的环境,但其中的一些任务(如
book-flight、click-checkboxes-soft和use-autocomplete)对现有计算机智能体而言仍然具有挑战性。 -
任务数量与示例: 实验评估了64个任务。其中,48个任务提供了用于训练
Synapse的示例 (exemplars),其余16个是未见任务 (unseen tasks),用于测试泛化能力。 -
未见任务列表:
choose-list,click-checkboxes-transfer,click-checkboxes,click-option,click-tab-2-hard,click-test-2,click-test,copy-paste,login-user,email-inbox-forward-nl-turk,email-inbox-forward-nl,email-inbox,enter-text,multi-orderings,simple-arithmetic,unicode-test。 -
状态与动作空间: 状态空间是原始的
HTML代码,动作空间包括click-xpath(点击指定xpath的元素)、move-mouse(移动鼠标到指定xpath的元素)、type(输入文本)、press(按下键盘按键)和click-options(点击列表中的选项)。这些操作与人类通过键盘鼠标与计算机交互的方式一致。 -
样本示例 (终端任务): 在 的
terminal任务中,智能体被要求删除一个特定扩展名的文件(如.gpg)。以下是一个状态抽象前后的示例:原始状态 (
HTML) 示例 (部分):Use the terminal below to delete a file ending with the extension .gpg'terminalWelcome! Type help for a list of available commands.Last login: Sun Sep 24 2023user^ { + + }^ { + + } and Mind2Web. ### 5.1.2. Mind2Web * **来源与特点:** `Mind2Web` (Deng et al., 2023) 是一个更真实的网站交互数据集,包含来自各种真实世界网站(如 `Airbnb` 和 `Twitter`)的人类演示,任务总数超过2000个,涵盖137个网站和31个不同领域。 * **任务描述:** 任务描述只提供高层目标,刻意避免详细的、分步的指令,鼓励智能体自主理解和执行任务。 * **交互方式:** 智能体可以点击、选择和输入网页元素,模拟人类在网站上的典型活动。 * **数据集划分与泛化评估:** * **训练集:** 1009个任务,来自73个网站。这些数据用于训练或构建示例记忆。 * <strong>跨任务 (Cross-Task) 测试集:</strong> 252个任务,来自69个网站。用于评估智能体对同一网站上类似任务的泛化能力。 * <strong>跨网站 (Cross-Website) 测试集:</strong> 7个任务,来自10个训练集中未见的网站,但这些网站属于训练集中已知的领域。用于评估智能体对新网站(相同领域)的泛化能力。 * <strong>跨领域 (Cross-Domain) 测试集:</strong> 912个任务,来自73个网站。用于评估智能体对训练集中完全未见的领域的泛化能力。 * `示例记忆` 仅存储训练集中的数据。 * **状态与动作空间:** 观察空间是数据集中提供的 `HTML`,动作空间包括 `CLICK [id]`(点击指定 `id` 的元素)、`TYPE [id] [value]`(在指定 `id` 的元素中输入值)和 `SELECT [id] [value]`(为指定 `id` 的元素选择值)。 * <strong>样本示例 (购物任务):</strong> 在 `Mind2Web` 的一个购物任务中,智能体可能被要求“从我的购物车中移除 SSD”。以下是一个 `Mind2Web` 抽象后的观察示例和对应动作: **抽象后的观察 (`Observation`) 示例:** ``` '<html> <div> <a id=131 shopping cart> <i icon of shopping cart /> <div> <span> 3 </span> Items </div> <div> 52.97Electronics对应动作 (
Action) 示例:
5.2. 评估指标
本文针对 和 Mind2Web 使用不同的评估指标,以全面衡量 Synapse 的性能。
5.2.1. MiniWoB++ 评估指标
- 成功率 (Success Rate, SR):
- 概念定义: 衡量智能体在指定任务中,从初始状态到最终目标状态,是否能够成功完成所有必要操作的百分比。这个指标关注的是任务的端到端完成情况,是衡量智能体在该任务上整体表现的最直接指标。
- 数学公式:
- 符号解释:
- :智能体成功完成任务的回合 (episode) 数量。
- :智能体尝试执行任务的回合总数量。
5.2.2. Mind2Web 评估指标
-
元素选择准确率 (Element Selection Accuracy, Ele. Acc):
- 概念定义: 衡量智能体在每个决策步骤中,正确识别并选择目标
HTML元素的准确性。这主要评估智能体对网页结构和任务意图的理解能力,能否准确地指出下一步操作的靶点。 - 数学公式:
- 符号解释:
- :智能体正确选择了目标元素的步骤数量。
- :所有任务轨迹中的总步骤数量。
- 概念定义: 衡量智能体在每个决策步骤中,正确识别并选择目标
-
步骤成功率 (Step Success Rate, Step SR):
- 概念定义: 衡量智能体在任务执行的每个步骤中,不仅选择正确的元素,还执行正确操作的成功率。这个指标比
Ele. Acc更严格,因为它要求智能体在每一步都做出完全正确的决策(元素和操作)。 - 数学公式:
- 符号解释:
- :智能体在每个步骤中,同时正确选择了元素并执行了正确动作的次数。
- :所有任务轨迹中的总步骤数量。
- 概念定义: 衡量智能体在任务执行的每个步骤中,不仅选择正确的元素,还执行正确操作的成功率。这个指标比
-
任务成功率 (Task Success Rate, SR):
- 概念定义: 衡量智能体成功完成整个任务的百分比。与 的
SR类似,但在Mind2Web的真实世界、多步骤任务背景下进行评估,通常要求智能体完成所有子目标以被判定为成功。 - 数学公式:
- 符号解释:
- :成功完成的任务数量。
- :尝试执行的任务总数量。
- 概念定义: 衡量智能体成功完成整个任务的百分比。与 的
5.3. 对比基线
为了全面评估 Synapse 的性能,本文将其与 和 Mind2Web 上的多种最先进 (state-of-the-art, SOTA) 方法进行了比较。
5.3.1. MiniWoB++ 基线
- 行为克隆 (Behavioral Cloning, BC) 和强化学习 (Reinforcement Learning, RL) 基线:
CC-Net(Humphreys et al., 2022): 结合大规模BC和RL的方法,以其在 上达到人类水平性能而闻名,但需要非常庞大的数据集。Pix2Act(Shaw et al., 2023): 也结合了BC和RL,并利用树搜索来解决任务。
- 微调 (Fine-tuning) 基线:
WebGUM(Furuta et al., 2023): 一种在大量演示上进行微调的语言模型。WebN-T5(Gur et al., 2023a):T5模型的微调变体,同样需要大量数据进行训练。
- 上下文学习 (In-Context Learning, ICL) 基线:
RCI(Kim et al., 2023): 采用递归自校正机制来解决 任务,在54个任务上表现出色,但依赖任务特定示例。AdaPlanner(Sun et al., 2023): 利用环境反馈进行自校正,与RCI类似,在53个任务上表现良好。
- 人类表现 (Human Scores): 作为性能的黄金标准,人类在 上的表现数据来自
CC-Net(Humphreys et al., 2022)。
5.3.2. Mind2Web 基线
- MindAct (Deng et al., 2023): 这是
Mind2Web基准上当前最先进的ICL方法。MindAct利用元素排序模型过滤顶层相关元素作为观察,并使用多选题 (Multi-Choice Question, MCQ) 格式递归地查询LLM以选择动作。
5.4. LLM 配置
- MiniWoB++ 实验:
- LLM:
gpt-3.5-turbo-0301。 - 回合数: 每个任务运行50个回合 (episodes) 以生成结果。
- LLM:
- Mind2Web 实验:
- 默认 LLM:
gpt-3.5-turbo-16k-0613。 - CodeLlama-7B: 在部分实验中也使用了
CodeLlama-7B(Roziere et al., 2023) 作为底层LLM进行对比。
- 默认 LLM:
- 温度 (Temperature): 所有实验中
LLM的温度参数都设置为0,这意味着采用贪婪解码 (greedy decoding),每次都选择概率最高的词元,以确保结果的确定性和可复现性。 - 嵌入模型 (Embedding Model):
text-embedding-ada-002用于将任务元数据编码为向量,以支持示例记忆中的相似性搜索。 - 向量数据库 (Vector Database):
Faiss(Johnson et al., 2019) 被用于存储嵌入向量并执行高效的大规模相似性搜索。
6. 实验结果与分析
6.1. 核心结果分析
6.1.1. MiniWoB++ 结果分析
Synapse 在 基准上表现出色,达到了人类水平的性能,并显著超越了所有现有基线。
以下是原文 Figure 3 的示意图,展示了 MiniWoB++ 任务中不同方法的平均成功率及数据效率对比:
该图像是图表,展示了MiniWoB++任务中不同方法的平均成功率及数据效率对比。左图为各任务的成功率箱形图,右图展示了成功率与每任务示例数量的关系,突出Synapse在少示例情况下的优越性能。
Figure 3: SyNAPSE is the first ICL method that achieves human-level performance in MiniWoB . It outperforms previous self-correction methods, including RCI and AdaPlanner. A comprehensive task-wise evaluation is shown in Appendix A. \*Pix2Act and AdaPlanner are concurrent with our work. We excluded them from the right-side figure due to their overlap with CC-Net and RCI. The outlier tasks are determined with an interquartile range of 1.5.
-
总体性能:
Synapse取得了99.2%的平均成功率,是第一个达到人类水平的ICL方法。它在64个任务中取得了这一成就,而无需依赖自校正机制。相比之下,RCI和AdaPlanner等依赖自校正的方法,在任务数量和成功率上均表现逊色。 -
长上下文和复杂状态任务的突破:
Synapse是第一个成功解决 中book-flight任务的ICL方法。这个任务因其冗长的网页内容和复杂的决策链而极具挑战性。这得益于状态抽象有效压缩了状态信息,以及TaE提示处理多步决策的能力。- 在需要详细状态理解的任务(例如
click-collapsible-2、click-tab-2-hard和count-shape)上,Synapse优于其他ICL方法(如RCI),这强调了状态抽象在准确捕捉复杂HTML状态方面的有效性。
-
多步决策和误差累积的克服:
- 对于涉及多步骤或重复动作的任务(例如
use-autocomplete、use-spinner),Synapse显著提高了性能。这归因于TaE提示能够提供全面的历史信息,并通过时间抽象 (temporal abstraction)减少多轮LLM查询中的错误累积。
- 对于涉及多步骤或重复动作的任务(例如
-
泛化能力:
Synapse仅使用来自48个任务的演示就解决了64个任务,这意味着它能够泛化到16个未见任务,而现有ICL方法(如RCI)通常需要为每个任务提供特定示例。 -
与 和微调方法的比较: 即使与 的
SOTA方法CC-Net相比,Synapse在某些任务(特别是文本处理任务如terminal和text-transform)上也表现更优,同时保持了更高的灵活性。与微调LLM的方法(WebGUM和WebN-T5)相比,Synapse在所有任务上都取得了更好的性能。以下是原文 Figure 4 的示意图,展示了 Synapse 与三种 SOTA 方法(CC-Net、RCI、WebGUM)在不同任务上的成功率对比:
该图像是图表,展示了图4中Synapse与三种SOTA方法(CC-Net、RCI、WebGUM)在不同任务上的成功率对比,柱状图按成功率差异升序排列,未显示差异小于0.05的任务。
Figure 4: Task-wise comparisons between SyNAPSE and various SOTA methods. For clarity, the bars in each figure are arranged in ascending order based on the success rate differences. Tasks not reported by other methods and those with differences less than 0.05 are not included.
- 失败案例分析: 少数失败案例主要归因于
LLM的不正确推理。例如,在count-shape任务中,LLM可能会错误地计数目标项目。在text-transform任务中,LLM偶尔会生成与HTML中字符相似但不完全相同的动作(例如,将jrpf识别为jrfp)。
6.1.2. Mind2Web 结果分析
在 Mind2Web 真实世界网站基准上,Synapse 同样展示了其有效性,并通过逐步添加其核心组件来验证每个组件的贡献。
-
组件增量效果:
- 基线 (MindAct): 使用元素排序模型过滤前50个相关元素,并采用
MCQ提示。 - Synapse w/ state abstraction: 仅使用
直接生成 (direct generation)和更少的顶层元素(前3个用于过去观察,前5个用于当前观察)作为状态抽象。这种简化实现比MindAct的MCQ提示(使用前50个元素)使平均步骤成功率提高了32%。这表明即使召回率 (recall)从86%下降到53%,更简洁、任务相关的观察对LLM决策更有利。 - Synapse w/ state abstraction + TaE: 在
状态抽象的基础上加入TaE提示。这进一步将平均步骤成功率提高了19%,总计比MindAct提升了50%。这验证了TaE提示在增强LLM多步决策能力方面的优势。 - Synapse w/ state abstraction + TaE + memory (完整 Synapse): 引入
示例记忆后,性能进一步提升,平均步骤成功率比MindAct提升了56%。
- 基线 (MindAct): 使用元素排序模型过滤前50个相关元素,并采用
-
CodeLlama-7B 性能: 即使使用较小的开源
LLMCodeLlama-7B,Synapse也能比MindAct实现2.5倍的平均步骤成功率。这表明Synapse的设计对不同的LLM具有普适性。这些结果共同证明了
Synapse在标准和真实世界基准上相对于现有计算机智能体的优越性。
6.2. 数据呈现 (表格)
以下是原文 Table 1 的结果:
| Method | Cross-Task | Cross-Website | Cross-Domain | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Ele. Acc | Step SR | SR | Ele. Acc | Step SR | SR | Ele. Acc | Step SR | SR | |
| MindAct (CodeLlama-7B) | 11.2 | 7.7 | 0.4 | 12.4 | 9.0 | 0.6 | 13.8 | 9.9 | 0.2 |
| SYNAPSE w/ state abstraction | 21.4 | 15.5 | 0.8 | 19.5 | 13.5 | 0.6 | 20.0 | 15.6 | 1.2 |
| SYNAPSE w/ state abstraction + TaE | 27.0 | 24.5 | 1.2 | 21.4 | 17.9 | 0.0 | 22.1 | 19.9 | 0.7 |
| SYNAPSE w/ state abstraction + TaE + memory | 29.4 | 26.4 | 3.2 | 22.9 | 18.9 | 0.6 | 22.6 | 19.7 | 0.3 |
| MindAct (GPT-3.5) | 20.3 | 17.4 | 0.8 | 19.3 | 16.2 | 0.6 | 21.6 | 18.6 | 1.0 |
| SYNAPSE w/ state abstraction | 29.8 | 25.2 | 2.0 | 26.1 | 19.6 | 0.6 | 28.0 | 24.3 | 1.8 |
| SYNAPSE w/ state abstraction + TaE | 32.8 | 29.2 | 2.0 | 28.0 | 22.7 | 0.6 | 29.0 | 26.2 | 1.8 |
| SYNAPSE w/ state abstraction + TaE + memory | 34.0 | 30.6 | 2.4 | 29.1 | 24.2 | 0.6 | 29.6 | 26.4 | 1.5 |
以下是原文 Table 2 的结果:
| Test set | Distance | ΔGPT | ΔCodeLlama |
|---|---|---|---|
| Cross-Task | 17.0 | 1.4 | 1.9 |
| Cross-Website | 24.3 | 1.5 | 1.0 |
| Cross-Domain | 32.9 | 0.2 | -0.2 |
以下是原文 Table 3 的结果:
| Task | Ours | Human | RCI | AdaPlanner | Pix2Act | CC-Net | WebGUM | WebN-T5 | Others | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| (BC) | (BC) | ||||||||||
| bisect-angle | n/a | 0.92 | n/a | n/a | 0.96 | 0.32 | 0.97 | 0.29 | n/a | n/a | 0.80 |
| book-flight | 1.00 | 0.87 | n/a | n/a | n/a | n/a | 0.87 | 0.00 | 0.98 | 0.00 | 1.00 |
| chase-circle | n/a | 0.82 | n/a | n/a | n/a | n/a | 0.93 | 0.80 | n/a | n/a | 1.00 |
| choose-date | 1.00 | 0.97 | n/a | n/a | 0.79 | 0.06 | 0.97 | 0.12 | 0.13 | 0.00 | 1.00 |
| choose-date-easy | n/a | 0.99 | n/a | n/a | n/a | n/a | 0.99 | 0.42 | 1.00 | 0.03 | n/a |
| choose-date-medium | n/a | 0.98 | n/a | n/a | n/a | n/a | 0.99 | 0.26 | 0.60 | 0.00 | n/a |
| choose-list | 1.00 | 0.98 | 1.00 | 1.00 | n/a | n/a | 0.99 | 0.19 | 0.24 | 0.26 | 0.26 |
| circle-center | n/a | 0.96 | n/a | n/a | 0.96 | 0.52 | 0.97 | 0.36 | n/a | n/a | 0.98 |
| click-button | 1.00 | 0.98 | 1.00 | 1.00 | 0.99 | 0.32 | 1.00 | 0.78 | 1.00 | 1.00 | 1.00 |
| click-button-sequence | 1.00 | 0.94 | 1.00 | 1.00 | 0.99 | 1.00 | 1.00 | 0.47 | 1.00 | 1.00 | 1.00 |
| click-checkboxes-large | 1.00 | 0.87 | 0.94 | 1.00 | 0.99 | 1.00 | 0.71 | 0.00 | 0.99 | 0.22 | 0.84 |
| click-checkboxes-soft | 1.00 | 0.73 | 0.72 | 0.80 | 0.61 | 0.91 | 0.95 | 0.04 | 0.98 | 0.54 | 0.94 |
| click-checkboxes-transfer | 1.00 | 0.98 | 1.00 | 0.98 | 1.00 | 0.76 | 0.99 | 0.36 | 0.99 | 0.63 | 0.64 |
| click-collapsible | 1.00 | 0.99 | 1.00 | 1.00 | 0.94 | 0.80 | 1.00 | 0.81 | 0.98 | 0.00 | 1.00 |
| click-collapsible-2 | 1.00 | 0.97 | 0.62 | 0.84 | 0.97 | 0.31 | 0.98 | 0.17 | 0.95 | 0.00 | 0.99 |
| click-color | 1.00 | 0.97 | 1.00 | 1.00 | 0.99 | 0.88 | 1.00 | 0.82 | 0.34 | 0.27 | 1.00 |
| click-dialog | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0.12 | 1.00 | 0.95 | 1.00 | 1.00 | 1.00 |
| click-dialog-2 | 1.00 | 0.99 | 1.00 | 1.00 | 1.00 | 0.73 | 1.00 | 0.88 | 0.43 | 0.24 | 1.00 |
| click-link | 1.00 | 0.99 | 1.00 | 0.98 | 0.98 | 0.86 | 0.99 | 0.59 | 1.00 | 1.00 | 1.00 |
| click-menu | 1.00 | 0.97 | 1.00 | 0.78 | n/a | n/a | 0.94 | 0.22 | 0.37 | 0.37 | 0.13 |
| click-menu-2 | n/a | 0.98 | n/a | n/a | n/a | n/a | 0.83 | 0.52 | n/a | n/a | 0.16 |
| click-option | 1.00 | 0.99 | 1.00 | 1.00 | 1.00 | 0.00 | 0.99 | 0.21 | 1.00 | 0.87 | 1.00 |
| click-pie | 1.00 | 0.98 | n/a | n/a | 0.99 | 0.81 | 0.97 | 0.15 | 0.99 | 0.51 | 1.00 |
| click-scroll-list | 1.00 | 0.91 | 1.00 | 1.00 | n/a | n/a | 0.60 | 0.01 | 0.00 | 0.00 | 0.07 |
| click-shades | 1.00 | 0.91 | 1.00 | 1.00 | 0.99 | 0.76 | 1.00 | 0.04 | 0.00 | 0.00 | 0.99 |
| click-shape | 0.98 | 0.88 | 0.98 | 0.75 | 0.94 | 0.19 | 0.95 | 0.11 | 0.72 | 0.53 | 0.64 |
| click-tab | 1.00 | 0.99 | 1.00 | 1.00 | 1.00 | 0.54 | 1.00 | 0.95 | 1.00 | 0.74 | 1.00 |
| click-tab-2-easy | n/a | 0.99 | n/a | n/a | 0.99 | 0.77 | 0.99 | 0.61 | n/a | n/a | n/a |
| click-tab-2-hard | 0.98 | 0.96 | 0.76 | 0.78 | 0.97 | 0.00 | 0.98 | 0.19 | 0.95 | 0.12 | n/a |
| click-tab-2-medium | n/a | 0.97 | n/a | n/a | 1.00 | 0.07 | 0.99 | 0.54 | n/a | n/a | n/a |
| click-test | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| click-test-2 | 1.00 | 0.99 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 0.95 | 1.00 | 1.00 | 1.00 |
| click-test-transfer | n/a | 0.99 | n/a | n/a | 1.00 | 1.00 | 1.00 | 0.94 | n/a | n/a | n/a |
| click-widget | 1.00 | 0.83 | 0.98 | 1.00 | 1.00 | 0.87 | 1.00 | 0.56 | 1.00 | 1.00 | 1.00 |
| copy-paste | 1.00 | 0.94 | n/a | n/a | n/a | n/a | 0.79 | 0.04 | n/a | n/a | 0.00 |
| count-shape | 0.90 | 0.82 | 0.40 | 0.50 | 0.70 | 0.00 | 0.85 | 0.21 | 0.68 | 0.41 | 0.76 |
| count-sides | n/a | 0.98 | n/a | n/a | 1.00 | 0.38 | 1.00 | 0.74 | n/a | n/a | 0.30 |
| drag-box | n/a | 0.99 | n/a | n/a | 0.99 | 1.00 | 1.00 | 0.61 | n/a | n/a | 0.31 |
| drag-cube | n/a | 0.99 | n/a | n/a | n/a | n/a | 0.79 | 0.23 | n/a | n/a | 0.18 |
| drag-item | n/a | 0.98 | n/a | n/a | 1.00 | 0.85 | 1.00 | 0.61 | n/a | n/a | n/a |
| drag-items | n/a | 0.93 | n/a | n/a | 1.00 | 0.64 | 0.99 | 0.13 | n/a | n/a | 0.41 |
| drag-shapes | n/a | 0.96 | n/a | n/a | 0.98 | 0.96 | 0.99 | 0.26 | n/a | n/a | 0.92 |
| drag-sort-numbers | n/a | 0.92 | n/a | n/a | 0.95 | 0.08 | 0.97 | 0.11 | n/a | n/a | 0.66 |
| email-inbox-delete | n/a | 0.99 | n/a | n/a | 1.00 | 0.99 | 1.00 | 0.22 | n/a | n/a | 1.00 |
| email-inbox-forward | n/a | 0.96 | n/a | n/a | n/a | n/a | 1.00 | 0.01 | n/a | n/a | n/a |
| email-inbox-forward-nl | 1.00 | 0.91 | 1.00 | 1.00 | n/a | n/a | 1.00 | 0.00 | 1.00 | 0.60 | n/a |
| email-inbox-forward-nl-turk | 1.00 | 0.88 | 0.94 | 1.00 | n/a | n/a | 1.00 | 0.00 | 1.00 | 0.33 | n/a |
| email-inbox-nl-turk | 1.00 | 0.93 | 0.98 | 0.90 | n/a | n/a | 1.00 | 0.05 | 0.98 | 0.23 | 0.93 |
| email-inbox-noscroll | n/a | 0.96 | n/a | n/a | n/a | n/a | 1.00 | 0.13 | n/a | n/a | n/a |
| email-inbox-reply | n/a | 0.91 | n/a | n/a | n/a | n/a | 1.00 | 0.00 | n/a | n/a | n/a |
| email-inbox-star-reply | n/a | 0.95 | n/a | n/a | n/a | n/a | 1.00 | 0.11 | n/a | n/a | n/a |
| enter-password | 1.00 | 0.96 | 1.00 | 0.98 | n/a | n/a | 1.00 | 0.02 | 1.00 | 0.97 | 1.00 |
| enter-text | 1.00 | 0.98 | 1.00 | 0.98 | n/a | n/a | 1.00 | 0.35 | 1.00 | 0.89 | 1.00 |
| enter-text-2 | n/a | 0.91 | n/a | n/a | 0.97 | 1.00 | 0.98 | 0.04 | n/a | n/a | 0.00 |
| enter-text-dynamic | 1.00 | 0.97 | 1.00 | 0.96 | n/a | n/a | 1.00 | 0.39 | 1.00 | 0.98 | 1.00 |
| enter-time | 1.00 | 0.98 | 1.00 | 0.96 | 1.00 | 0.78 | 0.97 | 0.04 | 0.00 | 0.00 | 0.90 |
| find-midpoint | n/a | 0.94 | n/a | n/a | 0.96 | 0.74 | 0.97 | 0.35 | n/a | n/a | 0.31 |
| focus-text | 1.00 | 1.00 | 1.00 | 1.00 | n/a | n/a | 1.00 | 0.99 | 1.00 | 1.00 | 1.00 |
| focus-text-2 | 1.00 | 0.99 | 1.00 | 0.94 | n/a | n/a | 1.00 | 0.96 | 1.00 | 1.00 | 1.00 |
| grid-coordinate | 1.00 | 0.87 | 1.00 | 1.00 | 0.92 | 0.97 | 1.00 | 0.66 | 1.00 | 0.49 | 1.00 |
| guess-number | 1.00 | 0.99 | 0.20 | 0.88 | n/a | n/a | 1.00 | 0.21 | 0.11 | 0.00 | 0.20 |
| highlight-text | n/a | 0.97 | n/a | n/a | n/a | n/a | 1.00 | 0.51 | n/a | n/a | 0.90 |
| highlight-text-2 | n/a | 0.97 | n/a | n/a | n/a | n/a | 1.00 | 0.40 | n/a | n/a | 0.13 |
| identify-shape | 1.00 | 0.98 | 0.76 | 0.96 | 1.00 | 0.94 | 1.00 | 0.68 | 1.00 | 0.88 | 1.00 |
| login-user | 1.00 | 0.96 | 1.00 | 1.00 | n/a | n/a | 1.00 | 0.00 | 1.00 | 0.82 | 1.00 |
| login-user-popup | 1.00 | 0.94 | 0.68 | 0.98 | n/a | n/a | 1.00 | 0.02 | 0.99 | 0.72 | n/a |
| multi-layouts | 0.98 | 0.95 | 0.72 | 0.84 | n/a | n/a | 1.00 | 0.00 | 1.00 | 0.83 | 1.00 |
| multi-orderings | 1.00 | 0.96 | 1.00 | 1.00 | n/a | n/a | 1.00 | 0.00 | 1.00 | 0.88 | 1.00 |
| navigate-tree | 0.98 | 0.98 | 0.86 | 0.82 | 0.99 | 0.07 | 0.99 | 0.32 | 1.00 | 0.91 | 1.00 |
| number-checkboxes | n/a | 0.96 | n/a | n/a | 0.84 | 0.26 | 0.99 | 0.00 | n/a | n/a | 0.16 |
| read-table | 1.00 | 0.97 | n/a | n/a | n/a | n/a | 0.97 | 0.01 | n/a | n/a | 0.00 |
| read-table-2 | n/a | 0.95 | n/a | n/a | n/a | n/a | 0.94 | 0.00 | n/a | n/a | 0.00 |
| resize-textarea | n/a | 0.94 | n/a | n/a | 0.99 | 1.00 | 1.00 | 0.27 | n/a | n/a | 0.11 |
| right-angle | n/a | 0.87 | n/a | n/a | 0.97 | 1.00 | 0.98 | 0.26 | n/a | n/a | 0.38 |
| scroll-text | n/a | 0.97 | n/a | n/a | n/a | n/a | 0.96 | 0.04 | n/a | n/a | 0.00 |
| scroll-text-2 | n/a | 0.97 | n/a | n/a | n/a | n/a | 1.00 | 0.88 | n/a | n/a | 0.96 |
| search-engine | 1.00 | 0.97 | 1.00 | 1.00 | n/a | n/a | 1.00 | 0.15 | 0.96 | 0.34 | 1.00 |
| simon-says | n/a | 0.62 | n/a | n/a | n/a | n/a | -0.00 | 0.02 | n/a | n/a | 0.28 |
| simple-algebra | 1.00 | 0.86 | 1.00 | 0.82 | 1.00 | 0.99 | 0.75 | 0.03 | n/a | n/a | 0.04 |
| simple-arithmetic | 1.00 | 0.96 | n/a | n/a | 1.00 | 0.67 | 0.86 | 0.38 | n/a | n/a | 0.07 |
| social-media | 1.00 | 0.96 | 0.98 | 0.82 | n/a | n/a | 0.90 | 0.03 | 1.00 | 0.21 | 1.00 |
| social-media-all | 1.00 | 0.89 | 1.00 | 1.00 | n/a | n/a | 0.75 | 0.00 | 0.31 | 0.00 | 1.00 |
| social-media-some | 1.00 | 0.91 | 0.90 | 0.90 | n/a | n/a | 0.85 | 0.01 | 0.68 | 0.02 | 0.42 |
| terminal | 1.00 | 0.88 | 1.00 | 0.98 | n/a | n/a | -0.01 | 0.00 | n/a | n/a | 0.00 |
| text-editor | n/a | 0.88 | n/a | n/a | n/a | n/a | 0.98 | 0.11 | n/a | n/a | 0.01 |
| text-transform | 0.98 | 0.86 | 0.80 | n/a | 0.92 | 0.91 | 0.60 | 0.19 | n/a | n/a | 0.00 |
| tic-tac-toe | 0.70 | 0.71 | 0.56 | 0.48 | 0.83 | 0.76 | 0.83 | 0.32 | 0.56 | 0.48 | 0.47 |
| unicode-test | 1.00 | 0.99 | n/a | n/a | 1.00 | 0.64 | 1.00 | 0.86 | n/a | n/a | n/a |
| use-autocomplete | 0.98 | 0.98 | 0.58 | 0.88 | 0.99 | 0.95 | 1.00 | 0.07 | 0.98 | 0.22 | 0.98 |
| use-colorwheel | n/a | 0.90 | n/a | n/a | 0.97 | 0.98 | 0.98 | 0.68 | n/a | n/a | 1.00 |
| use-colorwheel-2 | n/a | 0.94 | n/a | n/a | 0.95 | 1.00 | 0.95 | 0.38 | n/a | n/a | 1.00 |
| use-slider | 0.98 | 0.98 | n/a | n/a | 0.92 | 0.69 | 0.91 | 0.18 | n/a | n/a | 0.51 |
| use-slider-2 | n/a | 0.97 | n/a | n/a | 1.00 | 0.09 | 0.95 | 0.03 | n/a | n/a | 0.15 |
| use-spinner | 1.00 | 0.98 | 0.88 | 0.90 | n/a | n/a | 1.00 | 0.47 | 0.11 | 0.07 | 0.17 |
| visual-addition | n/a | 0.97 | n/a | n/a | 1.00 | 0.68 | 0.99 | 0.36 | n/a | n/a | 0.01 |
| Average | 0.992 | 0.935 | 0.906 | 0.929 | 0.962 | 0.665 | 0.935 | 0.305 | 0.802 | 0.484 | 0.646 |
| # of solved tasks | 64 | 104 | 54 | 53 | 59 | 59 | 104 | 104 | 56 | 56 | 88 |
6.3. 消融实验 (Ablation Studies)
为了评估 Synapse 中各个设计选择的有效性,作者进行了一系列消融实验,分别验证了 状态抽象、轨迹即示例提示 (TaE) 和 示例记忆 的贡献。
6.3.1. 状态抽象消融
-
在 中的效果:
状态抽象显著提升了Synapse在处理复杂状态任务上的能力。例如,对于book-flight任务(由于其冗长HTML内容,LLM在没有状态抽象时难以处理),Synapse能够成功解决。- 它还提高了具有模糊描述的任务的性能,例如
email-inbox-nl-turk,成功率从52%提升到100%。这表明状态抽象通过提供更清晰、精炼的输入,帮助LLM更好地理解任务意图。
-
在
Mind2Web中的效果:- 即使将过滤后的元素数量 减少(从
MindAct的50个减少到3-5个),导致召回率 (recall)从86%下降到53%,Synapse仅使用直接生成 (direct generation)的状态抽象变体,其步骤成功率比MindAct的MCQ提示高出32%(如 Table 1 所示)。
- 即使将过滤后的元素数量 减少(从
-
结论: 这些结果强调了
状态抽象在帮助LLM在复杂状态和模糊任务描述下生成准确动作的有效性。通过将冗长状态精简为简洁状态,它允许在有限的上下文内提供更多示例,从而显著提升性能。以下是原文 Figure 5 的示意图,展示了有无状态抽象技术对 MiniWoB++ 各任务成功率的影响:
该图像是一张柱状图,展示了有无状态抽象技术对MiniWoB++各任务成功率的影响,表明状态抽象提高了多任务的成功率,尤其在复杂任务如book-flight中效果显著。
Figure 5: State abstraction enables solving MiniWoB++ tasks with complex states (e.g., book-flight). It also improves performance by providing more exemplars (e.g., email-inbox).
6.3.2. 轨迹即示例提示 (TaE Prompting) 消融
- 在 中的效果:
TaE提示显著提升了LLM在长时序和重复动作任务中的表现,这些任务对其他ICL方法极具挑战。例如,对于guess-number、use-spinner和use-autocomplete任务,RCI的成功率分别为20%、88%和58%,而Synapse却能达到100%、100%和98%的成功率。- 这种改进归因于
TaE提示提供了全面的历史信息和时间抽象 (temporal action abstraction)能力,减少了多步决策中的误差累积。
- 在
Mind2Web中的效果:- 在
状态抽象的基础上,引入TaE提示使平均步骤成功率进一步提高了19%(如 Table 1 所示)。 - 总体而言,包含
状态抽象和TaE提示的Synapse变体比MindAct在三个泛化级别上的性能高出50%。
- 在
- 结论:
TaE提示通过提供完整的轨迹信息,并隐式地促使LLM生成时间上抽象的动作,显著增强了LLM的多步决策能力。
6.3.3. 示例记忆 (Exemplar Memory) 消融
- 泛化能力:
示例记忆对于实现泛化至关重要,尤其是在相似的计算机控制任务之间。它使得Synapse能够自动为当前任务找到相关的示例,而非依赖任务特定示例的硬编码。- 例如,它使得智能体能够从
email-inbox-nl-turk泛化到email-inbox-forward-nl-turk和email-inbox等相关任务,并适应不同的布局(如从multi-layouts到multi-orderings)。 - 因此,
Synapse能够利用来自48个任务的演示来解决 中的64个任务。对于16个未见任务,平均成功率几乎达到100%。
- 在
Mind2Web中的效果:- 在
Mind2Web中,示例记忆进一步提升了结合状态抽象和TaE提示的Synapse的性能,在跨任务 (Cross-Task)和跨网站 (Cross-Website)泛化上,步骤成功率提高了6%(如 Table 1 所示)。 - 然而,在
跨领域 (Cross-Domain)泛化中,性能提升相对不明显,甚至在CodeLlama-7B上略有下降(-0.2%)。这可能是因为检索到的示例与目标任务领域之间的相似性较低,导致LLM可能被来自不相关领域的示例所影响。Table 2 显示,跨领域任务的检索距离 (distance) 显著大于跨任务和跨网站任务,证实了这种相似性差异。
- 在
- 结论:
示例记忆显著提升了Synapse的泛化能力,使其能够高效利用任务间的相似性。但在面对完全未见的领域时,记忆检索的有效性仍受限于嵌入空间中的语义距离。
7. 总结与思考
7.1. 结论总结
本文介绍了 Synapse,一个创新的计算机智能体,它通过结合 状态抽象、轨迹即示例提示 (TaE) 和 示例记忆 三大核心组件,有效地解决了 LLM 驱动计算机控制智能体所面临的关键挑战。这些挑战包括有限的上下文长度、不完整的轨迹表示和对新任务的泛化能力不足。
-
状态抽象通过过滤原始状态中的无关信息,将冗长状态转化为简洁观察,从而在
LLM有限的上下文窗口内允许更多示例。 -
轨迹即示例提示 (TaE) 通过使用完整的成功轨迹作为少样本示例,显著改善了
LLM的多步决策能力,减少了错误累积,并能隐式地促使LLM生成时间上抽象的动作,从而提高了效率和成功率。 -
示例记忆通过存储示例的嵌入并进行相似性搜索,使得
Synapse能够自动检索相关经验,从而有效地泛化到新颖任务。实验结果强有力地证明了
Synapse的优越性。在 基准上,Synapse取得了99.2%的平均成功率,达到人类水平,并且是第一个成功解决复杂book-flight任务的ICL方法。此外,它仅使用来自48个任务的演示就解决了64个任务,展现了卓越的泛化能力。在Mind2Web真实世界网站基准上,Synapse相较于最先进的ICL方法取得了56%的相对步骤成功率提升,进一步证实了其在实际应用中的潜力。
7.2. 局限性与未来工作
作者在论文中也坦诚地指出了 Synapse 存在的局限性并提出了未来研究方向:
- 高推理延迟 (High inference latency):
LLM的使用导致推理延迟较高。未来的工作可以探索将Synapse的提示方案蒸馏 (distill) 到更快速、任务特定的智能体中,以提高响应速度。 - 对示例质量的依赖 (Dependence on exemplar quality):
Synapse的性能在一定程度上依赖于提供示例的质量。未来可以研究如何通过指令微调 (instruction tuning) 等技术,基于当前的提示方法构建零样本 (zero-shot) 计算机智能体,减少对高质量示例的直接依赖。 - 记忆模块和检索过程的优化 (Exemplar memory and retrieval process optimization): 尽管
示例记忆提高了泛化能力,但其结构和检索策略仍有改进空间,以实现更好的泛化效果,特别是在跨领域任务中。 - 结合组合泛化方法 (Compositional generalization methods):
Synapse可以与现有的组合泛化方法 (Zhou et al., 2022; Wang et al., 2023a) 结合,以解决更复杂的任务,例如需要将多个基本技能组合起来才能完成的复合任务。 - 多模态和视频理解 (Multi-modal and video understanding): 当前
Synapse主要处理文本形式的状态。未来有趣的方向是探索其与多模态和视频理解能力的结合,以应对更具挑战性的任务,例如基于像素的Android控制 (Li et al., 2020; Toyama et al., 2021)。
7.3. 个人启发与批判
7.3.1. 个人启发
这篇论文提供了一些非常重要的启发,尤其是在 LLM 应用于具身智能体和自动化任务的背景下:
- “信息压缩”是 LLM 落地关键:
状态抽象的重要性被极大地凸显。在真实世界环境中,原始观测(如完整HTML、屏幕截图)往往冗余且庞大,直接喂给LLM不仅消耗昂贵的token,还可能因噪声干扰LLM的判断。高效、智能地将原始状态精炼为任务相关、简洁的观察,是LLM智能体在复杂环境中高效运行的基础。这对于任何需要LLM处理大量非结构化或半结构化数据并做出决策的场景都具有普适价值。 - “讲好故事”比“给出指令”更有效:
轨迹即示例提示 (TaE)方案的成功,揭示了LLM在学习序列决策时,理解完整“故事”(即成功轨迹)比理解零散“指令”(单步计划或多选题)更为关键。这种时间抽象能力让LLM能够自主地将多个原子动作组合成宏动作,不仅提高了效率,也减少了中间状态查询的开销,这在设计LLM驱动的工作流或自动化脚本时应被优先考虑。 - “经验管理”是 LLM 泛化利器:
示例记忆机制是LLM从任务特定走向通用性的重要一步。它将知识从模型参数中剥离,形成可检索的外部知识库,通过语义相似性复用“旧经验”解决“新问题”。这暗示了构建真正通用智能体的路径可能并非单纯依赖更大的模型,而是更智能地管理和利用其外部的、可演进的知识和经验库。 - 开源 LLM 的潜力: 即使是参数量相对较小的
CodeLlama-7B,在Synapse框架下也能取得显著超越MindAct的性能。这表明,优化提示策略和架构(如Synapse)可以有效地释放中小型LLM的潜力,使其在特定应用中达到甚至超越大型商业LLM的表现,对于资源受限或需要本地部署的场景极具意义。
7.3.2. 批判与可以改进的地方
尽管 Synapse 取得了令人印象深刻的成就,但其仍存在一些潜在的问题或可以改进的方面:
- 状态抽象的鲁棒性与自动化挑战:
状态抽象的实现(无论是显式还是隐式)在一定程度上依赖于人工定义示例或生成代码并进行验证。这在面对高度动态、结构变化频繁或领域差异巨大的新环境时,其自动化程度和鲁棒性可能会受到挑战。例如,如果HTML结构发生重大变化,隐式抽象生成的解析代码可能失效。如何实现完全自动化的、对未知环境鲁棒的状态抽象,是未来研究的重要方向。 - 记忆检索的“长尾问题”:
示例记忆在跨领域泛化上的性能提升不明显,这表明当新任务与记忆中存储的示例在语义上距离较远时,当前的相似性检索可能无法提供高质量的示例。这引出了一个“长尾问题”:如何有效处理与现有经验高度不相似的新任务?可能需要结合元学习 (Meta-learning)、更复杂的检索机制(如基于图或知识图谱的检索),或LLM自身的强泛化能力来生成全新的解决方案。 - LLM 推理错误的根本解决: 论文中提到的
LLM偶尔出现的推理错误(如计数错误或字符识别错误)表明,Synapse优化了LLM的输入和决策流程,但并没有从根本上提升LLM自身的认知和推理能力。结合更先进的LLM推理技术(如更复杂的CoT变体、Tree-of-Thoughts等),或者引入外部逻辑推理模块,可能会进一步提升其在复杂判断任务上的准确性。 - 行动空间的灵活性: 和
Mind2Web的行动空间相对固定(点击、输入、选择)。对于更开放、更具创造性的计算机控制任务(如使用复杂的软件功能、执行非标准操作),现有的行动空间可能不足。未来的智能体可能需要具备更灵活、更具组合性的动作生成能力,甚至能够动态地学习和定义新的宏动作。 - 可解释性与安全性:
LLM的黑盒特性使得Synapse的决策过程难以完全解释。在自动化关键计算机操作时,可解释性和安全性是至关重要的。如何提供LLM决策过程的透明度,以及如何确保其在各种边界条件下的安全操作,是应用落地前需要认真解决的问题。
相似论文推荐
基于向量语义检索推荐的相关论文。