高级|配置修改的安全姿势:schema → patch → restart(SOP)
目标:改配置不翻车——不猜字段名、不整段覆盖。
适用场景
- 你要开启/调整某个能力(比如 webchat 能力、某渠道行为、日志策略)
- 你不确定配置字段具体在哪个路径
不适用:
- 你准备大改整份配置(那是升级/迁移级别,需更谨慎)
标准流程(强制建议)
- 先说清楚“要实现什么效果”(不要先写字段名)
- 查 schema:
gateway.config.schema.lookup(path="...") - 最小改动:
gateway.config.patch - Gateway 重启并回到当前会话
为什么一定要先查 schema
- 配置字段会随版本变化
- 同一个能力可能挂在不同子树(webchat / discord / telegram…)
- 直接猜字段名 = 最高概率踩坑
最小示例(人话)
需求
我想让 webchat 支持 inline buttons(如果当前版本支持)。
小艺会怎么做
- 查:
webchat.capabilities相关 schema - 确认可用值(dm/group/all/allowlist 等)
- patch:只改那一小段
- 重启后验证 UI 是否生效
验收(怎么判断改对了)
- [ ] 重启后 Gateway 正常启动(
openclaw gateway status) - [ ] 目标能力在 UI 或实际行为上生效
- [ ] 没引入无关配置变更(patch 最小化)
常见坑
- 坑:字段名写错 → 解决:先 schema.lookup
- 坑:一次 patch 改太多 → 解决:拆成多个小 patch,每次都可回滚
- 坑:改完忘了验证 → 解决:做验收清单(status + 行为验证)