# 全表复盘 · 教学最小实现 vs grok 生产实现

> 读完全书，回到起点那张对照表，逐概念填上「grok 到底怎么做的」，把《从 LLM 到 Coding Agent》的每个教学点和 grok 的生产实现并排放。这一章是整本书的索引与提炼。

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

# 全表复盘 · 教学最小实现 vs grok 生产实现

到这里，grok 的主干我们拆得差不多了(按根 `Cargo.toml` 的 `members` 里 `crates/` 下的条目计，现有 96 个 crate，写作时是 74 个)。这一章回到 [Part 0 那张对照表](https://daiw.org/manual/grok-build/pairing-map)，逐概念填上「grok 到底怎么做」，把教学最小实现和生产实现并排放——这是整本书的提炼。

## 逐概念对照

| 概念 | 《从 LLM 到 Coding Agent》 | grok 的生产实现(增量) |
| --- | --- | --- |
| **主循环** | 一个 `while` 问模型 | shell `SessionActor`；裹自动压缩/TodoGate/打断/鉴权重试([主循环](https://daiw.org/manual/grok-build/agent-loop)) |
| **调模型** | 一次 `await` | 三层采样器 actor + 三种 API 流统一 + doom-loop([采样器](https://daiw.org/manual/grok-build/sampler-actor)) |
| **流式** | `for await chunk` | SSE 韧性 + 错误保真跨层 + 两套重试预算([流式事件](https://daiw.org/manual/grok-build/streaming-events)) |
| **会话历史** | 一个数组 | actor + 写时修复 + 惰性剪枝 + 双文件持久化([chat-state](https://daiw.org/manual/grok-build/chat-state)) |
| **上下文压缩** | 摘要一下 | 九段式全量替换 + 输入梯子防死锁 + 两遍预压([压缩](https://daiw.org/manual/grok-build/compaction)) |
| **工具** | 一个函数 + 手写 schema | 双 trait + schema 自动生成 + 流式 + 一套契约跨进程([工具契约](https://daiw.org/manual/grok-build/tool-contract)) |
| **编辑文件** | `write(path, content)` | 三种编辑格式 + hunk 行级防覆盖([编辑](https://daiw.org/manual/grok-build/edit-formats)、[hunk](https://daiw.org/manual/grok-build/hunk-tracker)) |
| **跑命令** | `exec` | 流式 + PTY + 进程树 kill + OS 沙箱([shell](https://daiw.org/manual/grok-build/shell-and-pty)、[沙箱](https://daiw.org/manual/grok-build/sandbox-permissions)) |
| **权限** | 一个 y/n | 分层判定瀑布 + 沙箱自动放行([workspace](https://daiw.org/manual/grok-build/workspace-abstraction)) |
| **打断** | 一个取消信号 | 协作打断 + 硬取消 + doom-loop 三套([打断](https://daiw.org/manual/grok-build/interjection-doom-loop)) |
| **MCP / hooks / subagent** | 加进数组 / 回调 / 开窗口 | 三传输 + 单飞握手 / 阻塞判定 + SSRF / 能力硬裁 + worktree 隔离([Part 4](https://daiw.org/manual/grok-build/mcp-client)) |
| **换模型** | 改个端点 | 分层 catalog + 四级凭据 + URL-agnostic 采样器([自定义模型](https://daiw.org/manual/grok-build/custom-models)) |

## 一句话的规律

看完这张表，规律很清楚：**教学最小实现回答「为什么要这样、最简怎么做」，生产实现回答「真做成产品会长什么样」**。而「长成产品」这件事，反复撞上同一批现实：

- **并发**：于是到处是 actor(采样器、chat-state、hunk-tracker、权限、调度器……);
- **不可信输入**：模型会写错参数、markdown 会夹带转义、命令会跑飞——于是校验、脱敏、沙箱、doom-loop;
- **烂网络/受限环境**：于是重试分类、连接池自愈、gix 线程预算、fail-closed;
- **多形态/多后端**：于是「一套契约、多种传输」(工具协议、ACP、采样器)；
- **要长期跑**：于是熔断、崩溃处理、原子自更新。

## grok 独有的那半

对照表是「两本都讲」的交集。grok 作为**成品**还有一大块教学实现不碰的：[终端 UI 深潜](https://daiw.org/manual/grok-build/tui-architecture)(`xai-grok-pager` 与 `-render` 的 `src/*.rs` 合计 50 万行级，剔除 `#[cfg(test)]` 块和测试文件后约 26 万行)、[代码库图谱](https://daiw.org/manual/grok-build/codebase-graph-build)(而且[不喂模型](https://daiw.org/manual/grok-build/codebase-graph-use))、[并行 worktree](https://daiw.org/manual/grok-build/fast-worktree)、[与别家 agent 互通](https://daiw.org/manual/grok-build/agent-interop)、[Rust 工程底座](https://daiw.org/manual/grok-build/rust-engineering)。这些正是「一个 agent 从能跑到有人每天用」之间的距离。

## 怎么用这本书

- 想深挖某个概念：查上表，跳到 grok 对应章，再点回 [llm-to-agent](https://daiw.org/manual/llm-to-agent) 对照「最小版」。
- 想写自己的 agent:grok 是一份高质量参考答案，但**别照搬**——先想清你的规模需不需要这么重。

下一章把 grok 和你熟悉的 Claude Code 摆一起比。

---

上一篇：[Rust 工程底座](https://daiw.org/manual/grok-build/rust-engineering) · 下一篇：[grok Build vs Claude Code](https://daiw.org/manual/grok-build/grok-vs-claude-code)
