OpenClaw 工作流里,工具一旦接入真实业务,就不能总是假设外部接口永远不变。字段改名、返回格式调整、权限范围变化、错误码语义改变,都可能让 Agent 的判断出现偏差。更麻烦的是,模型有时会把异常返回解释成正常结果。
工具版本锁定的目的,是在接口升级和工具重构前保住稳定输出。它应该和 变更冻结窗口、灰度发布、回滚方案 一起设计。
先锁住输入和输出契约
工具版本不是只写一个版本号。更实用的是把输入字段、必填项、权限范围、返回结构、错误码和超时策略写清楚。Agent 依赖的不是“这个工具存在”,而是这个工具会按约定返回可理解的数据。
如果返回格式从文本改成 JSON,或者字段名从 customer_id 改成 account_id,看起来只是技术调整,实际可能会影响后续判断和写入动作。
升级前要跑回放样本
工具升级不能只看接口调用成功。至少要拿一批真实任务样本做回放,检查 Agent 最终输出有没有变化,人工接管率有没有上升,关键字段有没有丢失。
这部分可以直接复用 失败回放样本库 和 质量门禁。工具能返回 200,不代表业务结果安全。
灰度期要保留旧版本
对关键工具,升级时最好保留一段兼容期。新版本先服务低风险任务或少量客户,旧版本继续兜底。等观测指标稳定,再逐步扩大范围。
如果外部 API 强制升级,也要提前准备适配层,把变化挡在工具内部,而不是让每个工作流都去适配新字段。
回滚要能一步执行
很多回滚方案写得很好,但真正出事时没人知道在哪里点、谁有权限、回滚后会不会影响已完成任务。工具版本锁定要把回滚动作写进运行手册。
回滚后还要补一条复盘:是接口变化没有识别,还是测试样本不够,或者是权限范围没有同步。否则下一次升级还会踩同一个坑。
总结
OpenClaw 工具版本锁定,不是为了拖慢升级,而是为了让接口升级不破坏生产输出。把字段、权限、返回格式、灰度测试和回滚策略固定下来,Agent 才能在工具变化时继续稳定工作。