Grok Build · 도구 간 정규화

Canonical Input은 안정적인 투영입니다

다양한 harness가 서로 다른 raw 파라미터 이름을 사용할 수 있습니다. Grok Build는 소수의 안정적인 시맨틱을 x.ai/tool 메타데이터에 투영하여 표시, 원격 측정 및 도구 간 분석이 공통 어휘를 갖도록 합니다.

학습 목표 8개의 canonical fields, 7개의 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이 담당합니다.
8개의 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-mainxai-grok-tools/src/tool_taxonomy.rsnormalization.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은 민감하거나 크기가 큰 필드를 생략할 수 있습니다.