配置窗格
zerocode 的 Config 面板用于配置正在运行的 ZeroClaw。每个设置都有对应的类型化控件、校验规则和行内说明。保存成功后会持久化该更改,但是否应用到正在运行的组件取决于具体设置和目标。在任意 zerocode 会话中打开 Config 即可编辑设置。
设置仍会持久化到你的配置中,文档描述了相关字段,以便你能清楚看到某个控件具体写入了什么内容。请将这些描述理解为持久化后的结果,而不是要你用编辑器打开文件的指示。手动编辑是针对无头主机和脚本化配置的备用方案,文档会在这些场景中明确指出这一点。
键绑定修饰键
键绑定使用规范的修饰键名称:control 表示字面意义上的 Control,primary 在 macOS 上表示 Command,在其他平台上表示 Control,而 super 表示字面意义上的 Super/Command。例如,control+c、primary+r 和 alt+shift+up 是可移植的持久化值。较旧的 ctrl+... 值会在配置加载时迁移一次,并重写为对应的规范拼写。
为什么用窗格而不是文件
- 验证。 控件会在格式错误的值到达守护进程之前将其拒绝,因此拼写错误不会导致配置进入无法加载的状态。
- 可发现性。 每个设置都附带内联说明,因此你无需对照配置参考即可了解某个字段的作用。
- 应用反馈。 当守护进程支持时,已保存的更改会显示受影响的正在运行目标的已确认应用结果。其他设置需要显式重新加载。
- 基于注册表的列表。 提供程序、通道、模型和主题选项均来自后端注册表,因此你看到的选项正是此版本所支持的选项。
已保存并应用更改
daemon Config 编辑成功后,应用摘要会将已保存的属性及其修订版本与运行中目标的结果分开显示。在编辑器或搜索框之外按下 s 键,即可打开应用状态。使用 Up/Down 或 Page Up/Page Down 滚动,按 Escape 返回。已配置的 application_status 操作可以替换默认快捷键。
每个结果都会显示规范路径组件、其修订版本,以及它所描述的守护进程或会话实例。同一变更下,会话可能显示 已实时应用,而守护进程仍显示 需要重新加载。待处理表示目标尚未确认该更新;已拒绝表示所尝试的目标未接受该更新。仅凭架构能力支持和成功保存,并不能证明更新已被应用。
缺少回执、状态 API 不受支持、读取失败、守护进程被替换(新的代次),或缺少结果时,都会显示 Application status unavailable。守护进程只保留有限数量的已观察变更,不是完整清单,也不保存持久历史。截断或缺失的记录绝不意味着成功。针对无关的较早编辑的结果会保留其实际修订版本;来自其他写入者较晚编辑的结果无法确认您的保存。通过独立生命周期方法路由的别名操作可能没有保存回执,因此无法提供精确保存反馈,并将保持 Application status unavailable。
应用状态在“配置”页面可见时会刷新。离开“配置”页面或连接断开,都会使其缓存的应用视图失效。重新加载仍通过现有的显式重新加载操作及确认步骤进行;仅读取状态不会触发重新加载。本地 ZeroCode 设置、人格文件和技能文件保留各自的保存反馈,因为它们不与守护进程配置应用账本共享。
本地 UI 设置(zerocode-config.toml)
某些设置描述的是 zerocode 本身 如何绘制其窗格,而不是守护进程如何运行。这些设置位于 zerocode 自己的文件 <config-dir>/zerocode-config.toml> 中,并可从 zerocode 的 Config 窗格进行编辑。
TodoWrite 跟踪器就是其中之一。它只是一个仅用于显示的功能:守护进程只会发出计划更新,而通过 ACP,客户端完全控制格式,因此它归 zerocode 所有:
[todotracker]
enabled = true # 主开关;为 false 时跟踪器永不渲染
enabled_at_start = false # 启动时可见,在第一个计划到达之前
location = "right" # "bottom"、"left" 或 "right"
width = 32 # 侧面板目标列宽(左/右)
max_height = 5 # 底部条最大高度(行数)
Shell 级别的智能体侧边栏同样存储在该文件中。默认配置节会被显式序列化,以便环境变量覆盖项有对应的架构节点可供指向:
[sidebar]
visible = true # show the agent/session sidebar at launch
width = 24 # target width in terminal columns
按 Ctrl+B 显示或隐藏侧边栏。即使在窄终端宽度下,快速入门(Quickstart)仍可通过键盘模式栏访问,并且也会以侧边栏启动器的形式出现。从侧边栏选择现有代理后,会启动新的 Chat 或 Code 会话,而不会替换该窗格中已跟踪的其他会话。
TodoWrite 的值会在每个会话边界重新读取,因此在 Config 面板中所做的编辑会应用于你接下来启动、重启或切换到的会话,无需重启 zerocode。
环境覆盖
任何字段都可以在单次运行中通过 ZEROCODE_ 变量进行覆盖。变量名由此前缀后接小写配置路径组成,其中 . 写作 __:
ZEROCODE_todotracker__enabled=false zerocode
ZEROCODE_todotracker__location=底部 zerocode
ZEROCODE_sidebar__visible=false zerocode
这些覆盖项仅在进程生命周期内有效:它们只影响正在运行的实例,永远不会写回 zerocode-config.toml。在 Config 窗格中保存无关字段,不会将环境变量注入的值写入文件。
从由守护进程拥有的 [todotracker] 升级
在此设置迁移之前,[todotracker] 是 守护进程的 config.toml 中的一个节。如果你曾在那里设置过,请将这些值复制过来:
- 打开你的守护进程
config.toml,并记下[todotracker]中的值。 - 将相同的代码块放入
<config-dir>/zerocode-config.toml>(如上所示),或在 Config → Todo tracker 中进行设置。 - 从守护进程
config.toml中删除[todotracker]部分。
现有的 ZEROCLAW_todotracker__* 环境变量在升级前不需要移除:守护进程会接受并忽略这五个已识别字段(enabled、enabled_at_start、location、width、max_height),因此之前正常工作的部署仍可启动。它们不再有任何作用,因此请将它们改为上面的 ZEROCODE_ 写法。