OpenClaw AI Agent 架构解析
#核心架构
#
graph TB
subgraph Agent["OpenClaw Agent"]
Claude["Claude Sonnet 4.6"]
GPT["GPT-5.2/5.3"]
GLM["GLM-5"]
Gemini["Gemini Pro"]
end
subgraph Router["Model Router"]
Route["路由层"]
end
subgraph Skills["Skills Layer"]
Blog["blog-post-generator"]
Daily["daily-blog-generator"]
Code["coding-agent"]
Others["90+ skills..."]
end
subgraph MCP["MCP Layer"]
Team["Teambition MCP"]
NMem["Nowledge Mem MCP"]
Other["其他 MCP..."]
end
Claude --> Route
GPT --> Route
GLM --> Route
Gemini --> Route
Route --> Skills
Skills --> MCP
1. 多 AI 引擎联动
#模型配置
#{
"providers": {
"anthropic-local": {
"models": ["claude-sonnet-4-6"]
},
"openai-codex": {
"models": ["gpt-5.2", "gpt-5.3-codex"]
},
"zai": {
"models": ["glm-5"]
}
}
}
路由策略
#
flowchart LR
A[任务类型] --> B{判断}
B -->|日常对话| C[Claude Sonnet 4.6]
B -->|代码生成| D[GPT-5.3-Codex]
B -->|复杂推理| E[GPT-5.4]
B -->|中文任务| F[GLM-5]
| 任务类型 | 推荐模型 | 原因 |
|---|
| 日常对话 | Claude Sonnet 4.6 | 成本低、速度快 |
| 代码生成 | GPT-5.3-Codex | 代码能力强 |
| 复杂推理 | GPT-5.4 | 推理能力最强 |
| 中文任务 | GLM-5 | 中文理解好 |
Sub-Agent 编排
#
graph LR
Main[主 Agent
Claude Sonnet 4.6] --> S1[Sub-Agent 1
GPT-5.2 搜索总结]
Main --> S2[Sub-Agent 2
Claude 文档处理]
Main --> S3[Sub-Agent 3
GPT-5.3 代码审查]
2. 记忆系统
#架构图
#
graph TB
subgraph Memory["记忆系统"]
WM["Working Memory
(工作记忆)"]
NM["Nowledge Mem
(知识图谱)"]
LT["MEMORY.md
(长期记忆)"]
TL["Timeline
(时间线)"]
end
WM <--> NM
NM --> TL
NM --> LT
Session[每次对话] --> WM
Session --> NM
三层记忆
#
flowchart TD
A[对话启动] --> B[Working Memory
当日焦点]
A --> C[相关记忆
语义搜索]
A --> D[Timeline
最近活动]
B --> E[构建上下文]
C --> E
D --> E
E --> F[Agent 响应]
| 层级 | 存储 | 用途 |
|---|
| Working Memory | Nowledge Mem | 当日焦点、优先事项 |
| Long-term Memory | MEMORY.md | 持久化记忆、偏好 |
| Timeline | Nowledge Mem | 活动历史、事件记录 |
3. 定时任务系统
#Cron 配置
#{
"name": "每日博客简报生成",
"schedule": { "kind": "cron", "expr": "0 23 * * *" },
"payload": {
"kind": "agentTurn",
"message": "执行 daily-blog-generator skill",
"model": "anthropic-local/claude-sonnet-4-6"
},
"sessionTarget": "isolated"
}
任务类型
#
flowchart LR
A[Cron 任务] --> B{类型}
B -->|systemEvent| C[注入系统事件
无需 model]
B -->|agentTurn| D[隔离会话执行
需要 model]
4. Skills 体系
#目录结构
#~/.agents/skills/
├── blog-post-generator/
│ └── SKILL.md
├── daily-blog-generator/
│ └── SKILL.md
├── coding-agent/
│ └── SKILL.md
└── ... 90+ skills
Skill 触发流程
#
sequenceDiagram
participant U as 用户
participant A as Agent
participant S as Skill
participant B as 博客
U->>A: 随机找一篇上传 blog
A->>S: 匹配 blog-post-generator
S->>S: 1. 从远程仓库获取文档
S->>S: 2. 检查博客已有内容
S->>S: 3. 优化文风
S->>B: 4. 发布到博客
B-->>U: 发布成功
5. 最佳实践
#模型选择流程
#
flowchart TD
A[任务] --> B{复杂度}
B -->|简单| C[Claude Sonnet 4.6
省钱]
B -->|复杂| D{类型}
D -->|代码| E[GPT-5.3-Codex]
D -->|推理| F[GPT-5.4]
D -->|中文| G[GLM-5]
配置规范
#- ✅ 模型名必须写完整:
anthropic-local/claude-sonnet-4-6 - ✅ 路径必须用绝对路径
- ✅ agentTurn 任务必须带 model 字段
避坑指南
#
graph LR
A[问题] --> B{诊断}
B -->|模型回退失败| C[检查 fallback provider]
B -->|Cron 不执行| D[检查 model 字段]
B -->|Skills 加载不到| E[检查绝对路径]
| 问题 | 原因 | 解决方案 |
|---|
| 模型回退失败 | fallback 模型的 provider 未配置 | 检查 providers 配置 |
| Cron 任务不执行 | 缺少 model 字段 | agentTurn 必须带 model |
| Skills 加载不到 | 路径用相对路径 | 本机必须用绝对路径 |
这套架构运行稳定,每天自动生成博客简报,任务管理效率提升 49%。