整体架构图
┌─────────────────────────────────────────────────────────────────┐
│ 本地 Mac (真相源) │
│ │
│ config.yaml ──── manage.sh / openclaw_model.sh │
│ │ │ │
│ │ rsync/scp (幂等同步) │
└───────┼──────────────┼──────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ 远端 VPS (alilos) │
│ │
│ ┌──────────────────────┐ ┌─────────────────────────────────┐│
│ │ CLIProxyAPI (:8317) │ │ OpenClaw Gateway (常驻进程) ││
│ │ │ │ ││
│ │ round-robin 多站点 │◄──►│ 启动时缓存 config ││
│ │ 黑名单过滤 │ │ 管理 provider 生命周期 ││
│ │ 站点探活 │ │ 模型路由 + fallback ││
│ │ │ │ Cron 调度 ││
│ └──────────────────────┘ │ Channel 投递 ││
│ └─────────────────────────────────┘│
│ │
│ 配置文件: │
│ ├─ ~/.openclaw/openclaw.json (全局 providers 注册) │
│ ├─ ~/.openclaw/agents/main/agent/ (agent 级配置) │
│ │ ├─ models.json (模型白名单) │
│ │ ├─ auth-profiles.json (认证凭证) │
│ │ └─ openclaw-agent.json (agent 配置) │
│ └─ /root/cliproxyapi/blacklist.txt (站点黑名单) │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 多 Provider 路由 │
│ │
│ foxcode/claude-sonnet-4-5-thinking (默认,直连官方) │
│ cliproxy/gpt-* (备选,多站点) │
│ 代理通道/claude-* (备选) │
│ zai/glm-* (终极兜底) │
└─────────────────────────────────────────────────────────────────┘
关键路径
| 路径 | 说明 | 注意 |
|---|
config.yaml → rsync → 远端 | 本地是单一真相源,所有配置从这里出发 | 改远端配置会被下次同步覆盖 |
openclaw.json | 全局 provider 注册 | agent 级 models.json 不能注册新 provider |
models.json | agent 模型白名单 | 没在白名单里的模型即使注册了也用不了 |
auth-profiles.json | API 认证凭证 | token 有过期时间,需定期同步 |
blacklist.txt | CLIProxyAPI 站点黑名单 | 一行一个站点名,纯文本 |
| 改完配置 → 重启 Gateway | Gateway 是常驻进程,启动时缓存配置 | 不重启等于没改 |
设计原则
- 单一真相源 — 本地 Mac 持有所有配置,远端只是执行者。不直接改远端配置
- 幂等操作 —
manage.sh 和 openclaw_model.sh 可以反复执行,结果一致
- 显式优于隐式 — 没有 Web UI,没有数据库,所有状态在 JSON 文件里,git 可追踪
- 故障隔离 — 每个 provider 独立 rate limit,挂了不影响其他 provider