先看你卡在哪一環節
當 Agent 工作流程裡的上下文開始「漂移」——memory 被污染、context 被截斷、狀態回滾時又把不該恢復的舊 context 恢復了——你立刻會面對一個選擇:用 recovery primer、audit log 還是 rollback?
這不是理論題。我經歷過一次生產事故:一個長期運行的 Codex agent 在連續對話 200 輪後,context 被舊分支污染,導致它反覆調用錯誤的 API。當時團隊內部分歧很大:有人主張用 recovery primer 重建 context,有人堅持 audit log 逐個排查,還有人想直接 rollback。結果是每種方式都試了,但時間和資源浪費了一週。
先理解三個工具各自解決什麼
Context Engineering Recovery Primer:這是一個預設的「上下文復原藍圖」。它定義了一組規則和模板,用於在 context 損壞或遺失後快速重建。例如,當 agent 偵測到 context 長度超過閾值或關鍵狀態缺失時,primer 會注入一個乾淨的、包含必要全域資訊的 context 模板,並標記目前狀態為「復原中」。 Primer 的價值在於速度快、可控,但缺點是它不保留歷史細節——恢復後的 agent 相當於從「最近 checkpoint」繼續工作,失去了之前所有的中間推理。
Agent Workflow Audit Log:這是一個完整的操作日誌系統。它記錄每個步驟的輸入輸出、上下文快照、狀態變更以及時間戳記。當問題發生時,審計日誌能精確回放「哪一步把錯誤 context 寫入了」。它的優勢是定位精準,但缺點是查詢和分析成本高——尤其是在 I/O 密集型或 long-running 任務中,日誌本身可能成為效能瓶頸。
Rollback:這是最直接但最粗暴的方式。將 agent 的狀態(包括 memory、context、任務佇列)整體恢復到某個已知穩定的快照。 Rollback 的困難在於「快照邊界」很難定義:你到底該回滾到 5 分鐘前,還是 3 小時前?如果回滾了,那些正確執行過的操作也要重新做?

最容易踩的坑:選錯工具白費力氣
最容易失敗的地方是:你拿 Primer 當審計用,拿 rollback 當常規恢復手段。
真實案例:一個做程式碼 review 的 agent 每次出錯時,團隊直接 rollback 到上一個 git commit 之前的 context。結果呢?它們發現 agent 頻繁地丟失已經批准的程式碼評審意見,開發者不得不手動重新提交 review。問題根源是:rollback 把正確的核准狀態也回滾了,但那些審批並未提交到外部系統,導致永久遺失。
正確做法是什麼? 先定位問題類型:如果 context 只是“不完整”而不是“錯誤”,則用 primer 重建更合適;如果 context 是“被錯誤訊息污染”且需要追溯污染源,則審計日誌是唯一選擇;如果 context 已完全不可用且影響範圍可控,rollback 作為最後手段。

三種場景下的決策矩陣
| 場景 | 推薦工具 | 原因 | 限制 |
|---|---|---|---|
| Agent 連續對話達 200 輪,context 被隨機截斷 | Recovery Primer | 快速重建乾淨 context,丟失部分中間推理但在可接受範圍內 | 不能定位截斷原因 |
| 同一 agent 兩次執行結果不一致,懷疑 context 被錯誤注入 | Audit Log | 追溯每一步輸入輸出,定位污染源頭 | 需要日誌系統支持,查詢耗時 |
| Agent 開始產生完全無關的胡話,且無法透過日誌快速定位 | Rollback | 徹底回到已知穩定狀態,是最安全的兜底 | 可能丟失正確的工作成果,需配合外部狀態檢查 |
請注意,很多實際故障是混合的:例如「context 被污染」導致 agent 行為異常,你 rollback 後問題重現,因為污染源仍在環境中。這時 audit log 才是根本解法。
三個可執行做法
1. 評估你的 agent 對「中間推理失去」的容忍度
如果你的 agent 是逐步构建代码的(比如 Codex 逐文件生成),中间推理丢失后重启的成本很高,那么 primer 不适合你。你更應該用稽核日誌 + 增量復原:從日誌重建最近的推理路徑。
2. 為關鍵操作設定外部確認點
Rollback 最大的陷阱是內部狀態回滾但外部操作(如發送郵件、提交 PR)未同步回滾。解決方案是:每個影響外部系統的操作前,建立一份外部快照(如資料庫記錄或文件提交)。回滾時,先比較外部快照和內部狀態,只有外部未生效的操作才允許回滾。
3. 建立「恢復演習」機制
別等到生產事故才想怎麼做。每週選一個測試 agent,故意製造 context 污染,然後練習用三種方法分別恢復,記錄時間和結果。你會很快摸清每種工具的邊際成本。
什麼時候該用哪一個?一個決策流程圖
问题出现
├─ context 仅不完整(长度超限、关键缺失)? → Recovery Primer
├─ context 明显被错误信息覆盖?
│ ├─ 能定位污染源? → Audit Log → 修复污染源 + 局部恢复
│ └─ 无法定位? → Rollback(配合外部状态检查)
└─ agent 行为完全失控? → Rollback 后审计日志追查根因
總結:沒有銀彈,但你可以避免常見失敗
選錯恢復策略的主要原因是對「故障類型」沒有精準分類。建議團隊在 agent 上線前先根據業務定制“恢復策略優先級表”,並寫入 agent 的異常處理 pipeline。
如果你的 agent 架构涉及多步骤、外部 I/O 或长期运行,强烈建议把 audit log 和 rolling snapshot 作为基础设施——而不是事后补救手段。
下一步,你想深入 agent 穩定的更多實踐?可以看看我們的系統課程。

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