← 所有作品

WORK / 2026-05-12

OpenClaw:一個清楚的完成通知

找出代理重複通知的原因,設計去重方法,同時保留失敗後重試的機會。

上游修正提案・已關閉,未合併
兩條完成通知路徑匯成一則訊息,並保留獨立的失敗重試路徑。

通知傳送方案示意。

當「完成」出現兩次

任務完成後,交接應該清楚。在 OpenClaw 裡,不同的完成與重試路徑可能同時發出同一個代理結果,令 Slack 討論串收到重複訊息。我追查這些路徑的交會點,並向上游提交修正提案。

記住成功,讓失敗可以重試。

方案把同一則通知的並行請求合成一次傳送,只記住成功送達的結果。失敗或中斷的嘗試仍可重試,避免在消除重複訊息時,也把從未送達的結果忽略了。

把可靠性問題,縮小到可以驗證。

Pull Request 包括並行呼叫、重複傳送、不同識別鍵及失敗重試的測試。重現步驟使用實際傳送路徑,並以替身模擬對外傳輸。PR 最後關閉而未合併,這裡記錄的是我的修正方案。

問題調查與修正提案:Eric Cheung(EricCheungAO)。OpenClaw 為獨立開源專案。