Agent · 工具
09|Agent 工具可靠性:幂等、预算与异常恢复
用显式状态机处理含写入的工具流程。验证超时重试、重复执行和异常观察,不让任务成功率掩盖副作用。
章节 · 工具可靠性与微调
登录后可保存进度和领取学习积分。
目标:把写操作从自由文本对话中隔离出来,让 Agent 在重试、断线和不可信观察下仍保持一致。贯穿示例是沙箱退款,先查询订单和权限,再执行写操作。
01|用最小状态机锁住边界
步骤可定义为读取、校验、等待确认、执行、核验、结束。工具层做 JSON schema、类型、枚举、权限与对象归属验证;模型的自然语言承诺不能代替权限校验。只读工具和写工具分开注册,写操作在缺确认或身份不明时不执行。外部页面、日志、工具输出作为数据进入上下文,其中的指令不能提升权限或触发额外工具。
02|超时不等于没执行
写调用携带稳定的幂等键,绑定同一任务和写入意图,不用每次重试生成新键。超时后优先查询事务状态;已提交返回原结果,明确未提交且支持幂等才重试,未知状态进入人工或返回待核验。重试限制次数与总时间,指数退避加抖动只用于可恢复错误;权限或参数错误不能盲目重试。缓存只读结果时包含权限范围与版本,避免跨用户混用。
03|比赛中怎样量化可靠性
固定任务分布,在沙箱注入写后丢响应、工具慢响应、重复消息和异常观察。分别报告常规成功率、故障恢复率、重复写比例、p95 延迟。预算耗尽时,明确告诉用户已验证的状态,不宣称完成。对错误地执行了额外写操作的任务,即使最终状态看似合理也要判失败。
练习|附件模拟「写入成功但回包丢失」,比较稳定幂等键和新键重试的差异。把第二个确认样本改为未授权,断言实际写入次数为 0;把重试上限设为 0,观察核验仍能识别已提交状态。