# 读完之后 · 继续读源码、动手改、用到你自己的 agent

> 全书收官。这一章不讲新代码，而是把方法论、几条最该记住的教训、以及「往哪走」交给你——怎么自己继续读 grok 的源码、怎么在本地动手改(上游不收外部 PR)、以及把这套工程智慧用到你自己的 agent 上。

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

# 读完之后 · 继续读源码、动手改、用到你自己的 agent

60 章拆下来，grok Build 从一条消息的生命周期，到采样、工具、工作区、扩展、TUI、运行形态、工程底座，基本走通了。最后一章不讲新代码，讲**往哪走**。

## 把方法论带走

比记住任何一个 crate 更值钱的，是这本书反复示范的**读大型 Rust 项目的方法**：

1. **先看边界，再看内部**：crate 边界 → `lib.rs` 导出 → 模块名 → 具体文件。`cargo doc -p <crate>` 是免费的地图。
2. **跟消费者，别跟名字**：[代码库图谱](https://daiw.org/manual/grok-build/codebase-graph-use)那章是最好的例子——名字像「给 AI 的索引」，追踪它的实际消费者才发现是**给编辑器**的。**实现与直觉不符处，正是最有价值的发现**。
3. **认范式**：一旦认出 grok 的 actor 模式、「一套契约多种传输」、`AtomicBool` 快路径、fail-open/fail-closed 的选择，新代码读起来就快得多——因为它们**贯穿全仓库**。
4. **构建期的东西别漏**：[proto 生成](https://daiw.org/manual/grok-build/rust-engineering)那些「凭空出现的类型」提醒你，不是所有代码都在 `.rs` 里。

## 几条最该记住的教训

如果只带走几句：

- **玩具靠自觉，产品靠机制**：权限用瀑布不用 if、plan mode 硬裁工具不靠叮嘱、沙箱下沉到内核。
- **并发即 actor**：把共享状态变成「单线程 + 消息」，是 grok 处理并发的默认答案。
- **不可信输入要处处设防**：模型参数、markdown、命令、网页——校验、脱敏、沙箱、doom-loop，一层都不能少。
- **按威胁模型选 fail-open 还是 fail-closed**:hook 失败放行、鉴权/沙箱失败拦截——不是教条，是逐处权衡。
- **读真实源码 > 读文档**：[headless 文档把 sessions 写成 SQLite，源码里却是 JSONL](https://daiw.org/manual/grok-build/sessions)，[文档说没有成本指标，代码里已经有了 `grok_code.cost.usage`](https://daiw.org/manual/grok-build/telemetry-usage)，图谱不喂模型——**源码不会骗你**。

## 继续读 / 动手改

grok Build 是**开源**的(Apache-2.0)，仓库根的 `SOURCE_REV` 记着对应的 monorepo commit。想深挖：

- 挑一个本书**略讲**的角落自己拆：voice、dashboard 细节，或者写作之后才出现的 `grok clone`(Grove)、`/goal` 与 `xai-workflow`、workspace daemon、会话搜索；
- 用[读源码准备](https://daiw.org/manual/grok-build/reading-the-source)那套 `cargo check -p` / `cargo doc` 上手；
- 想改就在自己的 fork 里改、本地构建验证。注意 [xai-org/grok-build](https://github.com/xai-org/grok-build) **不接受外部 PR 和补丁**：`CONTRIBUTING.md` 写明源码公开只为透明与本地构建，安全问题走 `SECURITY.md`。即便如此，开源实现相对闭源产品的价值还在：**你能读、能改、能自己构建**。

## 用到你自己的 agent

如果你也在写 agent,grok 是一份高质量参考答案。但**别照搬**：

- 先问**规模**：你的 agent 需不需要 OS 沙箱、并行 worktree、三种编辑格式？很多时候[《从 LLM 到 Coding Agent》](https://daiw.org/manual/llm-to-agent)的最小实现就够了。
- 按**痛点**取用：遇到「模型改文件踩掉用户改动」再上 [hunk 追踪](https://daiw.org/manual/grok-build/hunk-tracker)；遇到「上下文老爆」再上[九段式压缩](https://daiw.org/manual/grok-build/compaction)；遇到「工具太多撑爆上下文」再上 [search/use 元工具](https://daiw.org/manual/grok-build/mcp-registry)。
- 把**范式**内化：actor、一套契约多传输、能力门控降级——这些和语言无关，Python/TS 里照样用。

## 收束

这本和 [《从 LLM 到 Coding Agent》](https://daiw.org/manual/llm-to-agent) 是一对：一个讲**第一性原理 + 最小实现**，一个讲**一份真实的生产源码**。再加上你熟悉的 [Claude Code 手册](https://daiw.org/manual/claude-code) 的用户视角——**概念、一种生产实现、另一种产品的用法**，三面拼齐，你对「编码 agent 到底是什么」的理解就完整了。

从 [一条消息的生命周期](https://daiw.org/manual/grok-build/message-lifecycle) 到这里，谢谢一路读完。现在，去读你自己感兴趣的那个角落，或者去写你自己的 agent 吧。

← 回到 [专栏首页](https://daiw.org/manual/grok-build)

---

上一篇：[grok Build vs Claude Code](https://daiw.org/manual/grok-build/grok-vs-claude-code)
