Grok Build Source Course · 12 / 22 完整对照: 先校准证据,再谈取舍 Grok Build 一侧可以下钻源码,Claude Code 一侧只记录官方公开行为。两列证据分辨率不同,因此空白项保留空白,不用推测补齐。 本篇 24 节 Source vs Public Docs Evidence Level No Internal Guessing 一句话速览 按源码、仓库文档和公开产品行为完成多维比较,保留未知项 01 / OBJECTIVES 课程目标
建立证据等级 区分源码、仓库文档、官方公开文档与本地快照观察。 完成多维对照 从运行时、工具、上下文、安全、恢复与生态比较公开能力。 输出选型条件 把「谁更好」改写为约束、团队能力与交付场景的匹配。
S · Grok 源码 R · Grok README / 指南 P · Claude 官方公开文档 I · 本地快照观察
02 / CORE VISUAL 同一问题,两种证据视角
Grok Build SOURCE LENS
类型与状态机 故障路径 数据落点 测试与注释
Claude Code PUBLIC BEHAVIOR LENS
配置与命令 UI 可见行为 权限与作用域 官方说明 按同一问题对齐 证据不对称时,只比较可观察能力,不推断 Claude 内部实现
03 / MATRIX 完整证据化对照
维度 Grok Build Claude Code 公开行为
实现与分发 Rust Cargo workspace,功能拆成多个 crate;README 给出源码构建入口。 R1 · S1 官方提供终端 CLI、IDE、Desktop 与 Web 使用入口。内部语言与模块边界不在本课结论范围。 P1 状态与并发 SessionActor 持有会话历史和工具上下文,运行在 Tokio LocalSet ;后台任务可独立回传消息。 S2 公开文档描述会话、后台任务、subagent 与 agent teams 的用户行为;不据此推断内部并发模型。 P5 工具合约 ToolKind 枚举进入 capability 过滤,新增 variant 有编译期同步断言;MCP 工具映射为 Other 。 S3 公开权限规则按 Read、Edit、Write、Bash、WebFetch、MCP 等工具名和参数模式控制 allow、ask、deny。 P6 工具发现 内建工具直接注册;MCP 元数据进入快照和 BM25 索引,通过 search_tool / use_tool 延迟发现。 S4 官方文档说明 Tool Search 可按需加载 MCP 工具,支持延迟连接等待与失败信息反馈。 P3 上下文压缩 源码包含 compaction 配置、分段、two-pass、full-replace 与 recap 辅助路径,可测试自动压缩与恢复。 S5 官方行为包括自动压缩、 /compact 与 compact instructions;本课不描述其内部算法。 P4 长期记忆 xai-grok-memory 实现 SQLite 存储、FTS、embedding、MMR 与 Dream 整理流程,并由 session memory state 集成。 S6 公开机制包含分层 CLAUDE.md 指令与 auto memory,作用域和加载规则由官方文档说明。 P4 Hooks 源码枚举 15 个事件; PreToolUse 可阻断。明确 deny 阻断,Hook 崩溃、超时与失败输出走 fail-open。配置使用 JSON。 S7 · R2 官方 Hooks reference 公开多类事件、matcher、if 条件及 command、HTTP、MCP tool、prompt、agent 处理器; PreToolUse 可返回拒绝。 P2 MCP 源码确认客户端角色,支持 stdio 与 Streamable HTTP、OAuth、 server__tool 、动态能力刷新、状态合并与重启。未确认通用 MCP Server 入口。 S8 · R3 官方文档公开远程 HTTP、本地 stdio、WebSocket、OAuth、动态 list_changed 、Tool Search 与连接管理。 P3 权限与沙箱 ToolKind capability 过滤、权限提示与平台沙箱代码共同组成多层控制;Hook 失败策略不承担强制安全保证。 S3 · S7 官方公开 allow、ask、deny 规则、managed settings、sandboxed Bash 与文件系统、网络隔离配置。 P6 Subagent 源码包含 fork、任务、工作树池与 completed subagent worktree snapshot 配置,可将分支任务放入隔离工作树。 S9 官方 subagents 具有独立上下文、工具与权限,可前台或后台运行,也可按配置使用 worktree isolation。 P5 插件生态 Marketplace 支持索引与目录回退,安装 registry 保存来源;运行时按 scope、enabled 与 plugin-root trust 控制组件。 S10 · R4 官方插件与 marketplace 文档公开 skills、agents、hooks、MCP servers、LSP servers 和安装作用域。 P7 恢复与可观测 源码包含会话持久化、MCP 状态通知、50 ms 事件合并、重启退避、telemetry enums 与结构化事件。 S11 官方可见行为包含 session resume、verbose / debug、Hooks 状态、MCP 面板与权限诊断;内部持久化拓扑不作推断。 P1 · P3 源码与治理 仓库快照公开源码;README 说明定期从 monorepo 同步,根 Cargo.toml 由生成流程产出,外部贡献不接收。 R1 · R5 本列依据官方公开产品文档,不将不可见内部实现作为比较事实。 P1
04 / SOURCE 两段 Grok 源码锚点
CONCURRENCY ANCHOR SessionActor 的状态所有权
/// An actor representing an ACP session
/// with its own chat history and tool context.
pub struct SessionActor {
pub(super) agent: RefCell<Agent<ThreadedMvpAgent>>,
...
}
crates/codegen/xai-grok-shell/src/session/acp_session.rs CAPABILITY ANCHOR 新增 ToolKind 强制分流
const _: () = assert!(
ALL_TOOL_KINDS.len() == ToolKind::VARIANT_COUNT,
"ALL_TOOL_KINDS is out of sync"
);
这类断言将「新增工具后补权限决策」变成编译期约束。 crates/codegen/xai-grok-workspace/src/capability.rs
05 / SELECTION 从对照表走向选型
偏向源码可审计 团队愿意阅读 Rust 与多 crate 边界 需要追踪故障、状态和本地数据落点 能接受公开仓库与实际产品可能存在同步边界 偏向公开产品工作流 团队主要按官方能力和配置完成集成 重视终端、IDE、Desktop、Web 的一致工作入口 内部实现不可见不影响采购与治理要求
这两组条件可以同时出现。实际方案也可以按项目、数据等级或团队角色组合使用。
06 / LAB 课堂练习:证据化选型备忘录
40 MIN 提交物 两页选型 Memo
从表中选择六个维度,分别抄录一个 Grok 源码证据和一个 Claude 官方行为证据。 标注证据等级,并将所有「更强、更先进、更安全」改为可验证条件。 定义项目约束:数据等级、可执行权限、团队栈、恢复目标、扩展需求。 给出主方案、备选方案与触发切换的阈值。 列出三项未知信息,说明如何通过 PoC 补齐,禁止用架构猜测填空。
07 / REFERENCES 证据索引
GROK BUILD R1/R5 README.md、CONTRIBUTING.md、根 Cargo 说明 S2 acp_session.rs、summary.rs S3/S4 capability.rs、tool_index.rs S5/S6 compaction 目录、xai-grok-memory S7/S8 xai-grok-hooks、xai-grok-mcp、mcp_dispatcher.rs S9/S10/S11 fork/worktree、plugins、persistence/telemetry CLAUDE PUBLIC DOCS P1 · Overview P2 · Hooks reference P3 · MCP P4 · Memory P5 · Subagents P6 · Permissions P7 · Plugins
Takeaway 本篇 24 节最终要留下的能力,是把实现事实、产品行为、推断和未知项分开。证据等级清楚之后,架构取舍才有可复核的基础。 源码快照说明: Grok 一侧依据本地 grok-build-main 快照;Claude 一侧依据 2026 年 7 月可访问的官方公开文档,仅陈述用户可见行为。源码片段经过教学截取。表格中的空白边界是刻意保留的未知项。