4.9 KiB
4.9 KiB
OpenClaw 系统架构和设计模式
📊 系统概览
核心组件
┌─────────────────────────────────────────────────────────┐
│ OpenClaw Gateway │
│ - 单进程架构 (single source of truth) │
│ - WebSocket 控制平面 │
│ - 通道连接管理 │
└────────────────────────┬────────────────────────────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│Telegram │ │WhatsApp │ │ Discord │
│ Bot │ │ Web │ │ Bot │
└─────────┘ └─────────┘ └─────────┘
目录结构
~/.openclaw/
├── openclaw.json # 主配置文件
├── openclaw.log # 运行日志
├── agents/ # 智能体配置
│ └── main/
│ └── agent/
│ ├── models.json
│ └── config.json
├── workspace/ # 工作空间
├── canvas/ # Canvas文件
├── extensions/ # 扩展插件
└── credentials/ # 凭据存储
🏗️ 设计模式
1. 单网关架构
原则: 每个主机一个网关进程
- 负责所有通道连接
- WebSocket 控制平面
- 唯一的真相来源
多机部署: 每个实例独立网关,使用不同端口
2. 通道插件架构
// 通道接口
interface Channel {
start(): Promise<void>;
stop(): Promise<void>;
sendMessage(target: string, content: string): Promise<void>;
onMessage(callback: (message: Message) => void): void;
}
支持通道:
- Telegram (Bot API)
- WhatsApp (Baileys Web)
- Discord (Bot API)
- iMessage (imsg CLI)
- Mattermost (插件)
3. 智能体路由
{
"agents": {
"list": [
{ "id": "main", "workspace": "~/.openclaw/workspace" },
{ "id": "guardian", "workspace": "/shared/guardian" }
]
},
"bindings": [
{ "agentId": "main", "match": { "channel": "telegram" } },
{ "agentId": "guardian", "match": { "channel": "whatsapp" } }
]
}
4. 配置验证
严格模式: OpenClaw 使用 JSON Schema 验证
- 不匹配 schema 的配置会被拒绝
- 使用
openclaw doctor修复配置问题
🔧 配置架构
根配置结构
{
"meta": { /* 元数据 */ },
"models": { /* 模型提供者 */ },
"agents": { /* 智能体配置 */ },
"channels": { /* 通道配置 */ },
"gateway": { /* 网关配置 */ },
"plugins": { /* 插件配置 */ }
}
配置优先级
- CLI 参数 (最高)
- 环境变量
- 配置文件 (
~/.openclaw/openclaw.json) - 默认值 (最低)
🌐 网络模型
单机模式
localhost:18789 (WebSocket)
│
▼
┌─────────────────────────────┐
│ Gateway 进程 │
│ - 通道连接 │
│ - 消息路由 │
└─────────────────────────────┘
远程模式
远程主机 本地主机
┌─────────────┐ ┌─────────────┐
│ Gateway │ ───SSH──▶ │ CLI/Nodes │
│ :18789 │ 隧道 │ │
└─────────────┘ └─────────────┘
🔐 安全模型
认证机制
- 网关Token: WebSocket 认证
- OAuth: 第三方API认证
- 本地凭据: 加密存储
访问控制
{
"channels": {
"telegram": {
"allowFrom": ["tg:123456789"],
"groupPolicy": "allowlist"
}
}
}
📈 性能优化
建议配置
| 配置项 | 推荐值 | 说明 |
|---|---|---|
contextWindow |
最大可能 | 更多上下文 |
maxTokens |
8192 | 充足输出空间 |
chunkMode |
length | 按长度分块 |
historyLimit |
50 | 平衡上下文和性能 |
资源管理
- 内存: Gateway 进程监控
- CPU: 模型推理优化
- 网络: 连接池和重试
🔄 更新机制
版本检查
openclaw update check
openclaw update run
回滚
openclaw update rollback
最后更新: 2026-02-04 23:50 GMT+8 版本: OpenClaw v2026.2.3