Grok Build 源码解读

逐层拆读 xAI 开源的终端编码 Agent「Grok Build」的 Rust 源码——一边讲怎么用,一边讲怎么实现,与《从 LLM 到 Coding Agent》互为印证。

作者 David更新于

Grok Build 源码解读

Grok Build(命令行叫 grok)是 xAI 开源的终端编码 Agent:一个跑在终端里的全屏 TUI,能读懂你的代码库、改文件、跑 shell、搜网页、管理长任务,可交互使用、可 headless 进 CI、也可通过 ACP 嵌进编辑器。整个东西用 Rust 写成,一个 96 个 crate 的 Cargo workspace,源码 175 万行级(剔除测试约 85 万行,口径见下文「源码基准」)。

这个专栏把它逐层拆开读。

这个专栏怎么读

每一章尽量走两条线:

  • 怎么用 —— grok 仓库里自带 27 篇官方 user-guide(crates/codegen/xai-grok-pager/docs/user-guide/),我们从「一个功能你怎么用」讲起;
  • 怎么实现 —— 再翻到对应 crate 的源码,看它在底层到底怎么做。

侧重结构与数据流:讲清「一件事经过哪些 crate、数据怎么流」,而不是逐行贴大段代码——关键处才引一小段源码点睛。

和《从 LLM 到 Coding Agent》配对

站里已有一本 《从 LLM 到 Coding Agent》:它讲「一个 Coding Agent 在裸 LLM API 之上该做哪些事」,并配了一个从零手搓、可运行的教学最小实现。

这本正好是它的另一面:同样这些事(agent loop、工具、上下文、扩展……),换成一份真实的生产实现来看——教学最小实现 vs 生产实现,两边对照着读,收获最大。两本都放在站点的「Agent 教程」一组。

读者预设:默认你懂一点 Rust(读得下 async、trait、workspace 分层),不熟的语言点我们会在关键处就地补一句,但不系统教 Rust。并读过 《从 LLM 到 Coding Agent》 会更顺,但不是硬前提。

源码基准

  • 仓库:github.com/xai-org/grok-build(从 SpaceXAI monorepo 周期性同步,只有 main 分支、不打 tag;根目录 SOURCE_REV 记录了对应的 monorepo commit)。
  • 对照版本:提交 37949780(2026-09-09,「Synced from monorepo」),其 SOURCE_REV 为 c4ea71cfdbcdb21e32e41bc25a0043d7d4836714。专栏初稿对照的是 2026-07-18 的 7cfcb20d,之后按上面这个提交逐篇复核更新。
  • crate 数:根 Cargo.toml 的 workspace members 共 101 个,其中 crates/ 下 96 个(codegen 83、common 12、build 1;初稿时是 74 个),另有 third_party/ 4 个、prod/mc/ 1 个。本专栏说「96 个 crate」即指 crates/ 下这些。
  • 代码量:统计 crates/ 下全部 .rs 文件的物理行(含注释与空行),共约 175 万行(3,042 个文件);「剔除测试」指去掉 tests.rs、*_tests.rs、tests/ 目录,并按花括号剔除 #[cfg(test)] 项,剩下约 85 万行。
  • 本专栏所有路径都相对仓库根,例如 crates/codegen/xai-grok-agent/src/agent.rs。
  • 二进制产物叫 xai-grok-pager,官方安装包装成 grok。

路线图

  • 第 0 部分 · 导论与全景 —— grok 是什么、装上就跑、Rust workspace 全景、与 llm-to-agent 的对照总表、读源码的准备、一条消息的生命周期。
  • 第 1 部分 · Agent 运行时内核 —— 主循环、采样器、会话状态、system prompt 组装、上下文压缩与记忆、打断与防失控。
  • 第 2 部分 · 工具系统 —— 工具契约与注册、文件编辑与 diff 追踪、Shell/PTY、沙箱权限、LSP、Web/computer use、与其它 agent 互通。
  • 第 3 部分 · 工作区与 Git —— workspace 抽象、文件监听、Git 集成、代码库图谱、并行 worktree。
  • 第 4 部分 · 扩展机制 —— AGENTS.md、Skills、MCP、Hooks、Plugins/marketplace、Subagents、自定义模型。
  • 第 5 部分 · 终端 UI 深潜 —— TUI 架构、渲染管线、markdown 实时渲染、输入与补全、可视化、主题与终端适配。
  • 第 6 部分 · 运行形态与工程 —— slash 命令、sessions、plan mode、headless、ACP、后台任务、认证配置、遥测、Rust 工程。
  • 第 7 部分 · 收尾 —— 拿 llm-to-agent 全表复盘、grok vs Claude Code、读完之后怎么继续。

准备好了,就从 grok 到底是什么 开始。

本页目录