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的 workspacemembers共 101 个,其中crates/下 96 个(codegen83、common12、build1;初稿时是 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 到底是什么 开始。