구현 패밀리, 레지스트리, 동적 MCP
xai-grok-tools는 여러 세트의 내장 도구 구현과 런타임 MCP 도구를 동시에 수용합니다. ToolBridge는 registry를 세션 레이어에 연결하고, SearchTool과 UseTool이 발견 및 호출 진입점을 제공합니다.
ToolBridge에 의해 실행되는 방식을 설명하며, 두 MCP 메타 도구의 실제 입력 필드를 정확히 작성할 수 있습니다.
grok_build주요 제품 도구 패밀리로 ReadFile, SearchReplace, Bash, Task 등의 구현을 포함합니다.
grok_build_concise간소화된 도구 패밀리; 디렉터리에 read_file, search_replace, bash가 포함됩니다.
grok_build_hashlinehashline 시맨틱을 가진 read_file, edit, grep 구현입니다.
codexapply_patch, read_file, list_dir, grep_files 등 호환 구현을 포함합니다.
opencoderead, write, edit, bash, glob, grep, skill, todowrite를 포함합니다.
memory / lsp / skills기능별로 분리된 구현 모듈입니다. namespace 열거형에는 런타임 외부 도구를 위한 MCP도 포함됩니다.
SearchTool
ToolIndex에서 BM25를 사용하여 MCP 도구를 검색합니다. 결과는 서버별로 그룹화되어 도구 설명과 input_schema를 반환합니다.
query: String키워드limit: Option<u8>기본값 5UseTool
발견된 도구 이름을 받아 InnerDispatch 또는 managed gateway를 통해 MCP를 호출합니다. 이 고정 진입점은 모델의 도구 목록이 턴 간에 안정적으로 유지되게 합니다.
tool_name: String일반적으로 server__tooltool_input: Value발견된 schema에 따라 구성pub struct ToolBridge {
registry: Arc<FinalizedToolset>,
terminal: Option<Arc<dyn TerminalBackend>>,
}
pub async fn register_mcp_tools<T>(
&self,
mcp_name: String,
tool: T,
input_schema: Option<serde_json::Value>,
) -> Result<(), xai_tool_runtime::ToolError> {
self.registry.register_tool(mcp_name, tool, input_schema)?;
Ok(())
}
pub struct UseToolInput {
pub tool_name: String,
pub tool_input: serde_json::Value,
}
grok-build-main를 기반으로 합니다. 핵심 파일 상호 검증: xai-grok-tools/src/implementations/mod.rs, types/tool.rs, bridge.rs, registry/types.rs, implementations/search_tool, implementations/use_tool. 검증일 2026-07-17.외부 도구 호출 추적하기
모델이 처음 search_tool을 호출하는 것에서 시작하여, 쿼리 필드, 응답에서 읽어야 할 schema, 이후 use_tool에 전달되는 두 필드, 그리고 최종적으로 어떤 브리지 유형이 결과를 세션에 반환하는지 작성하세요.
ToolBridge가 세션에 연결됩니다. 동적 MCP는 SearchTool을 통해 schema를 발견하고, UseTool이 schema에 따라 실행을 분배합니다.