模块 2Tool 与 Agent Runtime

Tool 执行可靠性

执行前、中、后的责任链

执行前

  • 参数与业务校验
  • 权限与策略
  • 审批状态
  • 幂等预留

执行中

  • Deadline
  • 取消传播
  • 并发隔离
  • Trace

执行后

  • 结果 Schema
  • 敏感过滤
  • 副作用验证
  • 状态与指标

按恢复动作而不是 HTTP 状态码分类

  • 调用方输入错误:修正参数,不盲重试
  • 权限或策略拒绝:终止或申请审批
  • 业务冲突:重新读取状态后决策
  • 暂时故障:受预算重试或降级
  • 未知结果:先对账,不能假设失败

层级 Deadline 必须递减

  • Run、Step、Tool、网络和数据库超时的预算关系
  • 客户端超时不等于服务端停止
  • 重试必须占用原始总预算
  • 超时后保留关联 ID 支持查询结果

重试的前提是可判定和可幂等

  • 指数退避、抖动、最大次数和 Retry-After

同一意图稳定幂等键

  • 结果缓存或去重表
  • 参数变化产生新意图
  • 全局并发限制、熔断和预算防止重试风暴

隔离故障而不是让它扩散

  • 按 Provider/Tool/租户建立熔断维度
  • 半开探测与恢复阈值
  • 独立工作池和配额保护关键能力
  • 降级结果必须标记能力损失

最危险的是“不知道是否成功”

  • 优先通过查询接口或回执对账
  • 没有查询能力的不可逆 Tool 应先改造契约
  • 人工接管时提供参数、Attempt、时间线和当前假设
  • 禁止模型根据自然语言错误消息猜测已执行状态

用业务结果衡量 Tool 可靠性

  • 首次成功率与最终成功率
  • 重试、超时、熔断和未知结果比例
  • P95/P99 延迟和每次成功成本
  • 重复副作用与人工恢复次数