本頁譯自英文文件。指令、識別名稱與範例保持原樣。執行環境 7.24.5 · SDK 2.6.9。 英文原文
AX Code 與 OpenCode 用戶端再測:2026 年 9 月 19 日
狀態:現行
範圍:已量測的診斷快照
上次審閱:2026-09-19
負責人:ax-code runtime
這次再測使用 AX Code 原始碼 62895cf40a39e0ebd4afec0afa21044e9871aa0b,時間在本機前綴修正(42908b46a)與 MTPLX/oMLX 供應商新增之後。六種用戶端/後端組合都在 Apple M3 Max、128 GiB 上使用同一個 已啟用 MTP 的 Qwen3.8 27B AXQ 6-bit 產物。較早的量測仍是歷史證據;它們的模型套件、提示、token 上限與快取條件不同。這不是前綴修正加速幅度的受控前後估計。
交付的輸出速度
每一格是 第一次工作/重複工作,單位為 tokens/s。這些是單次觀察,不是中位數。重複工作會對同一個後端處理程序啟動新的 CLI 工作階段;不假設它命中快取。載入與等待第一個輸出的時間不計入這個速率。
| 用戶端 | AX Engine | MTPLX | oMLX |
|---|---|---|---|
| AX Code | 11.73 / 13.60 | 18.73 / 19.69 | 17.48 / 16.60 |
| OpenCode | 22.49 / 18.98 | 27.91 / 26.35 | 20.33 / 20.64 |
估計方式是 (completion tokens - 1) / (last output payload time - first output payload time)。推測解碼可以在一個承載中送出數個 token,因此這是用戶端交付估計,不是後端的原生解碼計數器。它也不量測完整請求的吞吐量。
請求計時、工作負載與接受
NR 表示伺服器沒有回報快取 token 用量;它並不斷言為零。第一個承載的時間從本機錄製代理收到模型請求時起算。CLI 牆鐘時間也包含用戶端啟動與完成。工作要求一個獨立的通用 TypeScript LRU 快取,帶有 get、set、delete 與 clear,沒有工具執行或檔案編輯。
| 後端 | 用戶端 | 工作 | 輸入 token | 輸出 token | 快取 token | 第一個承載(秒) | CLI 牆鐘(秒) | 程式碼檢查 |
|---|---|---|---|---|---|---|---|---|
| AX Engine | AX Code | 第一次 | 29,896 | 268 | NR | 197.78 | 231.58 | 通過 |
| AX Engine | AX Code | 重複 | 29,896 | 268 | 29696 | 7.22 | 33.34 | 通過 |
| AX Engine | OpenCode | 第一次 | 17,316 | 216 | NR | 100.86 | 112.83 | 通過 |
| AX Engine | OpenCode | 重複 | 17,316 | 228 | NR | 116.03 | 129.90 | 通過 |
| MTPLX | AX Code | 第一次 | 36,708 | 285 | 0 | 246.67 | 269.43 | 通過 |
| MTPLX | AX Code | 重複 | 36,708 | 285 | 36708 | 0.04 | 20.48 | 通過 |
| MTPLX | OpenCode | 第一次 | 18,729 | 276 | 0 | 108.67 | 121.00 | 通過 |
| MTPLX | OpenCode | 重複 | 18,729 | 276 | 18729 | 0.08 | 12.77 | 通過 |
| oMLX | AX Code | 第一次 | 33,124 | 275 | 0 | 212.25 | 235.62 | 通過 |
| oMLX | AX Code | 重複 | 33,124 | 232 | 32768 | 4.41 | 23.34 | 通過 |
| oMLX | OpenCode | 第一次 | 17,316 | 213 | 0 | 118.03 | 130.88 | 通過 |
| oMLX | OpenCode | 重複 | 17,316 | 261 | 16384 | 7.73 | 22.91 | 通過 |
程式碼接受檢查涵蓋缺少的鍵、值查詢、LRU 淘汰、保留的項目、更新新近程度、刪除既有與不存在的鍵、清除、物件鍵身分,以及假值。產生的檔案也接受嚴格的 TypeScript 檢查。這些有界限的檢查不能建立廣泛的程式品質。所有量測列都保留其產生的輸出與驗證結果;失敗不會被悄悄換成更快的重試。
MTP 與執行環境條件
- AX Engine 7.4.0:
--mlx-mtp-policy required,受管理的本機執行環境旗標,n-gram 加速與 n-gram 堆疊停用。即時處理程序指標顯示ax_engine_mlx_mtp_model_policy_active=1,起草與接受的 token 計數器非零。AX Code 快照在暖機之後;OpenCode 快照在第一次工作之後。兩者都包含暖機,不是各工作的接受總計。各工作的 AX Code 起草計數沒有保留。 - MTPLX 2.11.3/MLX 0.32.2:明確的
--generation-mode mtp --depth 3;即時健康狀態回報generation_mode: mtp與runtime_mode: Sustained MTP。代理程式改寫與 SSD 工作階段快取關閉;原生的記憶體內工作階段庫保持啟用。原生啟動/核心暖機予以保留,並排除在計時之外。無關的載入暖機已完成;准入時的背景暖機狀態保留在資料中,而不假設已完成。 - oMLX 0.6.4/MLX 0.32.0:Lightning MTP 啟用,深度 3,僅文字的模型載入,並行度為一。每次生成的日誌記錄暖機與兩次工作的起草接受與各深度執行。上游側車匯入器重新命名 15 個張量;它們的 dtype、形狀與承載位元組仍與原始 AXQuant 側車相同。骨幹權重未改變。
- 產物:
AutomatosX/AX-Qwen3.8-27B-MLX-AXQ-6bit-MTP,修訂4d36d652c21590f6813495351c3baf5fca5b3831。產物中繼資料宣告 MTP 深度 1;這裡的循環深度 3 遵循所選的執行環境原則/明確實驗,並不擴張產物認證。這次再測不使用 Optimized-Speed 模型套件。 - OpenCode 版本為 1.18.31。所有後端與用戶端都串列執行。每一對用戶端/後端都啟動新的處理程序與隔離的工作快取,接著是上限 64 個輸出 token 的無關模型載入暖機。模型載入與該暖機不計入表格;第一次工作仍要付出冷預填。風扇控制維持預設,骨幹檔案放在 SMB 儲存上。
哪些已對齊,哪些仍然不同
兩個用戶端都收到同一份凍結的完整專案指示、使用者工作,以及四個允許的工具(glob、grep、read、skill)。原始碼 AX Code CLI 使用實際的 ax-engine、mtplx 與 omlx 供應商 ID;AX Engine 使用其已驗證的迴路附加契約,後端另外啟動並帶有受管理旗標。這次不計時受管理的下載/啟動 UI。OpenCode 使用其 OpenAI 相容的供應商路徑。專案設定停用,每個用戶端都有隔離的設定/狀態。原生用戶端提示、工具結構描述與工作階段標頭保持原樣;因此呈現的 token 數與快取行為不同。
本機錄製代理把 temperature 0.55、top-p 1、top-k/min-p 0、repetition penalty 1、presence/frequency penalties 0、seed 0、thinking 關閉,以及 1,024 個 token 的輸出上限對齊。它為此無工具工作強制 tool_choice: none。兩個用戶端都設定為 65,536 個 token 的情境。每一列都檢查完整的指示快照、四個工具名稱、共同取樣、一個請求、成功的 CLI 結束、自然停止,以及沒有工具執行。
較長的 AX Code 提示可能增加預填,以及生成期間的注意力工作。不同的回應長度、內容、執行環境範本、運算核心與快取原則,使人不能把這些表格當成等 token 的用戶端負擔基準。MTP 在作用中並不保證完整程式情境有 30–40 tokens/s。若要隔離用戶端負擔或前綴修正的效果,請另外重播相同的序列化請求/token ID,並控制輸出與快取條件。
本報告沒有改變雲端、私有 GPU、CLI 供應商或 AX Trust 的行為。連線說明請見本機執行環境設定指南,確切計時、計數、雜湊、驗證結果與 MTP 證據請見已淨化的量測資料。私人專案指示、模型回應、本機路徑與工作階段標頭保留在本機,並未發布。因此,完整的私人情境工作負載不能只從公開報告獨立重現。