軟體工程師不會在沒有版本控制的情況下部署程式碼。他們會審查差異、在測試環境中測試,並在出錯時回滾。AI 工作流程也應該有同樣的紀律。
JieGou 的工作流程版本控制系統為您提供不可變的版本歷史記錄、結構化差異比對、一鍵回滾和金絲雀部署——全部內建在工作流程編輯器中。
每次編輯都會建立一個版本
當您修改工作流程的結構時——新增、刪除或重新排列步驟,變更輸入/輸出 schema——JieGou 會自動建立新版本。歷史記錄是只能附加的,不會覆寫任何內容。
每個版本都是完整的快照:每個步驟、每個輸入映射、每個 schema 定義,都凍結在那個時間點。您可以瀏覽工作流程演進的完整時間軸,查看每次變更是誰在什麼時候做的,並準確了解工作流程如何達到目前狀態。
這一切都是透明進行的。您編輯工作流程的方式與以往相同——版本控制層在幕後運作。
結構化差異比對
光知道有東西改變是不夠的。您需要知道什麼改變了。
差異引擎會在結構層面比較任意兩個版本。它會識別:
- 新增的步驟 — 先前版本中不存在的新步驟
- 刪除的步驟 — 被刪除的步驟
- 修改的步驟 — 設定有變更的步驟(recipe、輸入映射、條件、迴圈設定、審批政策)
- 重新排序的步驟 — 在執行順序中移動位置的步驟
- Schema 變更 — 輸入/輸出 schema 中新增、刪除或修改的欄位
對於修改的步驟,差異比對會更深入。像條件分支(thenSteps / elseSteps)、迴圈主體和平行分支等巢狀結構會遞迴比較。您可以準確看到哪個步驟中的哪個欄位發生了變更。
結果是人類可讀的摘要——「2 個步驟已修改,1 個步驟已新增,輸入 schema 已變更」——以及詳細的差異檢視。
回滾作為新版本
回滾不會改寫歷史記錄。當您回滾到版本 3 時,JieGou 會將該版本的步驟和 schema 複製到全新的版本(例如版本 8)。時間軸會顯示完整故事:版本 4 到 7 曾經存在,出了問題,而版本 8 是版本 3 的還原。
這意味著回滾是安全的。如果回滾本身是個錯誤,您隨時可以再次向前滾動。
金絲雀發布
對任何工作流程來說,最危險的時刻就是變更後。金絲雀發布讓您在完全提交之前,先在一部分自動化流量上測試變更。
運作方式如下:
- 啟動金絲雀。 選擇新版本和流量百分比——例如 10%。
- 自動路由。 當排程或 webhook 觸發工作流程時,
resolveWorkflowVersion()會產生隨機數。10% 的執行會路由到金絲雀版本;90% 繼續使用活躍版本。 - 指標累積。 每次執行都會記錄成功/失敗、持續時間和 token 使用量到對應版本。Redis 計數器即時彙總這些資料。
- 升級或回滾。 當您有信心時,將金絲雀升級為活躍版本(淘汰舊版本)。或者如果指標看起來不對勁就回滾。
對於無人值守操作,可設定自動升級:設定最小執行次數和最小成功率。一旦金絲雀達到兩個門檻,就會自動升級。如果金絲雀在可設定的時間限制後還沒達到門檻,就會自動回滾。
手動執行始終使用活躍版本,除非您明確選擇不同版本。
每個版本的指標
每個版本都會累積自己的效能資料:
- 總執行次數 — 此版本執行了多少次
- 成功率 — 沒有錯誤完成的執行百分比
- 平均持續時間 — 此版本的執行需要多長時間
- 錯誤計數 — 失敗的執行次數
這些指標支援金絲雀的升級/回滾決策,但對於發現效能衰退也很有用。如果版本 5 的成功率是 98%,版本 6 降到 91%,您就知道有東西變了——而且可以比對兩個版本來找出是什麼。
為什麼這很重要
沒有版本控制,工作流程變更是不可逆的。錯誤的編輯意味著要手動重建工作流程之前的樣子。有了版本控制:
- 稽核人員可以準確追蹤什麼改變了、何時改變以及誰改的
- 團隊可以在將變更升級到生產環境之前審查差異
- 維運人員可以在實際流量上進行金絲雀測試變更,而不用擔心風險
- 任何人都可以在出問題時立即回滾