尧图精选

xai-grok-shell 0.2.67 版本解析:JSON Schema 约束输出、空闲检测增强与搜索工具加速

🕒 发布时间:2026/9/20 15:23:16 📁 来源:尧图网络
人工智能大模型AI Agent代码智能体CLI工具调用MCP Clients【免费下载链接】grok-buildSpaceXAIs coding agent harness and TUI. Fullscreen, mouse interactive, extensible.项目地址https://gitcode.com/gh_mirrors/gr/grok-build点击查看免费下载本篇文章围绕 grok-build 仓库中 xai-grok-shell 的 0.2.67 版本变更记录 展开逐一拆解该版本引入的 2 项新特性、2 项缺陷修复与 1 项性能优化并结合仓库源码与测试用例说明其底层实现与实战用法。读完本文你将掌握 headless 模式下如何用--json-schema约束模型输出为合法 JSON、如何让空闲检测忽略后台任务、以及为何find/grep会在检测到bfs/ugrep时透明切换到更快实现。版本概览0.2.67发布日期 2026-06-25是 xai-grok-shell 早期 0.2.x 系列的一次聚焦型迭代全部变更均可归类为三类Features2 项、Bug Fixes2 项、Performance1 项且均非破坏性变更breaking_change: false。对应的结构化变更数据见 0.2.67.json分类变更内容Featuresheadless 模式新增--json-schema标志用传入的 JSON Schema 约束模型输出Features空闲检测idle detection在设置环境变量后可以忽略后台任务默认关闭Bug Fixes预览面板preview panes在被主动查看或轮询时不再休眠Bug Fixes手动/rename在自动生成标题或恢复会话后仍能正确持久化并出现在/session-info中Performancefind与grep在 harness 中存在bfs/ugrep二进制时透明切换速度更快Featuresheadless 模式的--json-schema输出约束变更内容0.2.67 为 headless无界面/批处理模式新增了--json-schema标志。其作用是在一次提示prompt请求中附加一份 JSON Schema让模型输出被约束为符合该 Schema 的结构化 JSON而不是自由文本。这对于自动化脚本、CI 管道、Agent 间调用等「程序必须可靠解析模型输出」的场景非常关键。源码印证outputSchema的校验与传递链路从源码看--json-schema并不是 shell 层临时拼装的字符串而是沿着 ACPAgent Client Protocol会话的meta字段一路传递的。在 acp_agent.rs 中代理从请求元数据读取outputSchema并做了严格的类型校验let json_schema arguments .meta .as_ref() .and_then(|m| m.get(outputSchema)) .cloned(); if json_schema.as_ref().is_some_and(|schema| !schema.is_object()) { return Err( acp::Error::invalid_params() .data(outputSchema must be a JSON object describing a JSON Schema), ); }即outputSchema必须是描述 JSON Schema 的 JSON 对象否则直接返回invalid_params错误错误信息明确提示「must be a JSON object describing a JSON Schema」。校验通过后该 Schema 会随SessionCommand::Prompt一起派发到会话acp_agent.rs最终由采样层用于约束输出。在代理输出端mvp_agent/mod.rs 的注释明确说明了该能力的形态经过 Schema 校验的--json-schema输出会通过_meta字段交付而非混入普通文本流这保证了结构化结果与自然语言消息在传输层上的清晰隔离。对应测试见 mvp_agent/tests.rs测试请求中直接携带了json_schema: {type: object}形式的入参验证了最小可用 Schema 的端到端路径。实战用法# 让模型输出一个 JSON 对象且整体必须是 object 类型 grok -p 列出当前目录下最大的 3 个文件 \ --json-schema {type: object, properties: {files: {type: array}}}要点与限制Schema 必须是一个JSON 对象{type: ...}形式而非数组、字符串或裸布尔值若 Schema 非法调用会以invalid_params失败而不是静默忽略校验后的结果通过_meta通道返回便于脚本直接解析该能力在后续版本持续演进0.2.69 中进一步支持通过grok -p直接传入--json-schema并获得经过校验的 JSON 对象而非自由文本见 0.2.69 变更记录。Features空闲检测可忽略后台任务0.2.67 的第二项新特性针对长会话场景当设置了对应环境变量时默认关闭空闲检测idle detection将不再把正在运行的后台任务/后台子代理计入「忙碌」状态。这一行为与 xai-grok-shell 的「While you were idle, N background subagent(s) completed」会话提示机制直接相关——相关断言可见 between_turn_completion_tests.rs测试中明确校验了「空闲期间有 N 个后台子代理完成」的提示文案说明会话框架会追踪后台任务的完成情况并据此唤醒主会话。开启该环境标志后的效果是即使有后台任务尚未结束只要主会话本身无活动系统仍可判定为空闲例如触发休眠/唤醒抑制逻辑避免后台任务长期占用会话活跃状态。由于该选项默认关闭行为默认保持与旧版一致属于渐进式可选能力。具体环境变量名建议以实际运行版本的帮助输出或源码中的环境变量解析为准。Bug Fixes预览面板与/rename持久化预览面板不再「被查看时休眠」此前预览面板preview panes例如终端命令输出、文件内容的内联预览在处于「正在被查看」或「正在被轮询」状态时可能被会话的休眠hibernate机制误判为空闲资源而回收。0.2.67 修复了该问题只要面板处于活跃查看或轮询状态就不会进入休眠从而避免用户在阅读输出时预览内容被意外关闭。手动/rename持久化修复第二个修复针对会话标题管理手动执行/rename设置的标题在自动标题生成auto title generation或恢复会话resume之后必须仍然生效并能正确显示在/session-info中。仓库中的相关测试对这一行为有直接覆盖session_rename_tests.rs 中的rename_enqueues_manual_title_on_resident_persistence_tx验证重命名会向常驻持久化通道准确入队一条标题更新消息rename_strips_ascii_controls_before_persist_and_enqueue则验证持久化前会剥离标题中的 ASCII 控制字符避免脏数据写入persistence_tests.rs 中的manual_rename_next_flush_does_not_revert_backend_title直接验证了本次修复的核心语义手动重命名后的下一次刷新flush不会用后端/自动生成的标题回退覆盖掉用户手动设置的标题。换言之该修复在持久化层确立了「手动重命名优先于自动标题」的规则保证resume后看到的标题仍是用户自己取的名字。Performance透明切换到bfs与ugrep0.2.67 的性能优化在于当 harness 环境中存在更快的bfsBSD find 的高性能替代与ugrepgrep 的高性能替代二进制时find与grep工具调用会透明地使用它们无需用户改命令、无需改提示词。从实现看这是一个可配置的解析层。在 toolset.rs 中工具集解析逻辑会读取多级配置来源来决定是否启用这两项替代二进制返回(find_bfs, grep_ugrep)二元组支持的环境变量包括GROK_TOOLS_FIND_BFS/GROK_FIND_BFS对应find_bfs与GROK_TOOLS_GREP_UGREP/GROK_GREP_UGREP对应grep_ugrep并通过~/.grok/requirements.toml中的[toolset.bash]表支持托管式配置覆盖例如[toolset.bash] find_bfs true # find → bfs grep_ugrep true # grep → ugrep该解析结果在会话生成路径中被消费见 spawn.rs 中resolve_search_tools_enabled的调用点。因此0.2.67 的「透明加速」本质是默认探测到bfs/ugrep时自动启用同时保留环境变量与 requirements.toml 两级开关供用户显式控制。结语与延伸阅读0.2.67 的 5 项变更体现了 xai-grok-shell 在该阶段的三个优化方向输出结构化--json-schema、会话状态准确性空闲检测、预览休眠、标题持久化与工具执行效率bfs/ugrep。其中--json-schema能力在 0.2.69 中继续增强支持grok -p直接获得校验后的 JSON 对象见 0.2.69.md说明结构化输出是当时持续投入的主线。仓库中每个版本的变更均以Markdown 与 JSON 双格式归档如 0.2.67.md 与 0.2.67.jsonJSON 侧以categoryfeatures/fixes/performance与breaking_change字段结构化标注便于程序化消费完整历史可查看 xai-grok-shell/CHANGELOG.md。如需深入本版本涉及的实现细节推荐继续阅读 mvp_agent/acp_agent.rs输出 Schema 校验与派发、util/config/resolve/toolset.rs搜索工具解析以及对应的 session_rename_tests.rs 与 persistence_tests.rs。赞分享人工智能大模型AI Agent代码智能体CLI工具调用MCP Clients【免费下载链接】grok-buildSpaceXAIs coding agent harness and TUI. Fullscreen, mouse interactive, extensible.项目地址https://gitcode.com/gh_mirrors/gr/grok-build点击查看免费下载相关推荐xai-grok-shell 0.2.58 版本解析终端输出上限、插话透传、命令同步与 Headless 退出保障xai grok shell 0.2.58 版本解析终端输出上限、插话透传、命令同步与 Headless 退出保障 导读 本文围绕 grok build 仓库人工智能大模型AI Agent代码智能体CLI工具调用MCP ClientsOllama 如何用 format 参数加 JSON Schema 约束模型输出结构化 JSONOllama 如何用 format 参数加 JSON Schema 约束模型输出结构化 JSON 让模型稳定返回可直接解析的结构化数据是调用 Ollama A人工智能大模型模型推理服务本地部署后端LLM 网关llama.cpp GBNF 指南用形式文法与 JSON Schema 约束 LLM 输出llama.cpp GBNF 指南用形式文法与 JSON Schema 约束 LLM 输出 本文基于 llama.cpp 仓库中的 grammars/READ人工智能大模型推理引擎本地部署模型量化模型推理服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →