# grok 到底是什么 · 一个开源的终端编码 Agent

> Grok Build 是 xAI 开源的终端编码 Agent（TUI，Rust 写成）。这一章讲清它是什么、能做什么、三种运行形态，以及它在「Claude Code」与「手搓最小 Agent」之间的坐标——为什么值得逐行读它的源码。

- 作者：David（道雾轩）
- 专栏：Grok Build 源码解读（https://daiw.org/manual/grok-build.md）
- 最后更新：2026-07-19
- 原文：https://daiw.org/manual/grok-build/what-is-grok-build
- 转载与引用：请注明出处并附原文链接（https://daiw.org/about/copyright）

# grok 到底是什么 · 一个开源的终端编码 Agent

一句话：**Grok Build 是 xAI 开源的终端编码 Agent**。命令行叫 `grok`，跑起来是一个全屏终端 UI（TUI），能读懂你的代码库、改文件、执行 shell 命令、搜网页、管理长时间运行的任务。整个项目用 **Rust** 写成，源码公开在 [github.com/xai-org/grok-build](https://github.com/xai-org/grok-build)。

## 它能做什么

和你已经熟悉的 [Claude Code](https://daiw.org/manual/claude-code) 是同一类东西——一个「住在终端里、能动手改你项目」的 AI 编程助手。核心能力：

- **理解代码库**：不是把整个仓库塞给模型，而是有一套工作区抽象 + 代码库图谱（后面第 3 部分细讲）。
- **改文件**：内置多种编辑工具，并用 diff 追踪保证不踩掉你手上的改动。
- **跑命令**：在真正的伪终端（PTY）里执行 shell，可选 OS 级沙箱隔离。
- **搜网页、跑长任务、开子任务**：web 搜索、后台任务、subagent 并行。

## 三种运行形态

同一个 agent 运行时，套三张不同的「皮」：

| 形态 | 怎么跑 | 场景 |
| --- | --- | --- |
| **交互式 TUI** | 直接 `grok` | 日常在终端里对话、看它改代码 |
| **Headless** | `grok -p "..."` | 脚本 / CI，管道进管道出 |
| **Agent 模式（ACP）** | 通过 Agent Client Protocol | 嵌进编辑器，由 IDE 驱动 |

这三种形态共享同一套内核，区别只在最外层的输入输出通道——这本身就是一个值得学的架构决策，我们在第 6 部分会看它是怎么做到的。

## 它在哪儿：三个坐标

读这本之前，先把 grok 放到你已知的坐标系里：

- **对比 [Claude Code](https://daiw.org/manual/claude-code)**：Claude Code 闭源，站里那本手册是**基于官方文档**整理的「怎么用」。grok **开源**，所以我们能越过文档，直接读「它怎么实现」。
- **对比 [《从 LLM 到 Coding Agent》](https://daiw.org/manual/llm-to-agent) 的教学实现**：那本从零手搓了一个**最小可运行**的 agent，为的是把概念讲透。grok 是一份**生产级完整实现**——同样的概念，落到真实工程里会长成什么样。
- **对比你自己**：如果你也想写一个 agent，grok 是一份高质量的「参考答案」。

<Callout type="info">
  这也是为什么这本和 [《从 LLM 到 Coding Agent》](https://daiw.org/manual/llm-to-agent) **配对**读最划算：一边是「教学最小实现」，一边是「生产实现」，同一件事两种写法对照，比单看任何一本都清楚。
</Callout>

## 先建立一张「毛胚地图」

后面所有章节，都是在往这张图里填细节。一次对话，数据大致这样流动：

```mermaid
flowchart LR
  U[你在 TUI 里输入] --> A[Agent 运行时]
  A --> P[组装 prompt]
  P --> S[采样器 · 请求模型]
  S --> A
  A --> T[工具调用]
  T --> W[改文件 / 跑命令 / 搜索]
  W --> A
  A --> R[渲染回终端]
```

- 最外层是 **TUI**（第 5 部分）；
- 中枢是 **Agent 运行时**（第 1 部分）——它把「和模型对话」与「调用工具」这两件事转成一个循环；
- 工具落到具体的**能力 crate**（第 2、3 部分）；
- 模型这一侧是**采样器**（第 1 部分）。

下一章先把它装起来跑一遍，让这张图有实感。

---

下一篇：[装上就跑 · 第一次对话发生了什么](https://daiw.org/manual/grok-build/install-and-run)
