兩種回滾,兩種思維
在 Agent 工程中,回滾不是簡單的「撤回」。當你需要處理一個執行失敗的 background task,或恢復一次 workflow 的異常狀態時,兩種主流方案擺在面前:background mode rollback 和 agent workflow audit log rollback。它們名字相似,但適用邊界、失敗模式完全不同。
適用對象:誰用誰受益
Background Mode Rollback 適合誰?
如果你的任務是無狀態的、可重入的、執行時間較短的後台操作,例如發送通知、轉換文件格式、定期清理緩存,background mode rollback 就很合適。它通常依賴任務佇列的重試機制:失敗後根據預設策略(如指數退避)重新執行,直到成功或超過重試次數。
典型場景:一個批次圖片壓縮的 background job,某一張圖片壓縮失敗,回滾就是重新壓縮這一張,而不是撤銷所有已壓縮的圖片。
Agent Workflow Audit Log Rollback 適合誰?
當你的 workflow 涉及多步驟操作、狀態變更、資源分配,並且每一步都有日誌記錄時,audit log rollback 是更好的選擇。它透過回放或逆向操作日誌,將系統狀態還原到某個檢查點。
典型場景:訂單處理 workflow,包含庫存扣減、支付扣款、物流單產生。支付失敗後,需要回溯庫存和支付,audit log 記錄了每一步的輸入輸出,可以精確撤銷已執行步驟。

對比維度:核心差異
| 維度 | Background Mode Rollback | Agent Workflow Audit Log Rollback |
|---|---|---|
| 回滾粒度 | 任務等級:整個任務重新執行或跳過 | 步驟層級:可回滾到任一日誌檢查點 |
| 狀態依賴 | 無狀態或冪等 | 強依賴日誌中的狀態快照 |
| 失敗處理 | 重試或丟棄 | 逆向操作或補償事務 |
| 實現複雜度 | 低:訊息佇列 + 重試策略 | 高:稽核日誌儲存 + 回滾引擎 |
| 一致性保證 | 最終一致 | 強一致或最終一致(取決於補償邏輯) |
| 典型工具 | Celery、Sidekiq、AWS SQS + Lambda | Temporal、Camunda、自訂 event sourcing |

最容易踩的坑:失敗場景剖析
Background Mode Rollback 的陷阱
- 非冪等操作無法安全重試:假設你的 background task 執行“用戶餘額增加 10 元”,如果重試時沒有檢查是否已執行,會導致重複增加。這時 background mode rollback 根本無法直接重試,需要額外設計冪等鍵或去重邏輯。
- 重試耗盡資源:當一個任務因為依賴服務(如資料庫)不可用而反覆重試,可能雪崩式地壓垮下游。必須設定合理的重試窗口和熔斷機制。
真實失敗案例:某團隊用 background mode rollback 處理支付回呼通知,支付網關逾時後重試 3 次,但第 1 次實際已成功,結果重試導致重複發貨。
Agent Workflow Audit Log Rollback 的陷阱
- 日誌膨脹與回滾延遲:每一步都寫日誌,長時間運行的工作流會產生海量數據,回滾時重播或逆操作耗時可能超過預期。需要定期壓縮檢查點。
- 補償操作的副作用:假設一個步驟發送了外部郵件,回滾時無法「撤回」已發送的郵件。補償邏輯只能是“發送一封取消郵件”,但用戶體驗已經受損。
真實失敗案例:一個多步驟審核 workflow,管理員回滾到前一步,但審計日誌中記錄了審批意見,回滾後審批意見消失,導致審批歷史不一致。
可執行做法:如何選擇與實施
第一步:判斷任務特性
- 如果任務可以重複執行而不產生副作用(冪等),且不需要精確步驟回滾,選 background mode rollback。
- 如果任務有順序依賴、狀態變更、外部副作用,需要精確恢復,選 audit log rollback。
第二步:混合方案
實際專案中可以混合使用:用 background mode 處理獨立子任務,用 audit log 編排整體流程。例如,在一個資料處理 workflow 中,資料清洗子任務用 background retry,而資料入庫和通知用 audit log 回滾。
第三步:為失敗做準備
- 無論選擇哪一種,都要設計「手動兜底」機制:當自動回滾失敗時,提供 CLI 或後台介面讓維運人員介入。
- 監控回滾頻率和失敗原因,避免因回滾本身成為新的故障來源。
你的下一步決策
現在你已經清楚兩種回滾的差異和適用邊界。如果你的團隊正在設計 Agent workflow 的回溯能力,或是從普通後台任務遷移到工作流程編排,以下這個資源可以幫助你深度掌握 Agent engineering 的核心模式。

暫無評論,快來發表你的看法吧