09 配置、会话与存储
模块目标
理解系统状态为什么“可恢复、可回滚、可演进”。
步骤一:实现拆解(执行链路)
- 配置读写主引擎:
src/config/io.ts - 路径与目录策略:
src/config/paths.ts - 会话存储:
src/config/sessions/store.ts - 会话相关导出:
src/config/sessions.ts
步骤二:细粒度讲解(小白版)
config/io.ts不只是读 JSON
- 支持 JSON5
- 环境变量替换
${VAR} - include 合并
- schema 校验
- 默认值补齐
- 兼容迁移
- 原子写入与审计日志
paths.ts定义“状态目录规则”
- 默认
~/.openclaw - 允许环境变量覆盖
- 兼容历史目录与旧配置文件名
- 统一解析 config/state/oauth 路径
sessions/store.ts是高频读写热点
- 内存缓存 + TTL
- 文件 mtime 校验
- 锁机制避免并发写冲突
- 自动清理过期 session
- 支持容量上限与旋转
- 为什么这层关键
- 自动回复依赖 session 保持上下文
- 发送层依赖 delivery context 找回目标
- 路由层依赖会话键定位用户状态