Ratchet:一個只能前進的AI交付循環
Praveen Vijayan 介紹了 Ratchet,一種旨在防止倒退的 AI 交付工作流程。它基於 GitHub 構建,限制編碼代理只能向前推進工作,最終合併始終由人工審批。Ratchet 是開源的,與代理無關,注重可審計性和安全性。
近年來,AI 編碼代理的能力不斷提升,但如何在生產環境中安全地應用它們,仍是一個挑戰。許多團隊發現,全自動方案要麼偏離預期,要麼在測試失敗時停滯不前,甚至直接合並未審查的代碼。Praveen Vijayan 在金融行業的工作經歷讓他深刻意識到這些問題的嚴重性。為此,他創建了 Ratchet——一個強制單向交付的工作流系統。
Ratchet 的核心思想很簡單:只允許工作向前推進,絕不允許後退。它模擬了棘輪的工作原理,確保每次操作都向最終交付靠近。系統基於 GitHub 構建,利用 issue、分支、標籤、Actions 和 pull request 等原生功能,無需額外的數據庫或服務。任何一步都能在倉庫中直觀查看。
工作流分為幾個階段:代理從隊列中選取任務,通過創建分支自動認領;接着進行小規模編碼,每次提交都遵循倉庫風格;隨後運行項目自身的測試和構建,兩次機會後仍未通過則退回隊列並附説明;成功通過則創建 pull request,由人工審查。合併後,系統自動更新任務狀態,並重新填充隊列。
與 Devin 或 Copilot 不同,Ratchet 不綁定特定代理。它支持任何能運行命令行和解析 markdown 文件的代理。這意味着團隊可以自由選擇最適合的工具,而不必擔心被鎖定。此外,Ratchet 強調可審計性:所有動作都是真實的 GitHub 事件,帶有時間戳和操作者信息,這在高合規性要求的環境中至關重要。
Ratchet 還包含一個記憶系統。項目知識存儲在倉庫中的兩個 markdown 文件中:一個僅供代理讀取,另一個允許代理建議修改,但必須通過 pull request 審查。這樣,代理的“學習”過程完全透明,團隊可以審核每一項變更。避免了黑盒式的記憶存儲,讓信任建立在可讀的代碼之上。
目前 Ratchet 以 MIT 許可證開源,作為 GitHub 模板發佈。初始化只需運行 /ratchet-init,然後通過 /ratchet-plan 制定計劃、/ratchet-next 推進任務。它默認只在本地運行,使用開發者的現有 GitHub 賬號,不增加額外安全風險。團隊版正在開發中,當前版本主要針對單獨開發者設計。
總之,Ratchet 提供了一種安全、可控的 AI 交付方案。它讓代理承擔重複性的編碼和測試工作,而將關鍵決策保留給人類。這種設計不僅提高了效率,還降低了風險,特別適合對代碼質量和安全性有嚴格要求的團隊。