工具失败时怎么办:重试、回滚、人工确认和风险提示
工具失败不是异常情况。在真实 Agent 系统里它是常态。Shell 会超时。Browser 会遇到登录、2FA、captcha。文件会不存在。模型会传错参数。外部 API 会 429。所以一个成熟的 OpenClaw 工作流不应该假设工具总会成功而应该有一套失败处理策略。先说结论失败处理要先分类再动作不要看到失败就立刻重试。先分类临时失败 网络抖动、429、服务暂时不可用 参数失败 路径错、selector 错、参数缺字段 权限失败 approval 未通过、tool policy 拒绝、sandbox 看不到文件 状态失败 页面未加载、session 过期、进程等待输入 危险失败 可能破坏数据、重复提交、误删文件、发送到错误 channel分类以后再决定retry recover rollback ask human report risk stopRetry只适合可重试的失败适合重试短暂网络错误 可幂等的读取 临时 5xx 页面加载偶发超时 provider 短重试不适合盲目重试支付 发消息 删除 迁移数据库 提交表单 触发生产部署因为重复执行可能造成真实副作用。官方 retry policy 也强调按请求重试避免重复非幂等操作。Recover修正参数和状态很多失败不是需要重试而是需要恢复。例如 Browser stale ref旧 snapshot 里的 ref 失效 ↓ 重新 snapshot ↓ 找新的 ref ↓ 再尝试一次例如 shell 路径错误command failed: file not found ↓ pwd / ls / rg 确认路径 ↓ 用正确 workdir 重跑这比“原样重试三次”聪明得多。Rollback能撤销的才叫可靠工具失败后如果已经改变了文件或系统状态要考虑回滚。常见策略文件修改 使用 apply_patch保留 diff必要时反向 patch 代码改动 先看 git diff再决定撤回哪一部分 生成文件 删除或标记临时产物 外部系统 如果没有可靠撤销 API不要假装能 rollback回滚不是“把一切恢复到过去”这么简单。特别是外部系统、数据库、消息发送、支付、部署很多动作不可逆。此时正确做法是停止、报告风险、请求人工处理。Human confirmation什么时候必须问人应该问人的场景执行破坏性 shell 命令 approval policy 要求确认 Browser 遇到登录、2FA、captcha 要发送敏感数据到群聊 要删除、覆盖或迁移重要文件 要进行生产部署或付款 无法确定用户真实意图人工确认不是 Agent 的失败而是安全设计的一部分。风险提示不要把不确定包装成成功当工具失败或只完成部分工作时最终回复要说明完成了什么 哪里失败 失败原因是什么 有没有副作用 是否重试过 是否需要人工确认 下一步建议不要说已完成。如果实际上只是已打开网页但下载失败。 已生成报告但没有成功发送。 已修改文件但测试未通过。Trajectory失败后的飞行记录OpenClaw 的 trajectory capture 可以作为每个 session 的 flight recorder。它记录 prompt、tool calls、runtime events、模型、插件、usage、错误等结构化时间线。当你需要回答模型为什么调用这个工具 哪个工具失败了 上下文里到底有什么 fallback 有没有发生可以考虑导出 trajectory bundle。这让失败不只是“感觉上出错了”而是可以被复盘。一个真实场景用户说帮我清理项目里的临时文件。Agent 不能直接rm -rf *合理流程1. 先列出候选文件 2. 区分 build artifact、cache、用户文件 3. 给出将删除清单 4. 需要时请求确认 5. 执行可回滚或低风险删除 6. 保留日志 7. 报告删除了什么、跳过了什么如果删除失败应该说明哪个文件失败、为什么失败而不是继续扩大范围。常见误解误解一工具失败就应该自动重试不对。要先判断是否幂等和是否安全。误解二回滚就是 git reset不能这么粗暴。回滚要针对本次变更而且不能撤掉用户已有修改。误解三人工确认会降低自动化能力不是。它让自动化可以进入更高风险场景。误解四失败时只要道歉就行不够。要给证据、影响范围和下一步。最后总结工具失败处理是 Agent 可靠性的核心。一句话总结可重试的才重试可撤销的才回滚高风险的先确认不确定的要透明报告。本节作业写出五类工具失败并分别给出处理策略。设计一个删除文件前的人工确认流程。解释为什么发消息、支付、部署不适合盲目重试。找一次失败任务写出它的完成部分、失败部分和风险提示。下一节预告下一部分进入 Skill、MCP 与插件扩展我们会从“如何使用 OpenClaw Skill”继续讲到如何自己写 Skill、接 MCP、做插件。参考资料OpenClaw DocsRetry policyOpenClaw DocsExec approvalsOpenClaw DocsTrajectory bundlesOpenClaw DocsDiagnostics exportOpenClaw Docsapply_patch tool原文链接工具失败时怎么办重试、回滚、人工确认和风险提示 | Harries Blog™

相关新闻