SkillSentry:把执行经验编入DSL,大模型Agent技能成功率提升24.1%

SkillSentry: Reliable Skill Execution for LLM Agents via Runtime Assurance

论文原文 ↗ 论文发布 解读发布 解读:AI前沿分享

SkillSentry:把执行经验编入DSL,大模型Agent技能成功率提升24.1% 论文图示

在大模型技术落地到具体工程场景的过程中,开发者通常会把复杂的业务流封装成“技能”(Skills)。无论是宏观经济数据的时间序列去趋势分析、数据库迁移校验,还是自动化的 Git 分支合并,只要为 Agent 提供一份清晰的流程指南、工具说明与上下文规则,理论上模型就能依照规程自主调用工具并完成任务。然而,在实际运行中,这种依赖自然语言驱动的技能执行表现出极强的不可靠性:即使同一个 Agent 在某次测试中完美通关,面对同一类任务的微小扰动或在多次重复测试中,它仍然可能跳过关键校验、写出错误的参数正则,甚至在流程未走完时就草草宣布任务结束。

ArXiv URL:https://arxiv.org/abs/2608.09253v1

这种执行不稳定性并非完全来自底层模型的知识缺陷,而更多是因为智能体在多步交互中缺乏强约束的运行时保障。针对这一痛点,来自计算机科学与人工智能领域的研究团队提出了 SkillSentry,一个面向 Agent 技能执行的运行时保障(Runtime Assurance)框架。

技能文档示例

该方案的核心转变在于:它不再将技能执行寄托于静态 Prompt 的反复微调或离线的自我反思,而是为技能执行引入了动态的运行时监视器。SkillSentry 设计了一套专门用于表示技能执行指南的领域特定语言(DSL),将自然语言文档形式的技能规程解析为具有显式依赖关系的结构化步骤,并进一步从历史的成功与失败轨迹中挖掘关键行为模式与避坑建议。通过注入到 Agent 运行生命周期的钩子(Hooks),系统在每一步动作规划时进行拦截检查与动态提示,一旦偏离既定规程或触发已知的失败模式,立即引导其重新规划。

在涵盖 Claude Code 和 Codex 两大主流智能体框架、结合 Claude-Haiku-4.5、Claude-Opus-4.6、GPT-5.2 及 GPT-5.4 等多种主干模型的 15 项真实技能评测中,SkillSentry 将 Agent 的任务平均成功率提升了 24.1%,将重复执行的波动方差降低了 41.1%,而自身引入的计算时间仅占整个运行周期的 0.8%。这一套兼具结构化约束与自演进能力的架构,为提高大模型智能体在生产环境中的确定性提供了一条极具参考价值的工程路径。

为什么自然语言技能难以在 Agent 中稳定落地?

让大语言模型遵循多步骤规程的常规方式,是在系统提示词或外部文档中注入技能定义。一个标准技能通常包含触发场景描述、建议执行步骤、工具调用模式以及特定的边界约束。理想情况下,Agent 通过运行时上下文接收这些提示,在每轮思考中规划下一步动作、调用外部环境工具并根据反馈调整策略。

技能执行失败案例分析

然而现实往往是脆弱的。如上图所示的失败案例揭示了当前技能执行的两类致命断裂:第一类是单步执行错误(Incorrect Step Execution)。例如在处理时间序列数据时,Agent 已经定位到了正确的工具并理解了当前步骤,却在传入参数或执行辅助脚本时写出了无法被后续步骤解析的代码或匹配正则;第二类则是规程偏离与过早终止(Procedural Deviation and Premature Termination)。Agent 在复杂的观察上下文冲击下极易发生“注意力漂移”,在尚未完成诸如“平稳性检验”或“残差检验”等必要步骤时,误以为当前结果已经充分,直接输出结论并终止运行。

更棘手的问题在于,大模型具备强大的“局部合理化”能力。即便它在中途跳过了一个关键验证步骤,它依然能根据手头已有的半成品数据拼凑出一份格式看似完备的最终报告。在没有外部拦截机制的情况下,宿主环境很难识别这类“静默失败”。

以往的改进思路多集中在事后优化:例如 Reflexion 模式让模型在任务失败后写下自然语言反思,或者像 ExpeL 一样将过去的失败轨迹提炼成全局经验塞回 System Prompt。但在复杂的长链路任务中,全局提示词的不断膨胀往往会导致模型顾此失彼,增加上下文负担;而离线重写 Prompt 又无法针对特定的执行步骤提供实时、精准的校验。大模型执行技能时缺少的不是泛泛的警告,而是一个在正确时间点出现的“代码审查员”。

架构设计:将技能规程与轨迹经验编译为运行时指南

为了打破这一僵局,SkillSentry 没有选择直接修改底层模型或重写智能体内核,而是将自身定位为一个轻量级的外部守护程序(Runtime Assurance Guardrail)。

SkillSentry总体框架概览

从上图给出的系统概览可以看出,SkillSentry 的工作流程分为两个主要阶段:静态规格提取与经验挖掘,以及在线的步骤感知运行时保障。整个框架的运转纽带,是团队专门设计的一门领域特定语言(DSL)。

自然语言写就的技能文档缺乏机器可校验的形式化语义,而执行日志又过于冗长破碎。SkillSentry 设计的 DSL 将这二者进行了结构化统一。一份完整的运行时指南包含技能名、步骤集合以及终止条件。在步骤单元内部,不仅明确定义了步骤标识符、步骤依赖关系(depends_on)、工具与参数约束(constraints),更引入了由执行轨迹提炼出的经验字段:

  1. 逻辑动作(logical_actions:定义完成该步骤在工具层面上应呈现的行为模式,例如特定命令的正则匹配。

  2. 入场提示与警告(on_enter:当智能体被判定进入该特定步骤时,系统动态注入的建议与踩坑警示。

  3. 失败特征模式(failure_patterns:记录历史上在该步骤高频出现的致命操作组合及其背后的技术原因。

有了这套语言定义,系统首先借助结构化解析器读取技能文档,抽取出由步骤及其前后依赖构成的有向无环图(DAG),完成规格提取。随后,经验挖掘模块介入历史执行中成功($\mathcal{T}{+}$)与失败($\mathcal{T}{-}$)的执行轨迹,将动作序列与规格中的步骤进行对齐,识别出导致失败的典型操作和促进成功的关键前置动作,回填到对应的经验字段中。

运行时指南DSL实例化代码示例

上图展示了一个具体的 DSL 实例。可以看到,通过严谨的正则匹配和结构化约束,原本不可控的自然语言技能被编译成了一份带有状态机特征的“运行时守则”。更为重要的是,这套指南并不要求一次性编写完美,新产生的运行轨迹会源源不断地送入经验挖掘池中,促使 DSL 指南自演进。

运行时介入机制:步骤感知与非阻塞兜底

当智能体在真实环境中执行任务时,SkillSentry 是如何做到既严格把关又不破坏原有交互链路的?

现代智能体框架(如 Claude Code、Codex)普遍提供了生命周期钩子(Hooks),支持在模型生成动作后、工具实际调用前,以及接收到工具反馈后插入外部处理逻辑。SkillSentry 正是通过这些钩子在智能体周围包裹了一层保护壳。这一运行时保障机制内部运转着两个核心检查器:规程检查器(Procedure Checker)终止检查器(Termination Checker)

规程检查器承担着“执行导航”与“排雷”的双重职责。在智能体每次规划出工具调用动作时,检查器会根据上下文推断当前所处的技能步骤:

终止检查器则守在任务退出的最后一关。很多时候,智能体会因为阶段性产物看似完备而提前输出终止指令。终止检查器会调取当前的步骤跟踪状态,比对 DSL 中 termination 声明的必须完成项。如果发现核心步骤缺失,它会直接驳回智能体的终止请求,并列出尚未履行的规程清单,要求其继续规划执行。

在工程实践中,外部守护程序最忌讳的是自身异常导致主业务崩溃。SkillSentry 在设计上严格遵循了故障开放原则(Fail-open Principle):如果检查器在状态推断、正则匹配或内部解析时发生任何未捕获的异常,系统会默认放行智能体的当前动作或终止申请,同时记录错误堆栈以供离线排查。这一设计保证了即使在极端边缘情况下,守护模块也不会成为整个智能体系统的单点故障源。

实验效果:成功率突破与方差显著收敛

为了全面检验该框架的有效性,研究团队设置了严格的基准评测。评测涵盖了 15 项具有代表性的技能任务,横跨数据分析、系统运维与自动化工程等多个复杂场景。实验挑选了两个典型的代码与任务型 Agent:Claude CodeCodex,并为每个 Agent 分别匹配了两款不同层级的主干大模型——前者搭配 Claude-Haiku-4.5 与 Claude-Opus-4.6,后者搭配 GPT-5.2 与 GPT-5.4。

评估案例:无防护与有防护下的执行轨迹比对

实验从有效性、运行时开销、演进能力以及跨模型泛化性等维度展开,得出了多项具有说服力的结论。

1. 成功率大幅提升,执行稳定性显著增强

在基准评测中,未经改造的 Base Agent 面对这 15 项复杂技能时,平均任务成功率受到严重制约,且在多次测试中波动极大。引入 SkillSentry 后,各模型组合的平均任务成功率实现了整体跃升,平均提升幅度达到 24.1%

更关键的指标是运行方差的变化。在自动化生产环境中,一个时好时坏的系统比一个稳定处于较低水平的系统更难维护。通过对各项技能进行 5 次独立重复演进与 5 次重复执行评测,数据表明 SkillSentry 将测试结果的标准差平均拉低了 41.1%。成对 $t$ 检验(paired $t$-test)分析显示其提升在 $p < 0.05$ 水平上具有统计学显著性。上图展示的真实案例清晰反映了这一变化:在原始状态下,Agent 会因为忽略中间数据特征校验而导致最终分析报告失效;而在 SkillSentry 的单步提醒与拦截下,Agent 成功在中间步骤补齐了缺失的处理逻辑,顺利跑通全流程。

2. 轻量级系统开销与渐进式自我演进

引入外部监视机制往往伴随着资源消耗的代价,但测试数据表明 SkillSentry 的开销控制得当。在时间维度上,由于检查器内部的逻辑判断十分轻量,SkillSentry 本身的计算耗时仅占智能体总执行时间的 0.8%。由于存在步骤纠偏与重规划,受控智能体的平均推理轮次增加了 7.8%,相关的 Token 消耗增加了 8.7%。用不足 10% 的 Token 开销换取超过两成的绝对成功率提升,在绝大多数工程实践中都是极其划算的交换。

在闭环演化实验中,研究人员观察了指南随着轨迹积累的迭代趋势:随着新收集的成功与失败轨迹被周期性地送入经验挖掘模块,系统的成功率呈现出平滑爬升并逐步收敛的形态。这证明 DSL 指南能够持续吸收新踩出来的坑,具备良好的自愈与自演进潜力。

3. 为什么步骤级介入比全局提示更有效?

在消融实验(Ablation Study)中,团队探索了各组件的真实贡献度。数据显示,步骤级的建议(Suggestions)、警示(Warnings)以及针对失败模式的拦截(Failure Patterns)各自都提供了正向增益。

特别值得关注的是介入时机的影响:如果把提炼出的全部经验一次性拼接到初始的系统 Prompt 中,模型的表现明显劣于在执行中“按步骤动态供给”。消融数据显示,仅仅是将经验分发方式改为步骤感知(Step-aware),平均任务成功率就额外带来了 5.8% 的纯增益。这有力地印证了大模型在长上下文规划中的认知特性——再完备的全局先验,也比不上在踩坑边缘时的一句精准提醒。

4. 经验指南的跨模型泛化表现

另一个具有现实意义的发现是跨模型泛化能力(RQ5)。当使用 GPT-5.4 作为基准运行轨迹提炼出 DSL 指南后,直接将这套指南部署在搭载较小模型(如 GPT-5.2)或同框架其他模型的 Agent 上,依然能够带来 17.2% 的成功率提升,保留了原生指南 94.2% 的效能。这说明通过 DSL 抽象出来的“执行规程”与“避坑经验”具备相当程度的客观性,它沉淀的是任务本身的领域知识,而非单一模型的偶然偏好。

总结与启示

SkillSentry 提供了一种值得关注的 Agent 系统构建视角。过去很长一段时间,行业在提升智能体能力时,往往陷入了“要么依赖更大更强的基础模型,要么堆砌越来越复杂的离线 Prompt 优化链”的两极思维。而该工作表明,为 Agent 构建一个基于显式规程的运行时保障层,是解决确定性与稳定性问题的有效支点

它在工程上的启发主要体现在以下几个层面:

随着大模型 Agent 逐步从概念验证走向生产系统的核心链路,这种不侵入底层权重、兼具透明度与控制力、且能随着业务数据自演进的运行时保障框架,有望成为工业级智能体架构中不可或缺的标准基础设施。