模块 2Tool 与 Agent Runtime
Tool 执行可靠性
执行前、中、后的责任链
执行前
- 参数与业务校验
- 权限与策略
- 审批状态
- 幂等预留
执行中
- Deadline
- 取消传播
- 并发隔离
- Trace
执行后
- 结果 Schema
- 敏感过滤
- 副作用验证
- 状态与指标
按恢复动作而不是 HTTP 状态码分类
- 调用方输入错误:修正参数,不盲重试
- 权限或策略拒绝:终止或申请审批
- 业务冲突:重新读取状态后决策
- 暂时故障:受预算重试或降级
- 未知结果:先对账,不能假设失败
层级 Deadline 必须递减
- Run、Step、Tool、网络和数据库超时的预算关系
- 客户端超时不等于服务端停止
- 重试必须占用原始总预算
- 超时后保留关联 ID 支持查询结果
重试的前提是可判定和可幂等
- 指数退避、抖动、最大次数和 Retry-After
同一意图稳定幂等键
- 结果缓存或去重表
- 参数变化产生新意图
- 全局并发限制、熔断和预算防止重试风暴
隔离故障而不是让它扩散
- 按 Provider/Tool/租户建立熔断维度
- 半开探测与恢复阈值
- 独立工作池和配额保护关键能力
- 降级结果必须标记能力损失
最危险的是“不知道是否成功”
- 优先通过查询接口或回执对账
- 没有查询能力的不可逆 Tool 应先改造契约
- 人工接管时提供参数、Attempt、时间线和当前假设
- 禁止模型根据自然语言错误消息猜测已执行状态
用业务结果衡量 Tool 可靠性
- 首次成功率与最终成功率
- 重试、超时、熔断和未知结果比例
- P95/P99 延迟和每次成功成本
- 重复副作用与人工恢复次数