取得 AX Code · 免費文件

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

執行模式(本機、雲端、混合、Council、Arena)

狀態:有效
範圍:目前狀態
上次審閱:2026-09-12
負責人:ax-code runtime

AX Code 可以把工作放在本機推論、託管/CLI 供應商,或兩者(混合),也可以把高風險工作扇出到多個已連接的供應商(council 審查與 arena 的 N 選最佳)。本頁記載這些模式已出貨的行為。

權威來源

行為改變時,請對照:

  • packages/ax-code/src/mode/ — 純原則、混合、council 彙整、arena 排序、辯論、預算、記憶、worktree 原則、實作 arena 評分
  • packages/ax-code/src/tool/council.ts — 多供應商 council 工具
  • packages/ax-code/src/tool/arena.ts 與 arena-implement.ts — 計畫與實作 arena
  • packages/ax-code/src/session/prompt/prompt-routing.ts — 當 modes.default 為 hybrid 時的混合放置
  • packages/ax-code/src/config/schema-impl.ts — modes 設定結構描述
  • packages/ax-code/src/command/template/{council,arena}.txt — /council 與 /arena 在預設斜線選單中

工作模式選擇器(Agent|Council|Arena)

TUI 與 Desktop 提供多模型路由的工作模式控制。預設是 Agent。

介面選擇 自由文字送出變成
Agent(預設) 一般的單 agent 提示
Council /council {your message} 多供應商審查
Arena /arena {your message} 多模型 N 選最佳
  • TUI 預設外觀:頁尾不顯示 Agent 標籤。執行模式與沙盒仍在。/work-mode(選擇區 選擇工作模式)開啟明確選擇器:Agent、Council 與 Arena,每一列都有成本與語意。不可用的集合列會停用並附原因。
  • **已武裝的集合外觀:**你挑選 Council 或 Arena 之後會出現標籤(Council · 2,若之後變成不可用則是空心的 Arena (off))。按一下標籤可回到 Agent。新的聊天會重設為 Agent。
  • **可用性:**模式在設定中啟用、至少兩個已連接供應商有可選模型,且設定的成員上限不是 1 時可用。供應商連接或中斷時,標籤與選擇器列會即時更新。
  • 送出前提示(TUI):當 council/arena 被阻擋或仍在檢查,以及第一次使用可用模式時,提示上方會出現一行提示(例如 Council mode · up to 2 reviewers · advisory · approval on first use)。在該模式成功送出後,標籤仍是狀態,提示會隱藏。所選模式不可用時送出會被阻擋並附原因——草稿會保留,提示絕不會被悄悄降級成單模型執行。
  • **桌面版:**撰寫區工具列標籤(在手動/自主旁邊)。
  • 明確的 /council 與 /arena 絕不會被改寫,並仍是單次進入點。
  • 專家 agent(architect、security 等)留在分開的 agent 選擇器。

放置模式一覽

模式 它做什麼 會變更工作區嗎? 預設
本機 偏好 AX Engine(或已設定的本機供應商) 會(單一 agent) 當你釘選本機/混合把工作放在本機時
雲端 偏好託管或 CLI 前沿供應商 會(單一 agent) 本機不可用時
混合 原則依可用性、複雜度與隱私選擇本機或雲端 會(單一路徑) 設定 modes.default: "hybrid"
council 扇出結構化審查/設計;分類共識/多數/少數/單一 不會(僅供參考) 工具加 /council,或工作模式 = Council
arena 多模型計畫比較,或 worktree 實作的 N 選最佳 計畫:不會。實作:只在 worktree 選擇加入(modes.arena.enabled)加上工作模式 = Arena

關鍵字專家路由與複雜度分級(見自動路由)與混合放置及集合模式正交。

模型努力程度/思考等級(快速、平衡、深入、最大)也是正交的——它是依模型的推理預算,不是工作模式。見模型努力程度。

設定

在 ax-code.json 中:

{
  "modes": {
    "default": "hybrid",
    "hybrid": {
      "preferLocalWhenAvailable": true,
      "escalateOnHighComplexity": true,
      "localProviderID": "ax-engine"
    },
    "council": {
      "enabled": true,
      "maxMembers": 3,
      "timeoutMs": 180000,
      "debateRounds": 0
    },
    "arena": {
      "enabled": true,
      "maxContestants": 3,
      "strategy": "verify_first"
    },
    "budget": {
      "maxEstimatedUsd": 0.5,
      "estimatedUsdPerMember": 0.05
    }
  }
}
欄位 意義
modes.default local、cloud、hybrid、arena 或 council。未設定時:本機符合原則訊號就用混合,否則單一路徑預設為雲端。
modes.hybrid.* 本機偏好、高複雜度升級到雲端、本機供應商 id
modes.council.* 啟用、成員上限、逾時、推理模型逾時倍率、依成員的逾時覆寫、辯論輪次、選擇加入的主席/調適扇出(兩者預設關閉)
modes.arena.enabled 必須是 true,才能用於 arena 工具(預設關閉)。工作階段中途的編輯會在下一次工具呼叫被拾取(Config.getFresh)。或在 arena 工具上傳入 enableIfDisabled: true。
modes.arena.strategy verify_first(實作建議)、diversity 或 hybrid_score
modes.arena.reasoningTimeoutScale 模型宣告具推理能力的參賽者之逾時倍率(退回 modes.council.reasoningTimeoutScale,然後是 3)
modes.arena.memberTimeoutMs 以 "providerID" 或 "providerID/modelID" 為鍵的絕對依參賽者逾時覆寫(退回 modes.council.memberTimeoutMs)
modes.arena.judge 計畫模式的盲化量規評判(預設:true)
modes.ensembleLedger 集合生成的本機 JSONL 呼叫帳本(預設:true;只有 SHA-256 提示雜湊,沒有主體,沒有外送)
modes.budget.* 對集合扇出估計美元的失敗即關閉上限

混合放置

當 modes.default 是 hybrid,且使用者/agent 沒有釘選模型時:

  1. 若本機供應商(預設 ax-engine)有可選模型 → 低/中複雜度偏好本機。
  2. 若複雜度是高且 escalateOnHighComplexity 為真 → 雲端。
  3. 若隱私要求本機且本機可用 → 本機。
  4. 若本機不可用 → 雲端。

啟用自動路由的複雜度路由時,複雜度仍對 low 訊息使用既有的小型/快速模型路徑(自動路由)。混合不會取代關鍵字專家路由。

本機模型與記憶體指引:AX Engine 模型選擇。供應商清單:支援的供應商。

Council(共識模式)

工具:council
斜線:/council <question>

  1. 選擇多樣的已連接供應商(家族多樣性——在無法辨識的多模型閘道下,家族退回模型 id;來自結果記憶的軟性偏向)。
  2. 平行扇出結構化的審查或設計提示。
  3. 把問題彙整成共識(在法定人數下的成功成員中一致——至少 max(2, ⌈2/3 × attempted⌉) 次成功)、嚴格多數(超過嘗試成員的一半)、少數(至少兩個)與單一等級。發現會揭露相對於嘗試成員的支持(2/6),低涵蓋報告會說明共識標籤需要法定人數。
  4. 選用的辯論輪次:輪次之間分享匿名(Chatham House)綜合;沒有品牌歸因。辯論上限三輪,收斂時提前停止。
  5. 回傳僅供參考的 Markdown 報告。不編輯檔案。

至少需要兩個已解析的成員才能執行——更少時會以「成員不足」預檢短路,在任何核准提示或模型呼叫之前(明確的同一閘道模型配對算兩個)。有意義的共識等級仍至少需要兩個成功成員;否則報告會標成不完整。

**證據准許。**成員只收到提供的問題與上下文。他們不繼承呼叫中的 工作階段,也不從簡報中的路徑讀取檔案。請納入需求、相關 diff、必要的原始片段, 以及所述審查範圍所需的驗證證據。

選用的 context 會依字面接受,上限 24,000 個 UTF-16 碼元。較大的上下文會在成員推論之前回傳 context_rejected;AX Code 絕不會悄悄縮短它。把審查拆成明確 限定範圍的請求,或移除選用背景並保留必要證據。

每一輪之前,AX Code 會用 128,000 位元組的本機上限,以及每個已解析成員的 已知輸入/上下文限制來檢查整個提示,並保留所請求的輸出與退回指示,再加上 2,048 個 token 給結構描述 與框架。輸入大小使用刻意保守的 UTF-8 位元組估計。它可能拒絕其實放得下的提示; 它既不是精確的分詞器計數,也不保證供應商序列化。未知的模型限制會被 揭露,並仍受本機上限約束。若某一辯論輪放不下,結果就不完整,並保留 最後完成那一輪的報告。

contextAdmission 記錄本機上下文長度閘門、提供的大小與內容摘要;promptBudget 另外檢查 完整請求。兩者都必須在推論前通過。這些欄位與 successfulMembers 無關, 也不確立語意完整性、來源新鮮度或保證的審查品質。

**逾時。**每個成員在 modes.council.timeoutMs 下執行(預設 180000 毫秒);宣告 具推理能力的模型得到該預算的 modes.council.reasoningTimeoutScale 倍(預設 3,因此是 540000 毫秒)。 若要給一個已知較慢的成員更多時間,而不拉長其他人的等待,請設定絕對的 modes.council.memberTimeoutMs 覆寫,以 "providerID" 或 "providerID/modelID" 為鍵——精確的 模型鍵勝於供應商全域鍵,且任一者都勝於基礎/倍率計算:

{
  "modes": {
    "council": {
      "memberTimeoutMs": { "deepseek/deepseek-v4-pro": 900000 }
    }
  }
}

ax-code.json 是受保護的設定檔——agent 必須請使用者更改它。

選用通道(預設關閉)。modes.council.chairman: true 在彙整之後(以及任何辯論輪之後)附加一次盲化主席綜合呼叫:主席只收到匿名發現(等級與支持計數,絕不是成員身分),並回傳裁決、建議行動與異議註記。確定性分級仍是主要輸出;主席失敗會被揭露且非致命。modes.council.adaptive: true 以兩個成員開始扇出,並在第一輪涵蓋低於法定人數或異議重大時,一次擴充一個,直到 maxMembers;擴充觸發是控管層可調的常數。

何時使用

  • 架構/安全/設計取捨
  • 高風險程式碼審查,多模型一致可提高信心
  • 使用者要求多模型或「第二意見」審查

Agent 工作流程(重要)

相關證據可用時,及早呼叫 council 一次,並附上明確限定範圍的 context 簡報。 避免與該審查無關的廣泛多重探索;在請成員提出程式碼發現之前,先收集必要的原始證據。 若使用者要求 council/arena,在集合工具成為預定的主要動作之前,task_parallel 會被拒絕。

何時不要使用

  • 瑣碎問題(延遲/成本)
  • 不得離開本機推論的隱私敏感程式碼
  • 只連接了一個供應商

Arena(N 選最佳)

工具:arena
斜線:/arena <task>
需要:modes.arena.enabled: true,以及已連接供應商上至少 2 個不同的可選模型(包括共用閘道)

**證據准許(與 council 共用)。**選用的 context 會依字面接受,上限 24,000 個 UTF-16 碼元。較大的上下文會在任何核准提示、worktree 建立或模型呼叫之前回傳 context_rejected——AX Code 絕不會悄悄縮短它。把工作拆成明確限定範圍的請求,或減少選用背景並保留必要證據。核准提示本身只在每個無操作預檢都通過之後才出現(已停用、上下文准許、實作 git 預檢、預算、成員解析)。

mode: "plan"(預設)

  • 每位參賽者提出做法、步驟、風險,以及校準過的自我評估風險分數(不寫入工作區)。
  • 有至少 2 個成功提案時,一次盲化量規評判呼叫(第一個已解析的成員;身分被去除,順序隨機)依需求涵蓋、可行性、驗證計畫與風險證據為每個提案評分(各 0–10,允許平手)。量規總分(0–40)是主要排序訊號;自我評估風險只供顯示。評判失敗或 modes.arena.judge: false 會退回自我評估評分,並附揭露註記。
  • 排序時驗證等級優先,然後是評判/風險分數,再來是修補指紋多樣性(絕不是純人氣)。計畫排序僅供參考,不是執行驗證。
  • 僅供參考。

mode: "implement"

  • 需要一個至少有一次提交、且沒有未提交變更的主要 git worktree,記錄其精確基準提交,並從該提交為每位參賽者建立一個 git worktree。
  • 在每個 worktree 中執行實作 agent。
  • 把每位參賽者受追蹤與未追蹤的變更快照成可持久的分支提交,包括 agent 自己建立的提交。
  • 只有在擷取到非空修補之後,才執行偵測到的專案驗證指令(型別檢查/測試/lint)。
  • 預設以驗證優先排序:只有完成、非空且通過驗證的修補才能勝出;通過者之間偏好較低風險與多樣的修補。
  • **不會自動合併。**報告包含 worktree 路徑、分支與提交範圍,供你檢查、合併或 cherry-pick。

實作 arena 需要 git 專案。

排序規則(與研究對齊)

對於程式碼候選:驗證第一,多樣性第二,人氣絕不能單獨決定。
對相似的錯誤修補做天真的多數決是反模式(人氣陷阱)。

斜線指令

指令 目的
/council … 驅動多供應商的參考審查
/arena … 驅動計畫或實作的 N 選最佳

安全與成本

  • 沙盒/自主仍適用於單 agent 工作(沙盒、自主模式)。
  • Council 與計畫 arena 不寫入檔案。
  • 實作 arena 的寫入者隔離在 worktree 中;髒的主要 worktree 會被拒絕,以免未提交的輸入被悄悄省略。
  • 集合扇出會放大供應商外送與成本;使用 modes.budget,並讓 maxMembers/maxContestants 保持很小。預算估計以最壞情況計價:council 每位成員 2 × (debateRounds + 1) 次呼叫(結構描述退回加重試),計畫 arena 每位參賽者 2 次加上一次固定評判呼叫,實作 arena 是記載的每條軌跡 12 次呼叫估計。
  • 僅本機的集合呼叫帳本(全域狀態目錄中的 ensemble-calls.jsonl,2 MB 上限)以 SHA-256 提示雜湊記錄每次生成的結果——絕不是提示主體、絕不是憑證、沒有外送。用 modes.ensembleLedger: false 停用。
  • 多模型一致是證據,不是證明——出貨前請執行測試。