grok Build vs Claude Code · 两个编码 Agent 对照
你在本站另一本手册里熟悉了 Claude Code。这一章把它和 grok Build 摆在一起比:能力谱几乎重合,架构各有取舍,而 grok 有意兼容 Claude 生态——读 grok 的源码,某种意义上也在照见 Claude Code 的内部。
作者 David更新于 第 59 篇(共 60 篇)
grok Build vs Claude Code · 两个编码 Agent 对照
你在本站的 《Claude Code 中文手册》 里已经熟悉了一个闭源编码 agent 的用法。这一章把它和 grok Build 摆一起——这也是这本「源码解读」独特的位置:读 grok 的开源实现,某种意义上照见了 Claude Code 大概怎么工作。
能力谱:几乎重合
两者的能力谱高度重合——这不奇怪,它们在解同一个问题:
| 能力 | Claude Code | grok Build |
|---|---|---|
| Skills / Agents / Hooks / MCP / Plugins | ✅ | ✅(Part 4) |
| 权限模式 / plan mode | ✅ | ✅(plan) |
| Subagents / 后台任务 / loop | ✅ | ✅(后台) |
| 上下文压缩 / 会话 resume/fork | ✅ | ✅(压缩) |
| headless / 自定义模型 | ✅ | ✅(headless) |
grok 多出来的
grok 有几样在 Claude Code 手册里没那么突出的:
- OS 级沙箱(Landlock/Seatbelt/seccomp,沙箱章)——把 agent 关进内核笼子;
- 三种编辑格式(编辑章)——search/replace、concise、hashline 锚点;
- 代码库图谱(图谱章)——但服务的是 grok-web 编辑器,不是模型;
- 并行 worktree(worktree 章)——subagent 真在隔离文件副本里跑;
- ACP 编辑器后端(ACP 章)——当 Zed/Neovim 的大脑。
最有意思的:grok 有意兼容 Claude
这是全书我觉得最耐人寻味的发现:grok 处处兼容 Claude 生态——
- 读
CLAUDE.md、.claude/、.cursor/rules(AGENTS.md 章); ${CLAUDE_PLUGIN_ROOT}、.claude-plugin/plugin.json(插件章);- 一张
claude_alias.rs把 Claude 的工具名(Read/Bash/Edit)映射到 grok(互通章); - hook matcher 认 Claude 的
^Bash$并匹配到 grok 的run_terminal_command(hooks 章); - 连会话和输出都对齐:
/resume能列出并接手 Claude Code(以及 Codex、Cursor)的近期会话(sessions 章),headless 新增的streaming-messages-json按 Messages API 的stream-json线格式输出(headless 章)。
这种兼容不只是「抄作业」,更是降低迁移成本的产品决策:让 Claude Code 用户零成本切过来。而对读者的价值在于:Claude Code 是闭源的,你只能读它的文档;grok 既开源、又刻意对齐 Claude 的约定——所以读 grok 的源码,能反过来印证「Claude Code 大概也是这么实现的」。两本手册对照读,一个给你「怎么用」,一个给你「大概怎么实现」。
架构取舍
- 语言:grok 是 Rust——于是到处 actor、
Arc/AtomicBool、零成本抽象;这也是它敢做 OS 沙箱、PTY、内核级崩溃处理的底气。 - 克制:grok 有意不做的也值得记——没有独立的 computer-use/浏览器工具(web 章);代码库图谱不喂模型。知道一个系统的边界,和知道它的能力同样重要。
和《从 LLM 到 Coding Agent》对照
如果说 llm-to-agent 是「第一性原理」、这本是「grok 的生产答卷」,那 Claude Code 手册就是「另一份产品答卷的用户视角」。三者合看:概念 → 一种生产实现的源码 → 另一种生产实现的用法——你对「编码 agent 到底是什么」的理解,就立体了。最后一章,聊聊读完之后往哪走。