Grok Build · 跨工具歸一化

Canonical input 是穩定投影

不同 harness 可以使用不同原始參數名。Grok Build 把少量穩定語義投影到 x.ai/tool 元數據中,讓展示、遙測和跨工具分析擁有共同詞彙。

課程目標記住八個 canonical fields、七個 CanonicalToolMeta 字段與 version = 1,並能解釋 input 為何允許缺字段或整體省略。
核心視覺 · 教學化投影圖
raw_input Afile_path · old_stringnew_string · replace_all raw_input Bpath · offset · limit其他 harness 字段 canonicalprojection x.ai/tool · version 1name · kind · namespace · labelread_onlyinput: { path, offset, limit }僅保留穩定、輕量的交叉字段
教學化結構圖:投影可能丟棄字段,完整原始輸入仍由 raw_input 承載。
八個 canonical fields
path

文件或搜索路徑

offset

歸一化起始位置

limit

讀取或結果上限

command

待執行命令

description

命令描述

cwd

工作目錄詞彙

directory

目錄列表目標

pattern

搜索模式

元數據合約與省略規則

CanonicalToolMeta 的真實字段

versionnamekindnamespacelabelread_onlyinput

version 是數字 1。input 為可選 JSON value,沒有穩定投影時會整體省略。

input 保持輕量

它是 canonical projection,不能當作 raw input 鏡像。grep flags、replace_all 等非共享字段可能被丟棄;編輯前後文本與完整寫入內容等大字段不會進入投影,可從 raw_input 獲取。

公開行為對照:Claude Code 公開文檔中的 Read 工具使用 file_path、offset、limit。Grok Build 的歸一化層將自身各工具輸入映射到共同字段,例如 path。此處只比較公開可見的工具輸入命名,不推斷 Claude Code 內部實現。
真實源碼證據
crates/codegen/xai-grok-tools/src/tool_taxonomy.rs · 第 12 至 30、190 至 200 行
pub mod field {
    pub const PATH: &str = "path";
    pub const OFFSET: &str = "offset";
    pub const LIMIT: &str = "limit";
    pub const COMMAND: &str = "command";
    pub const DESCRIPTION: &str = "description";
    pub const CWD: &str = "cwd";
    pub const DIRECTORY: &str = "directory";
    pub const PATTERN: &str = "pattern";
}
pub const TOOL_META_VERSION: u32 = 1;

pub struct CanonicalToolMeta {
    pub version: u32,
    pub name: String,
    pub kind: ToolKind,
    pub namespace: ToolNamespace,
    pub label: Cow<'static, str>,
    pub read_only: bool,
    pub input: Option<serde_json::Value>,
}
源碼快照説明:依據本地倉庫 grok-build-main 的 xai-grok-tools/src/tool_taxonomy.rs 與 normalization.rs,核對日期 2026-07-17。源碼中不存在 content canonical field,舊頁面中的虛構元數據字段與版本示例均已移除。
課堂練習
04

為一次編輯調用製作投影

原始輸入含 file_path、old_string、new_string、replace_all。寫出 canonical input,再指出哪些字段應留在 raw_input。

Takeaway:canonical 層追求跨 harness 的穩定公共語義。當前字段只有 path/offset/limit/command/description/cwd/directory/pattern,元數據版本為數字 1。input 可以省略敏感或體量大的字段。