论文:工具调用成功但工作流失败,智能体与工具边界的八类异常
When Tool Calls Succeed but Workflows Fail: Anomalies at the Agent-Tool Boundary
作者梳理智能体工具调用的外部效应异常,并认为 MCP 标准注解无法完整表达所需事务能力。
- 工具调用各自成功,工作流的外部结果仍可能重复、缺失或在中止后残留。作者关注运行时能否从工具接口取得足够证据,核验这些结果与工作流最终决议是否一致。
- 作者把世界中的效应与运行时观察分开建模,整理八类异常及其排除能力,再归纳事务契约和黑盒调用的保证边界,并检查 MCP 标准注解能表达哪些能力。
- 在可达远程 MCP 服务器的工具样本中,61.7% 序列化全部四个标准注解。作者认为字段齐全仍不等于事务语义齐全;Table 4 中,没有一项所需边界能力能被完整表达。
- 作者将形式覆盖、最小性、独立性及保证边界的证明留待后续。调查只读取可达远程服务器的工具声明,不调用工具,也不测量实现行为;包式和 stdio-only 服务器不在调查范围内。
- Benchmarks
- official MCP registry (snapshot 2026-07-27)
- Metrics
- annotation field presencetool-level signaturesdominant signature coverageboundary capability expressibility
论文提出效应历史模型,把外部世界发生的事件与运行时对事件的观察区分开,并归纳出八类反复出现的外部效应异常。在重试、推测执行、并发和部分失败下,必需效应可能缺失或重复、已中止的效应可能残留、已提交的效应可能依赖随后被撤回的临时状态。作者据此推导出排除每类异常所需的边界能力,并指出仅靠黑盒工具调用无法提供通用保证的四个位置。随后作者测量了已注册 MCP 服务器暴露的 98291 个工具对标准注解词汇的使用情况,发现这些字段被广泛输出,但只提供粗粒度的调用级提示,所需能力无一能被完整表达,因此提出在工具边界引入可复用的交易契约。
Paper analysis
What problem does this paper attempt to solve?
核心问题是工具调用成功不等于工作流外部效应与最终决议一致。
核心问题是:智能体工作流结束后,外部世界留下的效应是否与其提交或中止决议一致。 作者关注事务一致性和可核验性,不以越狱或提示注入为研究对象。
- 应用场景:长流程通过独立供应的工具发送消息、付款或下单。重试、推测执行、并发和部分失败可能造成重复、缺失、残留或对临时效应的依赖。
- 核验障碍:超时或确认丢失后,效应在世界中是否发生已经确定,但运行时可能不知道。作者认为接口没有提供证据时,运行时、监督智能体和外部审计者都无法建立相应保证。
- 现有方法:作者称重放、补偿、暂存和协调等机制并不新;问题在于这些机制依赖的底层语义,常由运行时自己的适配器在接口之外声明。
- 核心观察:幂等性、可逆性、外部化时机、确定性和可交换性不能压成一个“可逆/不可逆”等级。可交换性还涉及操作对、共享资源及状态条件。
- 提出的内容:效应历史模型、八类外部效应异常、排除它们所需的边界能力,以及 MCP 注解普查。作者主张补上可复用的事务契约层,而非只增加恢复机制。
What related research exists?
作者连接事务恢复与智能体运行时研究,重点追问第三方工具边界应声明什么。
相关研究围绕事务语义、智能体运行时和相邻一致性模型展开;作者的定位是识别保证成立所需的接口前提。
经典事务与一致性
- Berenson 等(1995)、Adya(1999)——用异常刻画隔离和弱一致性;作者沿用这种组织方式,但把执行事件与运行时观察分开。
- Guerraoui 与 Kapalka(2008)——研究事务内存正确性中的 opacity;作者借鉴其排除不安全历史的思路,分析不能回滚的外部效应。
- Sagas、补偿事务与 escrow——Garcia-Molina 与 Salem(1987)、Korth 等(1990)、O’Neil(1986)讨论补偿和语义并发控制;作者称这些机制依赖已知的底层操作属性。
智能体运行时
- ACRFence、RAC(2026)——前者针对语义回滚攻击,Table 3 标为提出方案、攻击已验证但未实现;后者针对补偿,作者将其覆盖列为部分 A4。
- Atomix、Cordon(2026)——都暂存效应,Atomix 还跟踪推测依赖。作者称其 A1/A3 覆盖依赖工具语义假设,而非一般的结果解析协议。
- CoAgent、Shepherd(2026)——前者通过重排和注册逆操作处理冲突;后者提供可逆执行轨迹与逐效应等级。Table 3 将 Shepherd 定位为元智能体基础设施,而非运行时保证。
相邻模型与工作流保证
- S-Bus、Revisable by Design、SagaLLM——分别涉及共享状态读侧协调、不可逆冲突下的意图修订、Saga 式多智能体规划验证;作者也引用工作流隔离级别研究。
- Agentic Transaction(2026)——提出面向智能体的 ACID 语义,并在数据智能体运行时中实例化。作者转而追问第三方工具必须声明什么,才能建立此类保证。
- Khan(2026)的并发异常目录——提供机械验证的检测器和安全保证,其 causal-cascade 接近 A6;作者区分自己的重点为调用结果不确定性和边界能力。
基线与数据:论文没有运行方法对比基线;Table 3 是对既有系统所述覆盖的归类,不是复现实验。实证数据来自 official MCP registry。
作者称现有系统在运行时局部假设下覆盖目录的一部分,而共享接口缺少可复用的契约声明。
How does the paper address this problem?
作者先定义效应历史和八类异常,再推导证据、生命周期控制与协调契约。
作者用效应历史(effect history)描述工作流与外部世界的关系,再从禁止出现的历史模式推导工具边界需要提供的信息和控制能力。
世界事件与运行时观察分离
- 两层切片:L0 是调用方视为原子的工具操作,L1 是组合它们的工作流。每次尝试、补偿和效应都归属于发起它的工作流及分支。
- 事件词汇:Table 1 记录尝试、效应产生、补偿、因果依赖、可交换性、提交和中止;观察结果分为 confirmed、failed、unknown。
- 不确定性的含义:unknown 是运行时的知识状态,不是世界事件的第三种结果。补偿也会产生自己的外部效应;survives 指效应已产生且从未被中和。
八类异常及其区别
- 结果不确定性 A1–A3:A1 是一个逻辑操作产生两次效应;A2 是提交时必需效应缺失;A3 是在结果未知时发出补偿。A3 在动作发生时成立,即使最终状态碰巧正确。
- 工作流结构 A4–A6:A4 是中止后仍有残留;A5 是可能不保留的效应在决议前外部化;A6 是已提交效应依赖后来不保留的效应。
- 外部交互 A7–A8:A7 是独立执行对共享资源释放无序、不可交换的效应;A8 是原效应被补偿后,外部参与者的反应仍保留。
- 模式边界:A5、A7 相对于禁止依赖未经接口建立的结果的保证配置定义,不必都是最终状态错误。A6 的依赖效应由系统管理,A8 的后果来自外部参与者。
保证配置与契约族
- 保证配置:unknown-safe 排除 A1–A3;compensation-safe 排除 A4,但假设补偿正确且成功;speculation-safe 排除 A5–A6;externally-mediated 在边界允许介入时排除 A7–A8。
- 证据契约:结果查询、持久确认或返回原结果的幂等重发,需要把一个逻辑操作收敛到权威结果。仅去重不足以解决 A2、A3。
- 生命周期契约:声明补偿前提与成功语义、效应和资源的稳定身份,以及暂存、到期和释放语义。依赖跟踪保护必须一起最终确定的最小效应集合,即 commit sphere。
- 协调契约:可交换性在资源及操作对层面声明;不可交换时需要中介排序,逆操作支持冲突后修复。可见性契约则规定谁能在效应最终确定前观察它。
黑盒调用的四个保证边界
- 含糊结果:作者称没有权威结果原语时,协议不能既结束工作流,又一般性地保证 unknown-safe 和 compensation-safe;等待可回避选择,但放弃完成决议。
- 不可逆冲突:作者称无中介、不可交换且不可逆的效应,没有一般冲突修复路径;防止无序释放或操作专用协调是其讨论的路径。
- 开放世界反应:撤回原效应不等于撤回外部参与者的反应。作者提出的边界能力是观察发生前的可见性控制。
- 跨工具原子释放:作者称多个工具的不可逆效应不能仅靠上层调用一般性地原子释放,需要工具侧 prepare/commit 参与。第4.2节明确将形式证明留作未来工作。
What experiments did the paper conduct?
实证部分普查 MCP 工具注解,不调用工具,也不运行智能体安全基准。
实证证据来自MCP 注册表注解普查;异常目录、运行时覆盖和保证边界是模型及契约分析,而非故障注入实验。
实验设置
- 对象与快照:第5节读取 official MCP registry 的 2026-07-27 快照:59,625 条记录,保留最新版本后有 18,688 个不同服务器。
- 远程范围:9,454 个服务器没有远程端点,被排除;作者匿名查询全部 9,234 个远程目标的 tools/list,包括声明认证头的目标。
- 响应样本:4,838 个目标返回至少一个工具,4,318 个连接失败,74 个超时,四个没有工具;共取得 98,291 个工具,每服务器工具数中位数为 11。
- 字段编码:记录 readOnlyHint、destructiveHint、idempotentHint、openWorldHint,区分 true、false 与省略;四字段组合构成工具签名。
- 指标与判断:统计字段序列化比例、签名频率和服务器内部签名覆盖;Table 4 依据标准词汇判断能力可表达性,没有 LLM 评审或人工一致性测量。
- 模型与执行:论文未运行任何模型、工具调用或基线方法。调查是一次快照,未报告重复采集;响应目标没有以 HTTP 401 或 403 拒绝发现,连接失败未分类。
主结果
下表均据第5节正文;分母为调查取得的全部工具,条件另有注明。
统计对象/条件 指标 数值 至少一个标准注解字段 序列化比例 74.0% 全部四个标准注解字段 序列化比例 61.7% 四字段为只读、非破坏、幂等、开放世界 工具签名占比 39.9% 四字段全部省略 工具签名占比 26.0% 最常见的三个签名 合计占比 75.8% destructiveHint 已设置 字段占比 65.8% destructiveHint 对非只读工具适用 携带适用分类的比例 12.9% 声明实际破坏性操作 工具占比 3.1% - 字段存在与语义:作者认为字段值可能来自 SDK 默认值或服务器模板,不能据此归因于作者意图。
- 能力表达:Table 4 将 A1 标为 Limited:只有幂等提示;A2–A8 均为 No。作者认为没有一项所需能力能被完整表达。
- 声明与实现:作者明确调查的是接口声明。工具内部可能有去重或幂等键等更强语义,这些行为没有被测量。
签名分布与服务器内部区分
- 签名种类:四字段各有三种状态,共有 81 种可能签名,调查出现 66 种(第5节)。
- 服务器内变化:在至少发出一个注解字段的多工具服务器中,76.7% 使用多个签名;发出字段的服务器,其主导签名覆盖率中位数为 79.4%(第5节)。
- 作者解读:作者称工具区分广泛存在,但粒度粗。readOnlyHint 为 true 时 destructiveHint 不适用,这种字段配对占全部工具的 52.8%。
既有运行时的目录映射
- 分析对象:Table 3 比较 ACRFence、RAC、Atomix、Cordon、CoAgent、Shepherd 的所述覆盖;作者强调这不是已证明保证,也不构成累积层级。
- 条件与例外:Atomix、Cordon 的 A1/A3 覆盖依赖幂等工具等假设;Atomix 的多效应释放有 A2 缺口,CoAgent 的冲突处理依赖重排与注册逆操作。
- 覆盖边界:作者称这些系统都没有控制 A8 的外源反应,没有系统覆盖整个目录。Shepherd 被列为基础设施,其不可逆效应被记录而非获得运行时保证。
其他消融与分析
- 消融实验:论文未报告参数消融、模型对比、延迟、查询成本或实际异常发生率;Table 4 是接口词汇的可表达性分析。
What are some points that can be further explored?
作者把目录的形式覆盖和保证边界证明留作后续,并提出契约驱动的协议合成。
作者明确保留了形式论证与契约落地的后续工作,当前实证范围是接口声明普查。
作者指出的局限与后续方向
- 目录完整性:第3.3节称目录面向覆盖,而非已由定理证明完整;开放世界中的外部反应无界,绝对完整性不可获得。
- 形式覆盖:第3.3节将模型词汇内的覆盖、最小性和独立性列为未来工作;所有可表示的事务控制损失都归入三族,是作者的猜想。
- 保证边界证明:第4.2节及第6节将四个保证边界的形式证明留待后续,当前表述来自定义及与既有系统的联系。
- 协议合成:第6节提出从已声明契约合成协议。
- 代价模型:第6节提出为异常及补偿定价,决定何时推测执行或提前释放值得承担残留。
实验覆盖范围
- 调查总体:第5节覆盖可达远程服务器的工具;作者明确指出不可达、包式及 stdio-only 服务器可能不同。
- 行为层次:第5节仅执行 tools/list,不调用工具,不测量实现是否满足声明;作者称实现层差距需要实现级分析。
- 建模范围:第3.3节将语义规划错误、读侧异常、安全与策略违规、契约误分类、活性失败放在模型之外。
- 执行顺序:第3.3节把执行内部效应顺序放在模型之外,参与 A7 冲突的情况除外;Table 3 记录既有系统所述覆盖。
- 报告信息:第5节给出一次快照及样本构成,未报告重复采集、声明的人工核验一致性或工具实现验证。
Summarize the main content of the paper
作者将工作流外部效应安全归结为可观察结果、生命周期控制和资源协调契约。
这是一项智能体—工具边界的事务安全分析,辅以 MCP 注解普查。 它关注调用结束后外部世界留下什么,而非只看调用是否返回成功。
- 问题定位:重试和部分失败带来结果未知,推测与并发又可能让效应在工作流决议前外部化;作者认为仅改善上层恢复逻辑不能补齐接口语义。
- 分析框架:模型区分真实事件与运行时观察,整理八类异常,并把排除能力归为证据、生命周期控制和协调。作者还提出四种保证配置及黑盒调用的四个保证边界。
- 普查样本:2026-07-27 的注册表调查从 4,838 个返回工具的远程目标取得 98,291 个工具;没有调用工具,也没有运行模型(第5节)。
- 字段覆盖:样本中 74.0% 的工具序列化至少一个标准注解,61.7% 序列化全部四个;最常见的只读、非破坏、幂等、开放世界签名占 39.9%(第5节)。
- 语义差距:destructiveHint 虽在 65.8% 的工具上设置,适用分类占全部工具的 12.9%。Table 4 中 A1 仅有幂等提示,其余能力不能表达(第5节)。
- 作者结论:共享接口需要可复用事务契约,运行时再用协议消费这些能力。目录的形式覆盖和保证边界尚待证明;普查结论针对声明,不等同于工具实际行为。