超越提示詞:為 AI Agent 引入版本控制

與 AI Agent 互動的當前工作流程往往感覺像是一場豪賭。你提供一個提示詞,Agent 執行了一系列變更,然後突然一個資料夾消失了,或者一個關鍵功能被重寫了。當你問「你為什麼要這樣做?」或「這項變更是什麼時候發生的?」時,Agent 通常很難提供精確的答案,因為它缺乏對自身演進路徑的結構化記憶。

這正是 re_gent 旨在填補的空白。透過為 AI Agent 引入專用的版本控制系統 (VCS),該專案尋求將 git 的嚴謹性——二分搜尋 (bisecting)、回溯 (rewinding) 與審計 (auditing)—帶入 Agent 式執行 (agentic execution) 的非決定性世界中。目前支援 Claude Code,re_gent 試圖將 Agent 行動背後的「意圖」正式化,讓開發者能將 Agent 會話視為一系列可追蹤、可逆轉的提交 (commits)。

問題所在:Agent 會話的「黑箱」

大多數開發者將 AI Agent 作為高速實作引擎。然而,隨著會話複雜度的增加,幾個痛點也隨之浮現:

  • 缺乏來源證明 (Provenance): 在漫長的會話中,很難精確指出特定的邏輯變更是在何時引入的。
  • 「復原」的掙扎: 雖然某些 IDE 提供基本的復原功能,但要撤銷跨多個檔案的複雜 Agent 驅動變更,通常需要人工介入或重新啟動整個會話。
  • 缺失的意圖: 標準的 git commits 追蹤的是「變更了什麼」,但它們並不總是能捕捉到 Agent 在特定提示詞-回應週期中,其內部推理過程中的「為什麼」。

辯論:專用 VCS 與標準 Git

「為 Agent 提供 Git」的提議在開發者社群中引發了重大辯論,主要集中在當 Agent 已經精通標準 Git 時,是否有必要使用專用工具。

支持標準 Git 的觀點

許多批評者認為,Agent 已經擁有數十年的 Git 使用訓練數據。從這個角度來看,專用的 VCS 是多餘的。有些人建議問題不在於缺乏工具,而是在於缺乏正確的工作流程。例如,有些開發者使用「Agent 鉤子 (agent hooks)」——透過自動化腳本觸發 git add .git commit 並附上所使用的工具描述——來維護變更歷史。

「我認為 git 更多的是一種針對 AI 垃圾內容 (slop) 的防禦與品質控制手段,而不是應該被自動化的東西。」

這種情緒凸顯了一個關鍵的緊張關係:對自動化的渴望與對人工監督的需求之間的拉鋸。許多開發者偏好在將變更提交到永久歷史之前先手動審查 Agent 的變更,以避免「AI 垃圾內容」污染程式碼庫。

支持專用層的觀點

專用 Agent VCS 的支持者認為,Agent 的互動粒度與人類開發不同。一次人類的 commit 可能代表一個完成的功能,但 Agent 可能需要十次迭代的提示詞才能達到相同的狀態。

將每一次提示詞-回應週期追蹤為「微提交 (micro-commit)」可以提供一種粒度,這種粒度在主要專案歷史中會顯得雜亂,但在偵錯 Agent 的推理過程時卻極其寶貴。正如一位貢獻者所提到的,像 Jujutsu (jj) 這樣的工具已經提供了自動提交功能,讓開發者能更容易地比較提示詞之間的 diffs,而不會弄亂最終的分支歷史。

關於 Agent 可審計性的替代方案

圍繞 re_gent 的討論引發了幾種管理 Agent 狀態與意圖的替代策略:

  1. 計畫驅動實作 (Plan-Driven Implementation): 與其使用直接的「提示詞 $\rightarrow$ 實作」流程,有些人建議採用「提示詞 $\rightarrow$ 計畫 $\rightarrow$ 實作」階段。透過在程式碼旁提交一份具體的計畫檔案,將「為什麼」作為儲存庫中的一等公民進行記錄。
  2. 內容定址儲存 (Content-Addressed Storage): 一些新興工具正朝著基於 DAG (有向無環圖) 的提交歷史與 CRDT (無衝突複製資料類型) 發展,以允許 Agent 在團隊間協作並進行點對點的歷史同步。
  3. 會話索引 (Session Indexing): 與其使用 VCS,有些開發者依賴於索引會話日誌 (例如在 ~/.codex/sessions),讓 Agent 能搜尋自己的歷史紀錄來尋找先前的對話或決策。

結論:邁向 Agent 式治理的道路

無論解決方案是像 re_gent 這樣的獨立工具、與現有 Git 工作流程更緊密的整合,或是轉向以計畫為基礎的開發,共識是清晰的:隨著 Agent 從簡單的聊天介面轉向自主貢獻者,對可審計性的需求至關重要。從「黑箱」執行轉向透明、有版本紀錄的歷史,不僅僅是為了方便——它是擴展 AI Agent 在專業生產環境中的必要條件。

Sources