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 Codegrok 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 到底是什么」的理解,就立体了。最后一章,聊聊读完之后往哪走。


上一篇:全表复盘 · 下一篇:读完之后

本页目录