取得 AX Code · 免費文件

本頁譯自英文文件。指令、識別名稱與範例保持原樣。執行環境 7.24.4 · SDK 2.6.7。 英文原文

已驗證的多模型變更

狀態:現行 範圍:現行狀態 上次審閱:2026-08-21 負責人:AX Code 執行環境

這是給這項工作的流程頁:「我有一項後果重大的變更,想對它多試幾次,並讓儲存庫自己的檢查決定哪一次值得留下。」

模式參考,也就是旗標、設定鍵與排序輸入,請見 執行模式。這一頁是從頭到尾的工作說明。

什麼時候值得

同時跑數個模型,成本是只跑一個的數倍。當變更後果重大,而且失敗要到後來才發現會很貴時,才划算:跨越模組邊界的重構、一次遷移、安全性敏感程式碼裡的修正,或你確實不知道哪一種作法才對的變更。

一行編輯、重新命名,或你讀過就能驗證的事情,都不值得。

兩種不同的工具

工具 它產生什麼 會寫入檔案嗎?
council 獨立的審查意見,並加以彙整 不會
arena 候選實作,並加以排序 只在隔離的工作樹中

用 council 決定要做什麼。它把設計或審查問題散發給數個已連線的供應商,並把答案彙整成共識、嚴格多數、少數與單一發現,也可以加上匿名辯論回合。它是建議性質。模型之間的一致並不是正確的證明;它是這個問題有多受爭議的訊號。

用 arena 決定要留下哪一個實作。

arena implement 工作流程

1. 準備

實作模式需要一個 Git 專案,至少有一次提交,以及乾淨的主要工作樹。參賽者的工作樹從精確的基底提交建立,不能繼承未提交的變更,因此請先提交或暫存。

你還需要在已連線的供應商上,至少有兩個可分別選取、且彼此不同的模型(支援共用閘道),以及 modes.arena.enabled: true。

2. 執行

/arena <task description>

每個參賽者都會從已記錄的基底提交得到自己的 Git 工作樹,並在其中執行實作代理程式。參賽者不會修改你的主要工作樹。

3. AX Code 如何處理每個候選

  • 把參賽者已追蹤以及未追蹤的變更快照成持久的分支提交,包含代理程式自己做的任何提交。
  • 執行偵測到的專案驗證指令,也就是型別檢查、測試與 lint,但只在擷取到非空白修補之後。空白修補不能勝出。
  • 預設以驗證優先排序:只有已完成、非空白,而且通過驗證的修補才有資格勝出。在通過的候選之中,它偏好風險較低、差異較大的修補。

4. 決定

報告會給你工作樹路徑、分支名稱與提交範圍。

AX Code 不會合併勝出者。 請自行檢查、合併或 cherry-pick。這是刻意的:驗證的意思是「你設定的檢查在這個修補上通過了」,這是真實的訊號,但不能取代審查。

5. 審查,必要時還原

候選進入你的工作樹之後,證據指令照常適用:

ax-code graph <sessionID>       # what the winning run actually did
ax-code risk <sessionID>        # heuristic risk signals for the change
ax-code session rollback <sessionID> --dry-run

請見 執行證據。

這裡的「已驗證」精確指什麼

它的意思是:專案偵測到的型別檢查、lint 與測試指令,曾對該候選的修補執行,而且通過了。

它不表示這項變更正確、完整、安全或設計良好。若你的測試套件沒有涵蓋被改到的行為,通過的候選只證明已經被涵蓋的部分沒有壞掉。驗證提高的是下限,並不認證上限。

它也不延伸到一般的互動式編輯。Arena 候選與有閘門的重構套用會執行檢查;一般工作階段中的普通 edit 或 write 不會自動這樣做。若要為一般執行記錄該證據,請執行 verify_project。

成本與失敗模式

  • 成本隨參賽者增加。 每一個都會執行完整的實作代理程式。
  • 不乾淨的工作樹會在其他事情發生之前停止這次執行,這是刻意的。
  • 少於兩個彼此不同的模型會讓比較沒有意義,工具會回報這個情況,而不是編造排序。
  • 所有候選都可能無法通過驗證。 這是有用的結果:通常表示工作規格不夠明確,或儲存庫的檢查比代理程式所假設的更嚴格。