xAI开源Grok Build,代码里的codex/opencode血统藏不住

7月15日,xAI 把 Grok Build(也就是 grok 命令行工具)的源码放到了 GitHub 上,仓库地址 xai-org/grok-build。README 第一句话说得很直接:“SpaceXAI’s coding agent harness and TUI”——xAI 内部把这套东西挂在 SpaceXAI 名下。 这篇文章不打算复述“xAI 又开源了什么”这种通稿式的内容,而是把仓库拆开看:代码从哪来、架构怎么分层、这次开源发生在什么时间点、以及“开源”这两个字在这里到底是什么意思。 一、代码溯源:codex 和 opencode 的血在这里 仓库根目录的 THIRD-PARTY-NOTICES 文件里有一句话写得很清楚:这个仓库包含 “in-tree source ports”,明确点名了 openai/codex 和 sst/opencode 的工具实现。更具体的说明放在 crates/codegen/xai-grok-tools/THIRD_PARTY_NOTICES.md 里——这是给 codex 和 opencode 移植代码专门写的一份notice,里面附带了完整的许可证文本和 Apache 协议 §4(b) 要求的“变更声明”。 Apache 2.0 的 §4(b) 条款要求:如果你修改了一份 Apache 许可的文件,必须在文件里注明“这份文件被修改过”。换句话说,xAI 不是简单引用了这两个项目的接口或者协议,而是直接拿了源码进来改,改完之后按协议要求留了痕迹。 这一点值得说清楚的是它的性质——这不是抄袭,因为 codex 和 opencode 本身也是开源项目,License 允许这么做;但它说明一件事:xAI 在 agent 的“工具层”(terminal 执行、文件编辑、代码搜索这些具体能力)上,没有从零设计,而是站在两个已经跑通的开源实现上做二次开发。这是效率选择,不是能力缺陷,但也说明 coding agent 这个赛道走到今天,底层工具调用的实现已经开始趋同——大家在复用相近的工具层模式,只是壳不一样。 如果想验证到底改了多少,值得做的事情是把 xai-grok-tools crate 里的具体文件和 codex/opencode 对应源文件拉出来做 diff,而不是只看 NOTICE 文件的自述。我实际 clone 了三个仓库做了一遍: ...