Grok Build Source Course · 12 / 22

完整對照:先校準證據,再談取捨

Grok Build 一側可以下鑽源碼,Claude Code 一側只記錄官方公開行為。兩列證據分辨率不同,因此空白項保留空白,不用推測補齊。

本篇 24 節Source vs Public DocsEvidence LevelNo Internal Guessing
01 / OBJECTIVES

課程目標

建立證據等級

區分源碼、倉庫文檔、官方公開文檔與本地快照觀察。

完成多維對照

從運行時、工具、上下文、安全、恢復與生態比較公開能力。

輸出選型條件

把「誰更好」改寫為約束、團隊能力與交付場景的匹配。

S · Grok 源碼R · Grok README / 指南P · Claude 官方公開文檔I · 本地快照觀察
02 / CORE VISUAL

同一問題,兩種證據視角

03 / MATRIX

完整證據化對照

維度Grok BuildClaude 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

  1. 從表中選擇六個維度,分別抄錄一個 Grok 源碼證據和一個 Claude 官方行為證據。
  2. 標註證據等級,並將所有「更強、更先進、更安全」改為可驗證條件。
  3. 定義項目約束:數據等級、可執行權限、團隊棧、恢復目標、擴展需求。
  4. 給出主方案、備選方案與觸發切換的閾值。
  5. 列出三項未知資訊,説明如何通過 PoC 補齊,禁止用架構猜測填空。
07 / REFERENCES

證據索引

GROK BUILD
  1. R1/R5 README.md、CONTRIBUTING.md、根 Cargo 説明
  2. S2 acp_session.rs、summary.rs
  3. S3/S4 capability.rs、tool_index.rs
  4. S5/S6 compaction 目錄、xai-grok-memory
  5. S7/S8 xai-grok-hooks、xai-grok-mcp、mcp_dispatcher.rs
  6. S9/S10/S11 fork/worktree、plugins、persistence/telemetry
Takeaway

本篇 24 節最終要留下的能力,是把實現事實、產品行為、推斷和未知項分開。證據等級清楚之後,架構取捨才有可複核的基礎。

源碼快照説明:Grok 一側依據本地 grok-build-main 快照;Claude 一側依據 2026 年 7 月可查閲的官方公開文檔,僅陳述用戶可見行為。源碼片段經過教學截取。表格中的空白邊界是刻意保留的未知項。