全表复盘 · 教学最小实现 vs grok 生产实现
读完全书,回到起点那张对照表,逐概念填上「grok 到底怎么做的」,把《从 LLM 到 Coding Agent》的每个教学点和 grok 的生产实现并排放。这一章是整本书的索引与提炼。
作者 David更新于 第 58 篇(共 60 篇)
全表复盘 · 教学最小实现 vs grok 生产实现
到这里,grok 的主干我们拆得差不多了(按根 Cargo.toml 的 members 里 crates/ 下的条目计,现有 96 个 crate,写作时是 74 个)。这一章回到 Part 0 那张对照表,逐概念填上「grok 到底怎么做」,把教学最小实现和生产实现并排放——这是整本书的提炼。
逐概念对照
| 概念 | 《从 LLM 到 Coding Agent》 | grok 的生产实现(增量) |
|---|---|---|
| 主循环 | 一个 while 问模型 | shell SessionActor;裹自动压缩/TodoGate/打断/鉴权重试(主循环) |
| 调模型 | 一次 await | 三层采样器 actor + 三种 API 流统一 + doom-loop(采样器) |
| 流式 | for await chunk | SSE 韧性 + 错误保真跨层 + 两套重试预算(流式事件) |
| 会话历史 | 一个数组 | actor + 写时修复 + 惰性剪枝 + 双文件持久化(chat-state) |
| 上下文压缩 | 摘要一下 | 九段式全量替换 + 输入梯子防死锁 + 两遍预压(压缩) |
| 工具 | 一个函数 + 手写 schema | 双 trait + schema 自动生成 + 流式 + 一套契约跨进程(工具契约) |
| 编辑文件 | write(path, content) | 三种编辑格式 + hunk 行级防覆盖(编辑、hunk) |
| 跑命令 | exec | 流式 + PTY + 进程树 kill + OS 沙箱(shell、沙箱) |
| 权限 | 一个 y/n | 分层判定瀑布 + 沙箱自动放行(workspace) |
| 打断 | 一个取消信号 | 协作打断 + 硬取消 + doom-loop 三套(打断) |
| MCP / hooks / subagent | 加进数组 / 回调 / 开窗口 | 三传输 + 单飞握手 / 阻塞判定 + SSRF / 能力硬裁 + worktree 隔离(Part 4) |
| 换模型 | 改个端点 | 分层 catalog + 四级凭据 + URL-agnostic 采样器(自定义模型) |
一句话的规律
看完这张表,规律很清楚:教学最小实现回答「为什么要这样、最简怎么做」,生产实现回答「真做成产品会长什么样」。而「长成产品」这件事,反复撞上同一批现实:
- 并发:于是到处是 actor(采样器、chat-state、hunk-tracker、权限、调度器……);
- 不可信输入:模型会写错参数、markdown 会夹带转义、命令会跑飞——于是校验、脱敏、沙箱、doom-loop;
- 烂网络/受限环境:于是重试分类、连接池自愈、gix 线程预算、fail-closed;
- 多形态/多后端:于是「一套契约、多种传输」(工具协议、ACP、采样器);
- 要长期跑:于是熔断、崩溃处理、原子自更新。
grok 独有的那半
对照表是「两本都讲」的交集。grok 作为成品还有一大块教学实现不碰的:终端 UI 深潜(xai-grok-pager 与 -render 的 src/*.rs 合计 50 万行级,剔除 #[cfg(test)] 块和测试文件后约 26 万行)、代码库图谱(而且不喂模型)、并行 worktree、与别家 agent 互通、Rust 工程底座。这些正是「一个 agent 从能跑到有人每天用」之间的距离。
怎么用这本书
- 想深挖某个概念:查上表,跳到 grok 对应章,再点回 llm-to-agent 对照「最小版」。
- 想写自己的 agent:grok 是一份高质量参考答案,但别照搬——先想清你的规模需不需要这么重。
下一章把 grok 和你熟悉的 Claude Code 摆一起比。
上一篇:Rust 工程底座 · 下一篇:grok Build vs Claude Code