- 人工智能
- AI 应用
- AI Agent
- 代码智能体
- 开发工具
- CLI
- MCP Clients
【免费下载链接】grok-build
SpaceXAI's coding agent harness and TUI. Fullscreen, mouse interactive, extensible.
导读:本文基于 grok-build 开源仓库的 0.2.61 版本变更记录(发布于 2026-06-22),系统梳理该版本在配置体系、终端交互、剪贴板与 SSH 场景下的全部功能增强与缺陷修复。读完本文,你将掌握如何在
config.toml中通过[features]与[goal]两个表完整配置 Goal 模式、理解/usage额度面板与 Wayland 剪贴板链路的变化,并能快速判断升级 0.2.61 时需要注意的行为变更。
一、版本概览:一次以「配置化」与「SSH/剪贴板可靠性」为主题的迭代
grok-build 0.2.61 于 2026-06-22 发布,整体变更集中在三个方向:
- 配置能力前移:Goal 模式(
/goal)的总开关、限制项与角色模型首次完整下沉到config.toml,开发者无需在会话内逐个敲命令,即可在配置文件中统一治理; - 账户与剪贴板体验:
/usage命令新增预付额度(prepaid credits)余额与自动充值状态展示;Wayland 剪贴板复制链路加入wl-copy兜底; - SSH 场景可靠性:修复了 Focus 报告跨 SSH 读取被拆分时的文本泄漏与事件丢失问题,并针对 VS Code over SSH 的剪贴板复制增加非 ASCII 乱码警告。
配套的机器可读变更清单见 0.2.61.json,其中逐条标注了类别(features / fixes)与是否破坏性变更(breaking_change)——值得注意的是,「关闭运行中进程的终端 tab 不再弹确认对话框」被标记为breaking_change: true,这是本版本唯一的一条破坏性变更,升级时需重点留意(详见下文第七节)。
二、新特性一:终端 Tab 关闭确认对话框——引入与回退的完整循环
0.2.61 的 Features 部分先引入了:
Closing a terminal tabwith a running process now shows a confirmation dialog instead of killing it immediately.
即:当关闭一个仍有进程在运行的终端 tab 时,不再立即杀死进程,而是先弹出确认对话框,避免误操作导致进程被直接终止。
然而在同版本的 Bug Fixes 列表中出现了看似矛盾的一条:
Closing a terminal tabwith a running process no longer shows a confirmation dialog.
对应 0.2.61.json 中这条记录被明确标记为breaking change。这说明该确认对话框在本版本迭代过程中被引入后又因故回退,最终 0.2.61 的行为是「关闭带运行进程的终端 tab 不再显示确认对话框」。从源码结构看,Tab 关闭与确认相关逻辑集中在 leader/mod.rs 与 prompt_suggest.rs 附近的会话提示链路中。升级建议:如果你依赖「关闭 tab 前有二次确认」来保护长任务进程,需要在 0.2.61 中改用其他保护手段(如显式暂停任务、使用 Session 持久化)。
三、新特性二:/usage 命令新增预付额度与自动充值状态
/usage命令在本版本开始展示两类账户信息:
- 预付额度余额(prepaid credits balance);
- 自动充值状态(auto top-up status)。
这意味着用户无需离开终端去网页端核对账户,即可在会话内直接查看计费与充值配置。相关实现位于 extensions/billing.rs,该模块负责账单/额度数据的获取与展示,同时被 mvp_agent/acp_agent.rs 中的 Agent 链路引用,说明/usage的数据同样服务于 Agent 场景下的额度感知。
四、新特性三:Wayland 剪贴板新增 wl-copy 兜底与按通道诊断日志
Wayland 环境下,此前剪贴板复制可能因为依赖单一工具而失败。0.2.61 的改进是:
Clipboard copyon Wayland now also tries wl-copy; per-leg outcomes are now logged for diagnostics.
即复制操作会依次尝试多个通道(leg),在原有通道之外追加wl-copy作为兜底;同时,每个通道的尝试结果都会单独写入日志,便于排查「到底哪条复制链路失败」。这一改动让 Wayland 桌面用户(如 GNOME/KDE Wayland 会话)的复制可靠性显著提升,也让诊断信息从「复制失败」这种黑盒反馈变成了可逐通道追踪的明细日志。
五、新特性四:Goal 模式全面配置化——[features] 与 [goal] 两张配置表
这是 0.2.61 最核心的工程变更,共两条:
Goal mode toggles and limitscan now be set in config.toml under the [features] table.
All /goal options(toggles, limits, role models) are now configurable together in a [goal] table.
5.1 [goal] 表:Goal 模式的一站式配置
在 0.2.61 之前,/goal的各种开关、限制与角色模型只能通过会话内命令逐项设置;现在它们全部可以在config.toml的[goal]表下统一配置。对照源码 config.rs 中的GoalConfig结构体,完整的可用键如下:
| 配置键 | 类型 | 语义 |
|---|---|---|
enabled | bool | Goal 模式总开关 |
classifier_enabled | bool | 分类器(classifier)是否启用 |
planner_enabled | bool | 规划器(planner)是否启用 |
summary_enabled | bool | 总结器(summary)是否启用 |
use_current_model_only | bool | 所有 Goal 角色是否强制继承当前模型(不单独路由模型) |
verifier_count | u32 | 验证器(verifier)数量 |
classifier_max_runs | u32 | 每个 Goal 的分类器最大运行次数(下限受GOAL_CLASSIFIER_MAX_RUNS_MIN约束) |
strategist_every | u32 | 每 N 次分类器运行触发一次策略师(strategist) |
reverify_after | u32 | 经过多少轮后重新验证 |
planner_model | string | 规划器角色使用的模型 |
strategist_model | string | 策略师角色使用的模型 |
skeptic_models | string[] | 怀疑者(skeptic)角色模型池,可配置多个 |
源码中的de_tolerant_goal_role_model/de_tolerant_goal_role_models反序列化器表明,模型字段采用容错解析——即使填写的模型名格式不完全规范,也会被尽量兼容接收,不会因单个字段格式问题导致整个配置加载失败。
示例配置:
[goal] enabled = true classifier_enabled = true planner_enabled = true summary_enabled = true use_current_model_only = false verifier_count = 3 classifier_max_runs = 5 strategist_every = 2 reverify_after = 3 planner_model = "grok-4" strategist_model = "grok-4" skeptic_models = ["grok-4-mini", "grok-4-fast"]5.2 解析优先级:config > env > remote > 内置默认
从 config.rs 的resolve_goal()与resolve_goal_u32()等解析函数可以确认,Goal 各项配置遵循分层覆盖的解析模型:
- 本地
[goal]配置优先; - 其次是环境变量层(如
use_current_model_only场景下环境层对部分字段有豁免); - 再其次是远程设置(remote settings),例如
goal_enabled、goal_classifier_enabled、goal_planner_enabled、goal_verifier_count、goal_classifier_max_runs等远端开关; - 最后是内置默认值。
resolve_goal()的注释还揭示了一个重要设计:Goal 模式主开关默认开启(Default ON),同时远程设置的goal_enabled标志位可以整体关停该能力——这样做的原因是默认值不能架空远程部署的管控能力。而分类器/规划器/总结器的默认值都跟随 Goal 主开关本身:/goal开启时它们默认开启,除非配置/环境/远程设置单独关闭。
5.3 [features] 表:Goal 开关与更多功能开关的汇聚点
[features]表在 0.2.61 中新增了对 Goal 模式开关与限制的支持。对照源码 config.rs 的Features结构体,该表实际是一个功能开关的汇聚点,除 Goal 相关键外还包括:
| 配置键 | 类型 | 默认/语义 |
|---|---|---|
support_permission | bool | 是否允许 Agent 请求工具执行权限 |
telemetry | enum | 遥测模式,None时回退远程设置/默认(关) |
codebase_indexing | bool / string[] | 代码库图索引(go-to-definition/references),默认开启;可传 glob 数组(含!负向排除) |
non_git_warning | bool | 在非 Git 仓库启动时是否弹阻塞警告,默认 false |
managed_config | bool | 托管配置拉取(managed_config.toml + requirements.toml),默认 true |
title_refresh | bool | 会话早期自动标题刷新 |
image_gen | bool | /imagine图像生成工具,默认 true |
video_gen | bool | /imagine-video视频工具,默认 true |
image_gen_model_override | string | 图像生成模型覆盖(默认grok-imagine-image-quality) |
image_edit_model_override | string | 图像编辑模型覆盖 |
compaction_mode | string | summary(默认)|transcript|segments,可被 CLI /GROK_COMPACTION_MODE覆盖 |
compaction_detail | string | none|minimal|balanced|verbose(默认) |
compaction_tool_choice | string | 压缩时的工具选择策略 |
mcp_liveness_watchers | bool | MCP 客户端存活轮询器 + 状态分发器,默认 true |
mcp_auto_restart | bool | stdio MCP 服务器崩溃自动重启(最多 3 次,退避 1s/4s/16s),默认开启 |
mcp_push_server_status | bool | Pager 端订阅 MCP 服务器状态推送,默认 true |
示例配置:
[features] goal_enabled = true image_gen = true video_gen = false codebase_indexing = true compaction_mode = "transcript" mcp_auto_restart = true注意:mcp_liveness_watchers、mcp_auto_restart、mcp_push_server_status这几个键的注释明确说明它们会被util::config::resolve::mcp绕过结构体、直接从原始 TOML 重新读取,结构体中的字段声明是为了避免serde_ignored将合法键误报为未识别键。其中mcp_push_server_status的 Pager 侧开关仅通过环境变量(OnceLock缓存)生效,因此在config.toml里关闭该键并不会影响已启动进程的订阅行为——这类「声明键」与「生效路径」的差异,是排查配置不生效时最容易被忽略的坑。
六、新特性五:VS Code over SSH 剪贴板乱码预警
Clipboard copiesfrom VS Code over SSH now warn when non-ASCII text may be garbled.
当用户通过 VS Code Remote-SSH 使用 grok-build 并复制包含非 ASCII 字符(如中文、日文、Emoji)的文本时,由于 SSH 会话的编码链路可能对文本进行转码,0.2.61 会给出乱码预警,提示用户复制结果可能与源文本不一致。这是对「远程开发 + 剪贴板」这一高频场景的体验补齐:与其让用户在粘贴后发现乱码,不如在复制时提前告知风险。
七、破坏性变更:Tab 关闭确认的行为回退(升级必读)
如第二节所述,本版本唯一的breaking_change: true记录是:
Closing a terminal tabwith a running process no longer shows a confirmation dialog.
即 0.2.61 最终交付的行为是:关闭带有运行进程的终端 tab 时不再弹出确认对话框,直接关闭。这恢复了此前的快捷关闭体验,但代价是失去了一道误操作防线。若你的工作流依赖该确认,升级后请改用其他方式保护长任务(例如先Ctrl+Z挂起任务或使用独立的持久化会话)。
八、Bug 修复详解:SSH、Agent 与并发场景的可靠性加固
8.1 Focus 报告在 SSH 场景下的两项修复
Focus reportsno longer leak as literal text when split across reads over SSH.Focus eventsnow fire correctly for SSH-split focus reports.
远程开发中,终端输出会被 SSH 链路拆分为多次读取(read)分片传输。此前若 Focus 报告恰好在分片边界被切断,可能导致:
- 报告内容以字面文本的形式泄漏到终端界面上(而不是作为结构化 Focus 事件被消费);
- Focus 事件因分片不完整而无法正确触发。
0.2.61 对跨分片的 Focus 报告做了重组修复,同时保证「既不以字面文本泄漏,又能正确触发 Focus 事件」。
8.2 --disable-web-search 在无头与 Agent 模式真正生效
--disable-web-searchnow honored in grok -p and grok agent; auxiliary model routing respects catalog overrides.
此前--disable-web-search可能只在 TUI 交互模式下生效,而在grok -p(管道/一次性提示模式)与grok agent(Agent 模式)下被忽略。0.2.61 修复了该参数在这两种模式下的生效问题,并同时修复了辅助模型(auxiliary model)路由对 catalog 覆盖的遵循——即分类器、总结器等辅助角色的模型路由,在 catalog 中配置了覆盖时应以覆盖为准,而不是沿用默认路由。该参数的实现分散于 agent/config.rs、session/acp_session_impl/spawn.rs、agent/subagent 等模块的 spawn 链路中。
8.3 布尔工具 Flag 支持字符串与数字
Boolean tool flagsnow accept "true"/"false"/"yes"/"no"/1/0 strings and numbers in addition to native booleans.
这是对工具参数解析的兼容性增强:布尔型工具参数此前只接受原生true/false,现在额外接受:
- 字符串:
"true"、"false"、"yes"、"no"; - 数字:
1、0(既包括"1"/"0"字符串,也包括真正的数字类型)。
这意味着调用工具时无需再纠结参数格式,无论 JSON 里传true、"yes"还是1,都能被正确解析为布尔值,显著降低了 Agent 与第三方客户端生成参数的出错率。
8.4 会话并发写入下的状态回退修复
Session last-active timestampsand message counts no longer regress under concurrent writers.
多写者并发更新同一会话时,旧的「最后活跃时间戳」和「消息计数」可能因写入顺序问题覆盖新值,造成状态回退(regress)。0.2.61 修复了该竞争条件,确保并发写入下这两个指标单调更新、不回退。
8.5 iTerm2 图像显示回退 OSC 1337
iTerm2now always uses text/metadata image fallback instead of broken OSC 1337 overlays.
此前在 iTerm2 终端中,图像可能通过 OSC 1337 控制序列以 overlay 方式渲染,但该路径在部分场景下损坏。0.2.61 起,iTerm2 一律改用text/metadata 图像回退方案,即通过文本/元数据方式渲染行内图片,保证图像展示的确定性。
8.6 模型切换后提示队列卡死修复
Model switchesno longer leave the prompt queue stuck after a reconnect.
在会话重连后切换模型,可能导致提示队列(prompt queue)卡死、后续输入无响应。0.2.61 修复了重连与模型切换交错时的队列状态机问题,保证切换模型后队列能继续正常消费。
8.7 自定义 Agent Profile 的 Harness 一致性
Custom agent profilesnow correctly use the harness required by their pinned model.Subagentsunder custom profiles now adopt the correct harness from the parent's model.
自定义 Agent profile 可以固定(pin)特定模型,而不同模型可能要求不同的 harness(运行容器/执行环境)。0.2.61 修复了两处关联问题:
- 自定义 profile 自身:启动时应使用其固定模型所要求的 harness,此前可能误用默认 harness;
- profile 下的子代理(subagent):子代理应继承父级模型的 harness,而不是各自采用错误/默认的 harness。
这两项修复保证了「自定义 profile + 子代理」场景下执行环境与模型要求的严格一致,避免模型与容器能力不匹配导致的运行失败。
8.8 Changelog 与 Release-notes 模态框滚动
Changelog and release-notesmodals now scroll with the mouse wheel and arrow keys.
/changelog与 release-notes 弹窗此前只能通过拖拽滚动条查看,0.2.61 起支持鼠标滚轮与方向键(↑/↓)滚动,长变更记录的可浏览性大幅提升。
九、版本文件与配套清单
- 变更记录正文:changelogs/0.2.61.md
- 机器可读清单(含 breaking_change 标记):changelogs/0.2.61.json
- Goal 配置结构体
GoalConfig:src/agent/config.rs - 功能开关结构体
Features:src/agent/config.rs - Goal 开关解析优先级
resolve_goal:src/agent/config.rs /usage账单实现:src/extensions/billing.rs- Tab 关闭相关会话逻辑:src/leader/mod.rs
十、升级建议小结
- 行为变更:0.2.61 中「关闭带运行进程的终端 tab」不再弹确认框,属破坏性变更,请评估对既有操作习惯的影响;
- 配置迁移:若此前通过会话命令维护
/goal各项设置,可迁移到config.toml的[goal]表统一管理;[features]表是功能总开关的推荐落点; - 远程开发用户:SSH 场景的 Focus 报告、剪贴板乱码预警、
--disable-web-search生效等修复值得第一时间验证升级; - Wayland 用户:剪贴板已具备
wl-copy兜底,若复制仍失败,可查看按通道记录的诊断日志定位具体链路。
- 人工智能
- AI 应用
- AI Agent
- 代码智能体
- 开发工具
- CLI
- MCP Clients
【免费下载链接】grok-build
SpaceXAI's coding agent harness and TUI. Fullscreen, mouse interactive, extensible.
相关推荐
Arduino-ESP32 快速上手:从点亮开发板到联网上传的完整教程
Arduino ESP32 快速上手:从点亮开发板到联网上传的完整教程 用一块几十元的 ESP32 开发板和一套免费的开发环境,约 10 分钟就能把第一个联网程
人工智能AI 应用AI Agent代码智能体开发工具CLIMCP ClientsAPNG Studio 深度指南:在 GitHub Copilot 画布中构建动画 PNG
APNG Studio 深度指南:在 GitHub Copilot 画布中构建动画 PNG 本指南基于 awesome copilot https://link
文档知识库AI 技能/插件如何在Laravel项目中快速集成Intervention Validation?5分钟上手教程
如何在Laravel项目中快速集成Intervention Validation?5分钟上手教程 Intervention Validation是一个为Lara
人工智能AI 应用AI Agent代码智能体开发工具CLIMCP Clients
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考