Command Palette
Search for a command to run...
智能体事务:迈向符合 ACID 的智能体系统
智能体事务:迈向符合 ACID 的智能体系统
Zhaoyan Sun Xiaoxiao Wang Guoliang Li
摘要
大语言模型(LLM)智能体正从对话助手演变为自主系统,通过推理、工具使用、代码生成和工作区操作来执行长周期任务。随着智能体越来越多地运行于持久化环境和多步骤工作流之上,它们面临着与事务型数据库系统所解决问题类似的挑战:可靠执行、结果一致、安全并发以及持久化状态管理。我们引入智能体事务的概念,并提出一个符合 ACID 的智能体系统框架,通过四项语义保证重新诠释经典 ACID 性质在智能体执行中的含义:语义原子性、语义一致性、语义隔离性和语义持久性。这些性质共同为在模型不确定性和动态执行环境下构建可靠的智能体系统提供了原则性基础。为实例化该框架,我们开发了一个符合 ACID 的数据智能体,通过事务式探索—执行—验证循环、事务式技能中心、基于置信度分歧的验证、语义依赖感知的隔离以及事务感知的语义状态管理来实现上述保证。在广泛使用的基准上的实验结果表明,我们的系统相比包括 Claude Code 在内的最先进智能体取得了 10.6% 的提升。本研究开启了一个更广泛的研究议程,即扩展事务原则和系统架构,以构建可信、可扩展且能自我演进的 AI 智能体系统。
一句话总结
清华大学的研究人员提出了一种符合 ACID 的 agent 系统框架,将经典事务性质重新解释为语义原子性、语义一致性、语义隔离性和语义持久性,并实现了一个 data agent,通过事务化探索-执行-验证循环、事务化技能库、基于置信度差异的验证、语义依赖感知隔离以及事务感知语义状态管理来落实这些保证,在广泛使用的基准上相较于包括 Claude Code 在内的最先进 agent 取得了 10.6% 的提升。
核心贡献
- 本文提出了 agent 式事务的概念,以及一个符合 ACID 的 agent 系统框架,将经典 ACID 性质重新解释为语义原子性、语义一致性、语义隔离性和语义持久性。
- 本文开发了一个符合 ACID 的 data agent,通过事务化探索-执行-验证循环、事务化技能库、基于置信度差异的验证、语义依赖感知隔离以及事务感知语义状态管理实现这些保证。
- 在广泛使用的基准上的实验结果表明,相较于包括 Claude Code 在内的最先进 agent 有 10.6% 的提升,同时该工作还概述了将事务原则扩展到完整 agent 生命周期的开放研究方向。
引言
大语言模型 agent 正在从单轮对话转向需要迭代推理、代码执行和基于反馈的改进的长期生产任务,这些任务在仓库级工作空间上展开。这一转变带来了可靠性挑战,因为 agent 工作流运行时间长、动态生成,并且经常涉及非事务化外部资源,因此部分执行可能传播语义无效的决策或留下不一致的工作空间状态。作者通过引入 agent 式事务和一个符合 ACID 的 agent 系统框架来解决这些局限,将数据库风格的原子性、一致性、隔离性和持久性重新解释为 agent 执行的语义性质。其 ACID-Agent 系统将探索-执行-验证循环建模为提交或重试的语义事务,使用基于置信度的验证和证据引导的重试来实现语义一致性,为语义隔离提供隔离且版本化的工作空间,并保留经过验证的执行轨迹和事务感知记忆以实现语义持久性。
方法
作者将 agent 式事务定义为 agent 执行的一个有界单元,由 agent 与其执行环境之间为完成任务而进行的有限序列 LLM 驱动交互组成。形式上,给定工具集和技能集,一个 agent 式事务 τ=⟨r1,…,rn⟩ 包含 n 个步骤。每个步骤 ri=(ci,ai,fi) 由 LLM 上下文 ci、agent 动作 ai 以及产生的反馈 fi 组成。事务只有在执行满足所需任务条件并保持所有语义不变量的情况下才会提交。
如下图所示:
该图展示了一个 data-agent 事务。它首先由 LLM 驱动探索数据集和模式,随后进行迭代分析步骤,调用工具、更新工作空间并根据反馈改进决策。每个探索-执行-验证循环构成一个语义事务单元,其效果只有在验证后才会传播。失败单元会被丢弃或恢复,而不会影响已提交状态。
为了实现可靠执行,作者提出了一个符合 ACID 的 data agent 系统。
如下图所示:
系统架构围绕四个核心性质设计:语义原子性、语义一致性、语义隔离性和语义持久性。
语义原子性
作者为语义原子性提出了两种机制:一个离线技能库,将事务化保护嵌入可复用技能中;以及一个在线分阶段执行框架,通过验证门控强制执行提交或重试语义。
- 离线技能库构建: 工具和技能成为一等事务对象。技能库将现有仓库打包为具有标准化 CLI 的 agent 技能,并通过 LLM 生成的测试套件验证其行为。一个工作负载和数据感知的技能路由会动态调整特征重要性以用于技能检索。
- 在线语义事务执行: 当现有技能不可用时,agent 轨迹被建模为一系列探索-执行-验证循环。
- 置信度引导的数据探索: 探索子 agent 迭代生成只读探索代码。观察结果被总结到探索记忆中。为避免冗余,基于 LLM 置信度的验证会比较当前探索观察在有无先前观察时的结果。较大的置信度差异表明对先前观察的依赖较强,如果冗余探索超过阈值则触发终止。
- 基于置信度的一致性验证: 该机制通过整合执行错误、置信度差异和基于 LLM 的反思信号,验证 agent 决策和生成代码的可靠性。超过预定义阈值的违规会触发重试,并通过隔离失败执行步骤的中间上下文将其丢弃。
语义一致性
Data agent 在工作流和模型不确定性下经常表现出执行不一致性。
如下图所示:
重复运行显示出显著差异和偶发的意图违背。为解决这一问题,作者开发了互补的离线和在线机制。
- 离线一致性增强: 成功的执行工作流被物化为具有语义验证逻辑的可复用 agent 技能。此外,还设想了一致性导向的基准,用于衡量稳定性并指导有针对性的微调。
- 在线一致性验证: 一种基于置信度的验证机制将 LLM 置信度量化为平均 token 级对数概率的指数。
- 决策置信度差异: 对于关键决策,系统衡量探索决策与执行决策之间的置信度差异。低差异表明执行决策缺乏更强的证据支持。
- 代码置信度差异: 对于代码生成,通过静态分析识别与决策相关的代码片段。在有探索证据和无探索证据条件下生成的代码之间,较低的置信度差异表明依据不足。
语义隔离性
系统要求在 agent、上下文、工作空间和操作之间的语义依赖上实现隔离。
- Agent 级隔离: 隔离选择被形式化为语义参数调优问题。独立的子 agent 在独占资源上以完全并行方式执行。协作子 agent 维护独立的工作空间分支,并通过结构化上下文交换进行同步。竞争子 agent 在隔离的虚拟环境中执行,最终结果从最有前景的轨迹中选出。
- 操作级隔离: 技能库通过效果标注、版本化工作空间、基于快照的执行和乐观验证来强制执行隔离。
语义持久性
- 事务感知语义状态管理: 为处理超出上下文窗口的不断演化的语义状态,作者提出了一种事务感知的演化记忆,以知识图谱形式维护。插入、合并、拆分和删除操作由专门的 LLM 执行,训练监督来自 agent 轨迹。
- 执行追踪与恢复: 仅追加的工作空间记录来源信息、LLM 交互、工具调用和版本化产物,从而能够忠实重建执行环境并实现版本感知的故障恢复。
实验
实验在 KramaBench 上评估了一个符合 ACID 的 data agent。KramaBench 是一个包含异构真实世界文件上多步数据科学任务的基准。实验在多个 LLM 骨干上使用任务质量、效率和一致性指标比较 ACID-Agent、Claude Code 和 DA-Agent 消融变体。主要结果表明,ACID-Agent 持续提高任务得分并降低运行间差异,但由于探索和重试机制,需要额外的代码步骤和 token 消耗。消融实验确认语义事务单元和失败步骤隔离很重要,与多数投票 Claude Code 的比较表明,提升来自框架设计而非推理预算增加。
Agent 式事务将 ACID 保证扩展到 LLM 驱动的工作流,这些工作流结合了非确定性推理与异构的、可能非事务化的效果。所提出的语义约束已提交结果和可恢复效果,而不是要求确定性执行轨迹。代表性技术包括提交或重试语义单元、基于置信度的验证、依赖感知隔离和来源感知恢复。原子性被视作一组依赖感知的模型调用、工具调用和外部动作,其效果只有在所需操作和后置条件成功后才可见。一致性和隔离依赖基于验证的控制和依赖感知策略,以处理语义无效干扰和非确定性执行。
在 KramaBench 上,ACID-Agent 在两种受测 LLM 骨干下均取得高于 Claude Code 的整体得分,并在大多数领域有所提升。这一提升伴随着明显更多的代码步骤,对于 GLM 配置还伴随更高的 token 使用量和成本,这反映了探索和重试的开销。使用 Qwen 骨干时,ACID-Agent 的整体得分提高了 10.6 个百分点,并略优于使用更大 GLM 骨干的 Claude Code。在两种骨干配置下,ACID-Agent 使用的代码步骤都超过 Claude Code 的两倍。ACID-Agent 下大多数领域得分有所提升,其中生物医学和环境领域提升最大,而考古学得分保持不变。
在环境领域,ACID-Agent 取得了比 Claude Code 更高的平均得分,同时表现出更低的运行间得分波动。这一一致性提升伴随着更大的执行开销,包括更多代码步骤,以及略高的 token 消耗和成本。ACID-Agent 在三次运行中的平均得分显著更高,且方差更低。一致性的改善伴随着更多的代码步骤、略高的 token 使用量以及大约两倍的成本。
在环境领域消融实验中,完整 ACID-Agent 在比较的变体中取得最高分,优于 ReAct 风格 DA-Agent 和多数投票 Claude Code 基线。移除失败步骤隔离会显著降低得分,这支持了失败状态传播会污染后续执行的说法。完整 agent 还以更少的 token 消耗优于多数投票基线,这表明提升来自 agent 设计而非更大的推理预算。完整 ACID-Agent 取得最强的环境领域结果,并以更低 token 消耗优于多数投票基线。相对于完整 agent,移除失败步骤隔离会显著降低得分,说明让失败状态更新上下文会损害后续执行。
实验在两种 LLM 骨干下,在 KramaBench 上将 ACID-Agent(将 ACID 保证扩展到 LLM 驱动工作流)与 Claude Code 进行比较,并考察环境领域的一致性。ACID-Agent 取得更高的整体得分和大多数领域得分,在环境领域中运行间波动更低,但需要更多代码步骤,并可能增加 token 和成本开销。消融实验表明,完整 agent 优于 ReAct 风格基线和多数投票 Claude Code 基线,移除失败步骤隔离会显著降低性能,说明防止失败状态污染后续执行是提升的关键来源,而不是推理预算增加。