xAI 開源 Grok Build:Rust 編碼 Agent 的 Harness、TUI 與工具層全公開

前言

2026 年以來,終端編碼 Agent 的競爭焦點,正從「誰家模型更強」轉向「Harness 是否透明、可審計、可自託管」。OpenAI 的 Codex CLI、anomalyco 的 OpenCode 先後以 Apache 2.0 / MIT 協議公開了 Agent 運行時;7 月 15 日,SpaceXAI(原 xAI)跟進,將 Grok Build——即 grok CLI 背後的編碼 Agent 與全屏 TUI——以 Apache 2.0 協議發佈至 GitHub 倉庫 xai-org/grok-build

官方公告見 Grok Build is Now Open Source。截至 2026 年 7 月底,該倉庫 GitHub Star 已超過 2.3 萬,成爲繼 Codex CLI、OpenCode 之後又一款重量級開源編碼 Agent Harness。

本文基於官方博客、GitHub README 與 docs.x.ai/build 文檔,梳理 Grok Build 開源了什麼、代碼如何組織、以及如何本地編譯與接入自定義推理。

開源了什麼

Grok Build 是 SpaceXAI 的終端編碼 Agent。它在項目目錄中理解代碼庫、編輯文件、執行 Shell 命令、檢索網頁,並管理長時任務。使用形態有三種:

  1. 交互式 TUI:全屏、支持鼠標的終端界面;
  2. Headless 模式:腳本、CI/CD 中通過 -p 非交互執行;
  3. ACP 集成:通過 Agent Client Protocol,嵌入 IDE 或自定義應用。

本次開源的是 Harness 與 TUI 的 Rust 源碼,並非 Grok 4.5 模型權重。官方明確,倉庫涵蓋以下模塊:

模塊 說明
Agent 循環 上下文組裝、模型響應解析、工具調用分發
工具層 讀/寫/搜索代碼、運行終端命令等
終端 TUI 渲染、輸入、計劃審查、行內 diff 查看器
擴展系統 Skills、Plugins、Hooks、MCP Servers、Subagents

倉庫從 SpaceXAI 內部 monorepo 定期同步,根目錄的 SOURCE_REV 文件記錄對應 monorepo commit SHA。根 Cargo.toml 爲生成文件,日常開發應修改各 crate 下的 Cargo.toml

許可證:一等代碼爲 Apache License 2.0;third_party/ 及工具 crate 中引用的 Codex、OpenCode 等第三方實現保留原許可證,詳見 THIRD-PARTY-NOTICES

貢獻政策:倉庫爲只讀鏡像,不接受外部 PR(見 CONTRIBUTING.md)。你可以 fork、修改、商用,但無法向上遊合併。

代碼架構一覽

README 給出了清晰的 crate 分層,便於按需閱讀源碼:

路徑 內容
crates/codegen/xai-grok-pager-bin 組合根,構建 xai-grok-pager 二進制
crates/codegen/xai-grok-pager TUI:滾動區、提示符、模態框、渲染
crates/codegen/xai-grok-shell Agent 運行時,含 leader/stdio/headless 入口
crates/codegen/xai-grok-tools 工具實現:終端、文件編輯、搜索等
crates/codegen/xai-grok-workspace 宿主文件系統、VCS、執行、檢查點
crates/codegen/... 配置、MCP、Markdown、沙箱等其餘 CLI crate
third_party/ vendored 上游(如 Mermaid 圖表棧)

若你想審計「Agent 如何決定執行哪條命令」,優先閱讀 xai-grok-shellxai-grok-tools;若關注交互體驗,則看 xai-grok-pager

Agent 循環與工具層

Grok Build 的 Agent 循環遵循常見的 ReAct 模式:模型輸出結構化 tool call → Harness 在沙箱/工作區內執行 → 結果回註上下文 → 繼續推理。

工具 crate(xai-grok-tools)實現了編碼 Agent 的核心能力:文件讀寫與 diff、代碼庫搜索、終端命令執行、網頁檢索等。官方在 THIRD_PARTY_NOTICES.md 中註明,部分工具實現參考或移植自 openai/codexsst/opencode,這與當前開源編碼 Agent 生態互相借鑑的趨勢一致。

工作區 crate(xai-grok-workspace)負責與真實文件系統、版本控制、執行檢查點交互,是理解「Agent 改動如何落盤、如何回滾」的關鍵入口。

全屏 TUI 與 Headless

TUI crate 提供 scrollback、slash 命令、計劃審查與行內 diff 查看器,支持鼠標交互。用戶指南位於倉庫內 crates/codegen/xai-grok-pager/docs/user-guide/,涵蓋快捷鍵、主題、配置等。

Headless 用法適合自動化場景:

cd your-project
grok -p "Explain this codebase"
grok -p "Explain the architecture" --output-format streaming-json

首次啓動 TUI 時會打開瀏覽器完成認證;無圖形環境可設置 API Key:

export XAI_API_KEY="xai-..."
grok

一鍵安裝預編譯二進制(macOS / Linux / Windows):

curl -fsSL https://x.ai/cli/install.sh | bash   # macOS / Linux
irm https://x.ai/cli/install.ps1 | iex          # Windows PowerShell
grok --version

擴展系統:Skills、Plugins、Hooks 與 MCP

Grok Build 的擴展能力與 Claude Code、Cursor 等產品的 Skills / MCP 思路類似,但源碼現已全部可讀。

  • Skills / Plugins / Marketplaces:按目錄或 marketplace 配置加載,擴展 Agent 行爲;
  • Hooks:可在 config.toml 中定義,在特定生命週期介入;
  • MCP Servers:通過 Model Context Protocol 掛載外部工具與數據源;
  • Subagents:支持子 Agent 協作。

調試擴展加載情況,可使用:

grok inspect

該命令會列出當前目錄發現的配置來源、instructions、skills、plugins、hooks 與 MCP servers。

Agent Client Protocol(ACP)集成

若目標是將 Grok Build 嵌入 IDE 或自研應用,而非在終端裏手動對話,應使用 Agent Client Protocol。Grok 以 JSON-RPC over stdio 實現 ACP:

grok agent stdio

典型握手流程(詳見 Headless & Scripting 文檔):

  1. 發送 initialize,協商協議版本與客戶端能力;
  2. 根據返回的 authMethods 選擇認證方式(如 cached_tokenxai.api_key),發送 authenticate
  3. 調用 session/new 創建會話,再通過 session/prompt 下發任務;
  4. 助手文本與工具生命週期事件以 session/update 通知流式返回。

官方文檔列出的兼容客戶端包括 Zed、Neovim(CodeCompanion、avante.nvim)等。社區已有基於 ACP 的 Vercel AI SDK Provider(ben-vargas/ai-sdk-provider-grok-build),Multica 等項目也將 grok agent stdio 作爲一等運行時接入。

grok -p --output-format streaming-json 相比,ACP 能暴露完整的 tool call 生命週期與 MCP 配置,更適合 IDE 級集成。

本地編譯與自定義模型

開源後,Grok Build 強調 local-first:自行編譯 Harness,將 config.toml 中的 base_url 指向自有推理端點,即可在不依賴 xAI 雲端 API 的情況下運行 Agent 框架(模型仍須自行提供)。

從源碼構建

依賴:

  • Rust:版本由 rust-toolchain.toml 鎖定,rustup 首次構建時自動安裝;
  • DotSlash:Hermetic 工具鏈(如 bin/protoc)需要,cargo install dotslash 並確保在 PATH 中;
  • protoc:Proto 代碼生成所需。
git clone https://github.com/xai-org/grok-build.git
cd grok-build
cargo run -p xai-grok-pager-bin              # 構建並啓動 TUI
cargo build -p xai-grok-pager-bin --release  #  release 二進制
cargo check -p xai-grok-pager-bin            # 快速校驗

產物名爲 xai-grok-pager;官方安裝包將其 symlink 爲 grok

開發時建議針對單個 crate 操作,避免全 workspace 編譯:

cargo check -p xai-grok-config
cargo test -p xai-grok-config
cargo clippy -p xai-grok-shell

自定義模型配置

用戶級配置文件路徑:~/.grok/config.toml(Windows 爲 %USERPROFILE%\.grok\config.toml)。

[model.my-model]
model = "model-id"
base_url = "https://api.example.com/v1"
name = "Display Name"
env_key = "API_KEY"

[models]
default = "my-model"

更新配置後,Headless 指定模型:

grok -p "Hello" -m my-model

TUI 內可用 /model <name> 切換。若仍使用 xAI 官方模型,底層爲 grok-4.5,亦可通過 xAI API 直接調用:

curl https://api.x.ai/v1/responses \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.5",
    "input": "Fix this function and explain the bug: function median(a){a.sort();return a[a.length/2]}"
  }'

與 Codex CLI、OpenCode 的橫向對比

項目 協議 可 Fork 模型選擇 外部 PR
Grok Build Apache 2.0 允許 任意(config.toml 不接受
Codex CLI Apache 2.0 允許 OpenAI 模型 開放
OpenCode MIT 允許 75+ Provider 社區維護
Claude Code 專有 不可 Anthropic 模型

Grok Build 的差異點在於:Harness 完全開源且模型無關,但倉庫爲只讀同步,社區無法直接向官方主線貢獻;工具層又透明引用了 Codex / OpenCode 的實現,適合作爲「研究頂級產品 Agent 設計」的參考標本,而非期待共建的上游項目。

開發者可以怎麼用

結合官方文檔與倉庫結構,幾種典型路徑如下:

1. 審計後再部署

在受監管倉庫中啓用 Agent 前,先閱讀 xai-grok-tools 與沙箱相關 crate,確認命令執行邊界與權限模型符合內控要求。

2. Fork 內部 Harness

Apache 2.0 允許修改與再分發。可在企業內 fork 後定製工具白名單、接入內部 MCP、替換默認模型端點;無需等待上游合併。

3. 離線 / air-gapped 環境

本地編譯二進制,將 base_url 指向內網推理服務,跳過 api.x.ai,僅使用開源 Harness 編排自有模型。

4. CI 流水線

Headless 模式配合 streaming-json 輸出,可將代碼審查、架構說明等任務嵌入 GitHub Actions 等流水線。

5. IDE / 平臺集成

通過 grok agent stdio 走 ACP,在 Zed、Neovim 或自研客戶端中獲得 tool call 流式反饋,比純文本 Headless 輸出更適合交互式編輯器場景。

小結

xAI 此次開源 Grok Build,實質上是將 編碼 Agent 的「操作系統層」——循環調度、工具執行、TUI、擴展加載——完整公開。模型 grok-4.5 仍通過 API 或訂閱使用,但 Harness 本身已可在本地編譯、對接任意 OpenAI 兼容端點,並通過 ACP / MCP 接入現有開發者工具鏈。

對於關注 Agent 工程化而非單一模型的開發者,這份 Rust 代碼庫的價值在於:你可以直接閱讀 context 如何組裝、tool call 如何 dispatch、MCP 如何掛載——這些細節在閉源 CLI 裏通常只能猜測。若你已在用 grok 命令行,不妨對照 xai-org/grok-build 源碼,理解每一次文件編輯與 Shell 執行背後的實現路徑。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜