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 月可查閱的官方公開文件,僅陳述使用者可見行為。原始碼片段經過教學擷取。表格中的空白邊界是刻意保留的未知項。