配置系统
一句话概括
配置系统加载、验证和管理 openclaw.json — 一个支持环境变量替换、include 解析、Zod 验证和原子写入(带备份轮转)的 JSON5 配置文件。
职责
- 解析 JSON5 配置,支持
${ENV_VAR}替换和$include解析 - 通过 Zod schema(
OpenClawSchema)验证,支持插件配置扩展 - 自动迁移旧版配置格式
- 提供带失效机制的缓存配置访问
- 原子写入(临时文件 + 重命名)带备份轮转
- 配置变更审计日志
关键源码文件
OpenClawConfig 结构(30+ 章节)
与 Token 相关的关键设置:
agents.defaults.compaction.reserveTokensFloor— 压缩触发skills.limits.*— skill 目录限制tools.allow/deny— 工具策略memory.*— RAG 设置
与其他模块的关系
- 依赖:
zod(验证)、json5(解析)、文件系统 - 被依赖:所有模块都读取
OpenClawConfig— 这是通用设置源
我的认知盲区
-
$include解析 — 深层嵌套和循环引用防护 - 插件配置 schema 注册 — 扩展如何添加自己的验证
- 备份轮转 — 保留多少备份及轮转策略
- 配置变更事件传播 — 子系统如何响应配置更新
变更频率
io.ts:中 — 迁移逻辑和环境处理演进zod-schema.ts:高 — 每个新功能添加配置章节types.openclaw.ts:高 — 镜像 zod-schema 变更