HyperAIHyperAI

Command Palette

Search for a command to run...

LLM
Agent

SKILL.state:可扩展的长时程智能体技能

Sanket Badhe Priyanka Tiwari Jonghyun Chung

摘要

大型语言模型(LLM)日益作为自主智能体执行复杂、长期的过程性技能。现有的智能体运行时通过不断将观察、动作和中间推理轨迹追加到不断增长的对话历史中来维持执行,导致长时程任务中的延迟退化和上下文污染失败。我们提出 SKILL.state,一种运行时架构,用显式的、可变的执行状态取代仅追加的对话历史。在每个执行步骤中,模型仅接收不可变的技能规范、当前的结构化执行状态和最新的观察。中间推理在生成经过验证的状态更新后立即丢弃,防止提示随执行历史增长。在多种数据集、模型和执行环境中,SKILL.state 提高了任务准确性,同时大幅减少了累积令牌消耗。我们的结果表明,显式执行状态是一种有效且与架构无关的抽象,适用于可扩展的长时程智能体技能。

一句话总结

谷歌有限责任公司和普渡大学的研究人员提出了SKILL.state,一种运行时架构,用显式、可变的执行状态取代仅追加的对话历史,在每一步仅向模型提供不可变的技能规范、当前结构化状态和最新观察结果,并在验证更新后丢弃中间推理,从而在多样化数据集、模型和执行环境中提升任务准确率并降低累计token消耗,实现可扩展的长时程agent技能。

核心贡献

  • 提出SKILL.state,一种运行时架构,通过显式结构化执行状态执行程序性技能,在每一步验证后丢弃中间推理,实现严格有界的提示词占用和线性累计token复杂度。
  • 提出SkillExecBench,一个在扩展、噪声和状态恢复条件下进行长时程程序性技能执行的受控基准,并在包括InterCode CTF和Sierra τ-Bench在内的公开基准上进行评估。
  • 在多个模型家族和执行时程上证明,以状态为中心的执行在保持有竞争力的任务准确率的同时,相比基于历史和基于压缩的基线,大幅减少提示词增长和累计token消耗。

引言

大语言模型越来越多地被用作自主agent,通过组合可复用行为来执行长时间运行的程序性技能,例如软件工程或网页交互。然而,现代agent运行时依赖于对话式执行模型,模型在每一步都要处理不断增长的历史推理、动作和观察记录。这导致提示词大小随执行长度增长,增加token消耗和推理成本,同时迫使模型从过时的历史记录中重建当前事实,从而在长时程任务中降低正确性。

先前的工作通过摘要或检索等记忆系统解决上下文增长问题,但这些方法保留了相同的语义:决策仍然依赖于对过去的文本重建,而非当前状态的显式表示。LangGraph等框架为编排添加了辅助结构化状态,但继续使用对话记录作为主要推理载体。这使得执行状态隐式分布在累积的日志中,需要重复的世界模型重建并限制可扩展性。

作者提出SKILL.state,一种运行时架构,将程序性技能执行重新定义为显式状态转换,而非历史累积。在每一步,模型仅接收不可变的技能规范、结构化执行状态和最新环境观察结果,在产生经过验证的更新后丢弃中间推理轨迹。这实现了严格有界的提示词占用和线性累计token复杂度。在新基准SkillExecBench以及InterCode CTF和Sierra tau-Bench上的评估表明,以状态为中心的执行在保持有竞争力的任务性能的同时,在多个模型家族上大幅减少提示词增长和token消耗。

数据集

作者使用两类互补的基准类别评估其系统:受控诊断测试平台和公开交互式基准。

1. SkillExecBench(受控诊断测试平台) 该基准通过提供具有确定性真实世界转换的序列化程序性任务,将执行机制与开放式启发式搜索分离开来。它包含两个环境:

  • 仓库管理:一个离散物理库存域,跟踪500个独立货架。动作包括存储、发货、移动和等待。该环境测试模型在早期观察离开上下文窗口的扩展时程中维护独立、不重叠状态变量的能力。
  • 软件仓库:一个深度嵌套的Git分支、提交、Pull Request和CI测试状态的关系图。动作包括CherryPick、Merge、RunTests、CreateRelease和Rollback。该环境具有密集依赖关系,单个动作(例如合并PR)会从根本上改变目标分支和相关PR的状态,测试在纠缠图上的复杂结构推理能力。

2. 公开交互式基准 为了在具有复杂搜索、生成和工具使用的现实世界非确定性任务上评估,作者使用两个公开基准:

  • InterCode CTF:100个Linux bash夺旗挑战,涵盖逆向工程、取证、密码学和二进制利用。Agent在Docker容器中执行bash命令并迭代测试假设以发现隐藏标志。
  • Sierra τ-Bench:企业客户服务(零售和航空领域)中工具-agent-用户交互的基准。Agent与模拟用户交互,通过工具调用查询关系型SQLite数据库,并在业务策略约束下执行事务性动作(例如航班改签、退款)。

SkillExecBench作为受控环境用于诊断执行机制,而公开基准测试在需要搜索、生成和工具使用的现实非确定性任务上的性能。

方法

当前的LLM agent运行时通常通过将推理轨迹、动作、观察结果和工具输出追加到不断增长的对话历史中来执行程序性技能。这种方法隐式地在自然语言中表示执行状态,迫使模型在每次交互时从历史文本中重建当前世界状态。随着执行时程延长,提示词大小和过时信息单调增长。

为解决这些限制,作者提出SKILL.state,一种将程序性技能执行重新定义为显式状态转换过程的运行时架构。不再依赖仅追加的对话,每个执行步骤由以下元组定义:

At=(P,Σt,Ot)A_t = (P, \Sigma_t, O_t)At=(P,Σt,Ot)

其中PPP是不可变的程序性规范,Σt\Sigma_tΣt是步骤ttt的结构化执行状态,OtO_tOt是来自环境的最新观察结果。语言模型从不接收之前的观察结果、动作或推理轨迹。

如下图所示:

执行周期通过从当前元组构建提示词、调用语言模型、验证提议的状态转换、更新执行状态并执行所选动作来运作。与对话式运行时不同,SKILL.state将执行状态视为一等运行时抽象。状态仅包含未来执行所需的信息,并使用为领域定义的结构化模式表示。这些模式按领域编写一次而非按任务编写,使agent能够在不同挑战实例中复用单个静态模式。

推理仅作为产生状态转换和选择下一个动作的中间计算。在上下文(P,Σt,Ot)(P, \Sigma_t, O_t)(P,Σt,Ot)下,语言模型生成:

(Rt,ΔΣt,at)(R_t, \Delta\Sigma_t, a_t)(Rt,ΔΣt,at)

其中RtR_tRt表示多步思维链推理轨迹,ΔΣt\Delta\Sigma_tΔΣt是以JSON字典形式表示的结构化状态更新(包含键的变更和删除),ata_tat是要执行的动作。虽然多步推理在生成过程中保持完整以支持复杂演绎规划,但推理轨迹RtR_tRt在状态转换被验证并应用后被永久丢弃。执行状态随后按以下方式更新:

Σt+1=ΣtΔΣt\Sigma_{t+1} = \Sigma_t \oplus \Delta\Sigma_tΣt+1=ΣtΔΣt

其中\oplus表示具有空值删除语义的运行时字典合并运算符。该机制将瞬时推理投影到持久化结构化状态中,确保只有未来执行所需的信息才能在交互之间存续。

这种架构转变带来了计算复杂度的显著提升。对于对话式运行时,提示词长度随累积历史增长,导致在执行时程TTT上的累计token复杂度为O(T2)\mathcal{O}(T^2)O(T2)。相比之下,SKILL.state保持的提示词大小在渐近意义上有界且独立于先前执行的轮数:

Pt=O(P+Σ+O)|P_t| = \mathcal{O}(|P| + |\Sigma| + |O|)Pt=O(P+∣Σ∣+O)

因此,累计提示词复杂度随执行时程严格线性增长:

t=1TPt=O(T)\sum_{t=1}^{T} |P_t| = \mathcal{O}(T)t=1TPt=O(T)

该运行时有效地将执行从重建历史转向维护当前执行状态的显式、经过验证的表示。

实验

评估使用了SkillExecBench(包含仓库和软件仓库环境的受控测试平台)以及公开基准InterCode CTF和Sierra tau-Bench,测量任务准确率、提示词大小和token成本。在长时程扩展、噪声鲁棒性和状态恢复测试中,SKILL.state匹配或超过基线准确率,同时保持提示词大小平稳,而基于历史追加的基线则遭受二次token增长并在注入干扰或外部状态漂移下性能下降。在公开基准上,它实现了最高的任务完成率并大幅节省token。预算匹配的压缩对照组灾难性失败,确认收益来自结构化状态表示而非更短的提示词。开放权重模型的错误主要是过早的状态覆盖,表明是结构化输出遵循问题而非推理限制。

SKILL.state在长时程仓库管理任务中保持有界的提示词占用并匹配或超过基线准确率,而基线则遭受二次token累积。在更长时程下,SKILL.state使用的总token数远少于历史追加基线,同时保持高准确率。SKILL.state在各时程上保持提示词大小几乎平稳(约1,736-1,905个token),而基线则二次增长。在T=200时,SKILL.state以122k总token实现0.94准确率,而Memory基线消耗6.1M token。在T=100时,SKILL.state使用65,408总token,而Stateful基线为1,062,387,大幅减少。在T=10和T=25时,SKILL.state匹配或超过基线准确率,同时使用最小的平均提示词和总token数。

在固定时程为50的仓库噪声条件下,标准Prompt运行时从低噪声时的0.68下降到高噪声时的0.53,而SKILL.state在所有噪声水平下保持任务完成率高于0.97。这种鲁棒性归因于状态补丁生成过程中的干扰过滤,防止无关事件进入后续提示词。SKILL.state在低、中、高噪声水平下均保持高任务完成率,而Prompt运行时则急剧下降。Prompt运行时的得分从低噪声时的0.68下降到高噪声时的0.53,而SKILL.state保持在0.97以上。干扰事件在状态补丁生成过程中被过滤,因此不会影响后续提示词。

在仓库状态恢复测试中,基于历史的基线在外部状态变化后连续产生5到8轮的幻觉,而SKILL.state在所有场景中零恢复步骤即时恢复。取消订单场景对所有运行时均失败,表明这是任务层面的限制而非运行时特定问题。基于历史的基线需要5到8个恢复步骤,因为过时的提示词事实覆盖了新的观察结果。SKILL.state通过依赖当前结构化状态实现零恢复步骤,该状态在纠正性警报出现时立即更新。取消订单场景对所有运行时均不成功,表明存在固有能力困难。

SKILL.state在三个公开交互式基准上始终优于所有基线,实现最高任务成功率同时使用显著更少的token。其结构化状态表示减少了提示词大小和累计token消耗,尤其在复杂工具使用和数据库密集型任务中。SKILL.state在所有三个基准上实现最高通过率,在InterCode CTF和τ-Bench Retail上有显著提升。提示词大小大幅减少,尤其在τ-Bench Airline上,提示词占用保持在每步2,800 token的平稳水平,而基线超过11,000。与ReAct和Stateful基线相比,在评估任务上累计token使用量减少40-66%。

当所有基线被限制在与SKILL.state相同的token预算时,它们遭受严重性能下降,而SKILL.state保持高分。这表明其收益来自结构化状态表示而非简单地使用更少token。滑动窗口截断和LLMLingua压缩均降至0.25以下,而SKILL.state达到0.94。压缩基线的失败归因于早期关键分配的驱逐和语义关键槽标识符的移除。SKILL.state的结构化状态保留了统计压缩器破坏的关系依赖。

SKILL.state在长时程仓库任务中保持有界的提示词占用并匹配或超过基线准确率,避免历史追加基线的二次token增长,同时通过干扰过滤保持对噪声的鲁棒性。它从外部状态变化中即时恢复,而基于历史的基线会幻觉多轮,尽管取消订单场景对所有运行时均失败。在公开交互式基准上,SKILL.state以显著更低的token使用量实现最高任务成功率,当基线获得相同token预算时性能急剧下降,确认其收益来自结构化状态表示而非单纯的token效率。


用 AI 构建 AI

从创意到上线——通过免费 AI 协同编码、开箱即用的环境和最优惠的 GPU 价格,加速您的 AI 开发。

AI 协同编码
开箱即用的 GPU
最优定价

HyperAI Newsletters

订阅我们的最新资讯
我们会在北京时间 每周一的上午九点 向您的邮箱投递本周内的最新更新
邮件发送服务由 MailChimp 提供