# AI 工作流失败后怎样重试，才能避免重复处理？

区分未开始、执行失败和结果未知，为重试与恢复设计清楚的依据。

要点：重试前先确认原动作是否已经完成。读取或生成草稿通常容易重复，发送、创建订单和修改记录则需要去重与结果核查。为业务事项保留唯一标识，记录每个关键动作的状态，避免超时后把整个流程重新执行。

![团队对照检查表与样品复核当前任务状态（AI概念配图）](/images/guides/scenes/v152-brand-film.jpg)

## 超时不一定意味着没有执行

外部系统可能已经保存结果，只是响应没有及时返回。如果直接再次创建，可能产生重复记录。因此失败状态应区分明确失败、尚未执行和结果未知。

对于结果未知的动作，先根据业务标识查询目标系统。无法确认时交给维护人员处理，并向使用者说明正在核对，而不是把“请求已发出”显示为“业务已完成”。

## 将去重依据放在业务层

同一封来信、同一条申请或同一笔任务应有可追踪标识。接收事件时记录是否已处理，关键写入如果支持幂等机制，应按接口说明使用；不支持时需设计额外核对。

重试次数、间隔和停止条件应有界限。权限错误、字段无效和资料缺失通常不能靠反复调用解决，应转到修正输入或人工处理。

## 只恢复尚未完成的部分

保存关键步骤的状态，可以在恢复时跳过已经完成的动作。若某步需要撤回或补偿，先明确业务允许的处理方式，不假定所有外部操作都可以自动回滚。

用重复事件、网络超时和部分完成的样例验证流程。检查既没有遗漏待办，也没有重复发送或写入。可靠性来自对失败结果的处理，不只是正常路径运行成功。

## 业务标识和一次请求的标识不要混用

同一业务事项可能发起多次请求。请求标识用于追踪一次通信，业务标识用于判断是否属于同一封邮件、申请或订单处理。若每次重试都生成一个全新的业务标识，下游就难以识别重复。具体去重键应依据业务对象和接口约定设计。

保存去重结果时，还要记录处理状态与目标记录标识。仅记一个“见过此请求”，可能让中途失败的事项永远无法恢复；完全不记录则可能重复执行。并发进入的相同事项需要在持久存储层协调，不能只依赖某个进程里的临时变量。

## 不同失败应进入不同的处理分支

字段错误应返回修正输入，权限不足应交给账号或业务负责人，临时连接错误才可能适合有限重试。服务要求等待时按其规则处理，并为重试总时长设置上限。自动恢复结束后，仍应让维护者看见最终结果。

用“目标已保存但响应丢失”的场景测试最容易暴露重复问题。模拟后先按业务标识查找，再决定是否继续创建。无法确定时标记待核查，不要为了让流程显示绿色而直接重复发出有业务影响的动作。

| 失败情况 | 处理方向 |

| --- | --- |

| 输入不满足规则 | 修正后重新提交 |

| 当前身份无权操作 | 核对授权范围 |

| 临时服务不可用 | 有限重试并记录 |

| 执行结果未知 | 先查询原动作结果 |

## 先查目标结果，再决定是否重试

模拟发送超时，先按业务标识查询目标系统是否已生成结果。将已完成、未完成和结果未知分别处理，只恢复需要补做的部分；重复通知等不可撤销动作须有人工核对去向。

## 参考来源

- [n8n Docs｜Webhook](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook)：事件接收与测试、生产入口区别

- [n8n Docs｜为什么需要评估 AI 工作流](https://docs.n8n.io/build/integrate-ai/test-and-improve-ai-workflows/understand-why-to-test)：利用固定样例比较输出与回归变化

## 发生失败后的判断

- 查状态：原动作完成还是结果未知

- 防重复：按业务标识核对已处理项

- 再恢复：仅继续未完成且可重试部分

![发生失败后的判断](/images/guides/diagrams/workflow-retries.svg)

## 继续阅读

- [自动化如何接收业务事件？Webhook 要核对这三件事](/guides/webhook-events)

- [AI 工作流的人工审核，放在哪里才有效？](/guides/human-approval)

- [工作流出了问题，运行记录应该留下哪些信息？](/guides/workflow-observability)

围绕当前问题查看任务、资料与人工确认示例，再用企业样例验证。

下一步：[按业务环节查看沙盘](/library)

原文：/guides/workflow-retries

内容版本：guide:workflow-retries:v1

<!-- version:guide:workflow-retries:v1 -->

[结合企业情况咨询](/intake?source=%2Fguides%2Fworkflow-retries&articleId=guide%3Aworkflow-retries&versionId=guide%3Aworkflow-retries%3Av1)