← All posts / Tools

Vercel 開源 fx:以 Zig 打造、僅 6.39 MiB 且冷啟動 10 微秒的編碼代理

Vercel Labs 的 fx 是以 Zig 撰寫的極簡編碼代理框架——6.39 MiB 的二進位檔、10 微秒冷啟動、支援 Wasm、採 Apache-2.0 授權,以 Unix 哲學挑戰日益臃腫的編碼代理生態。

Vercel 開源 fx:以 Zig 打造、僅 6.39 MiB 且冷啟動 10 微秒的編碼代理

2026 年 8 月 18 日,Vercel Labs 將內部工具 fx 以 Apache-2.0 授權正式開源。fx 是一個以 Zig 語言撰寫的編碼代理(coding agent)框架與命令列工具。它的看點不在於又一個擠進早已擁擠的編碼代理市場,而在於刻意為之的設計哲學:徹底的極簡主義。整個代理是一個 6.39 MiB 的二進位檔——僅為主流編碼代理的零頭——冷啟動只要 10 微秒,且在接受使用者輸入前不做任何多餘的運算或 I/O。

這個專案原本是 Vercel 的內部工具,對外發布後不到一天,Hacker News 上的討論就累積了近 300 點與超過 120 則留言,開發者們熱烈辯論在 2026 年「tiny」究竟意味著什麼,以及極簡主義在重型「終端機裡的 IDE」工具當道的時代該往何處去。

fx 到底是什麼

fx 並不是要取代開發者的全功能自主代理。專案自述為「針對研究與可嵌入性最佳化的編碼代理框架與 CLI,可作為更大系統的組件」。這個定位至關重要。Claude Code、Codex CLI 或 Cursor 這類工具的目標是成為開發者與 LLM 之間的主要介面;而 fx 被設計成一個「元件」——你可以把它丟進沙箱、嵌進更大的程式裡,或在一個代理階層(agent hierarchy)中一次啟動數十個實例。

幾個關鍵數字:

  • 6.39 MiB 的二進位檔大小,專為資源受限環境與代理沙箱中的即時安裝而設計
  • 10 微秒冷啟動,提示就緒前零多餘 I/O——在啟動延遲會不斷疊加的程式化呼叫場景中尤其重要
  • 個位數 MiB 的基礎記憶體用量,可在單一機器上密集運行大量實例
  • 由 Zig 工具鏈產生的 Wasm 版本,進一步縮小體積,且網路層可插拔

CLI 介面刻意貼近 Unix shell 而非厚重的 TUI:fx 預設保留捲動歷史、輸出極少、避免多數終端機編碼代理那種複雜的全螢幕重繪。任何曾透過 SSH 連線或在 CI 日誌裡跟全螢幕 TUI 博鬥的人,都能立刻體會這個設計的價值。

設計哲學:小核心,其餘全是外掛

fx 透過 skills、plugins 與 MCP(Model Context Protocol)伺服器擴充,遵循開發者所稱的 Unix 式擴充哲學。系統提示與工具定義刻意保持精簡,以節省 token 成本並改善「首 token 延遲」(time-to-first-token)——當代理以規模化方式被程式化呼叫時,這是個舉足輕重的指標。

它同時是模型與供應商中立的:fx 可搭配本地模型、API 閘道、直連供應商 API 或訂閱制服務。專案首頁的瀏覽器示範直接以 WebAssembly 執行完整的 fx CLI,網路功能交由瀏覽器 fetch 處理——恰巧展示了這個執行環境有多小、多可攜。

有一點社群批評值得注意:早期使用者觀察到 fx 開箱即用的設定目前是經由 Vercel AI Gateway 路由,而社群自製的替代品如 hax 從第一天起就支援多家供應商。模型中立雖是宣稱的設計目標,但預設配置明顯向 Vercel 自家基礎設施傾斜——這種張力,任何看著 Next.js 演進的人都不陌生。

為什麼 6 MiB 的代理重要

發布討論中反覆出現一個顯而易見的質疑:你呼叫的模型跑在雲端資料中心裡,二進位檔大小到底差在哪?一位留言者給出了最有說服力的答案:他們經常同時運行 50 到 100 個代理組成的階層。以 Claude Code 約 250 MiB 的足跡,一百個並行實例不切實際;以 fx 個位數 MiB 的用量,輕而易舉。當運算單位從「一個開發者配一個代理」轉變為「一個協調器孵出數百個子代理」,單一實例的開銷就成了硬限制。

10 微秒冷啟動服務同樣的邏輯。在迴圈中被啟動的代理——做一次 code review、一次測試分流、一次快速查詢——每次迭代都得付出啟動成本。把它壓到近乎為零,改變了細粒度代理拆分的經濟學。

競爭脈絡也值得一看。DeepSeek 最近推出了自家同樣以精簡著稱的 harness,而 OpenCode v2 已轉向外掛架構——內建代理、整合功能、設定載入幾乎全是內部外掛,所有事件投影進 SQLite 資料庫。整個產業似乎正收斂到 Unix 世界數十年前就學到的教訓:具備乾淨擴充邊界的小核心,比單體巨獸更耐得住時間。

選擇 Zig 作為實作語言

選用 Zig 本身就是故事的一部分。Zig 提供 C 級的控制力與現代語法人機介面、極小的執行期、優秀的交叉編譯,以及一流的 WebAssembly 支援——正是可嵌入式代理執行環境所需的全部特質。HN 留言者指出,典型的 Go 二進位檔大 2 到 3 倍,而典型的 Node.js 專案光是程式碼就輕易超過 6 MiB,還不含執行環境。OpenCode 專案的 OpenTUI 同樣以 Zig 撰寫,顯示代理基礎設施工具選擇 Zig 追求體積與速度,正在形成一個小而明確的趨勢。

成熟度與注意事項

fx 目前版本為 0.0.4,明確標示為實驗性,專案警告會頻繁出現破壞性變更。它是一個研究導向的框架,而非產品化的主流編碼代理競爭者。對評估導入的團隊而言,Apache-2.0 授權寬鬆、程式碼開放可稽核,極小的攻擊面對沙箱部署是真正優勢——但任何基於它構建的東西都該預期動盪。

更大的圖像

fx 站在兩股趨勢的交會點。第一,編碼代理執行環境從厚重的 Node.js 應用崩塌為小巧的原生二進位檔——對沙箱更好、對嵌入更好、對 serverless 更好。第二,代理正從互動工具轉變為基礎設施元件,數百個輕量代理實例在更大系統內協同運作。

無論 fx 本身會成為這套基礎設施的長久一角,或只是影響後繼者的概念驗證,它都標示了一個明確方向:下一世代的代理工具將以 MiB 與微秒計量,而非 GB 與秒。Vercel 押上 Labs 品牌支持這個命題——並將成果開源——是一個值得持續關注的訊號。