你的小龙虾-OpenClaw 是怎么设计的?
摘要: OpenClaw 架构全景解析,从 Gateway 到 Agent,从 Channel 到 Provider,理解系统如何运作。
作者: 未知作者
发布时间: 2026-03-28
字数: 约 6300 字
阅读时间: 约 15 分钟
📖 目录
架构全景图
前两篇聊了 OpenClaw 是什么、为什么选自托管。这篇我们来点硬核的——拆解它的架构设计。
理解架构不是为了背概念,而是为了知道:当你配置某个功能时,你知道它在系统的哪个位置,出了问题该去哪里排查。
场景示例
你在微信发了一条消息,几秒后 AI 回复了。这几秒里,系统做了什么?
你(微信/飞书/Discord)
↓
Gateway —— 统一接入,识别平台
↓
Agent —— 采集干活,调用工具
↓
Provider —— AI 大脑(GPT/Claude/Gemini)四大核心组件
OpenClaw 的架构可以抽象为四个核心组件:
1️⃣ Gateway(网关)
角色: 统一接待台
Gateway 是做什么的?想象你是一个客服主管,手下有 20 多个渠道(微信、飞书、Discord、邮件...),每个渠道都有客户在发消息。Gateway 就是那个统一的接待台——它接收所有渠道的消息,决定消息该交给哪个 Agent 处理,再把回复送回对应的渠道。
核心职责:
- 接收所有渠道的消息
- 决定消息该交给哪个 Agent 处理
- 把回复送回对应的渠道
- 通过 WebSocket 保持实时连接
关键概念:WebSocket 控制平面
Gateway 内部有一个 WebSocket 服务器,这是整个系统的中枢神经。简单说,WebSocket 让 Gateway 能实时推送消息,而不是让客户端一直轮询"有没有新消息"。所有渠道连接、Agent 连接、状态同步,都通过这个通道进行。
2️⃣ Agent(代理)
角色: 干活的员工
如果说 Gateway 是接待台,Agent 就是实际干活的员工。它接收 Gateway 分派过来的任务,调用 AI 模型进行推理,决定用什么工具、怎么回复。
Agent 的核心循环(Agent Loop):
思考 → 行动 → 观察 → 再思考 → ...Agent 接到任务后,会不断重复这个思考 - 行动循环,直到任务完成。这就像你接到一个复杂任务时,会先想想怎么做,然后动手做,看看效果,不行再调整,直到做完为止。
核心模块:
- 思考引擎: 调用 AI 模型进行推理
- 工具系统: 搜索、浏览器、代码执行等
- 记忆系统: 记住之前的对话历史
3️⃣ Channel(渠道)
角色: 协议适配器
Channel 是 Gateway 和外部通讯平台之间的适配器。每个平台(微信、飞书、Discord 等)都有自己的协议和数据格式,Channel 负责把这些转换成 OpenClaw 内部的标准格式。
外部平台协议 ←→ Channel 适配器 ←→ OpenClaw 内部标准格式
(WhatsApp) (whatsapp-channel) (统一消息对象)
(Discord) (discord-channel) (统一消息对象)
(Feishu) (feishu-channel) (统一消息对象)4️⃣ Provider(模型提供商)
角色: AI 大脑接口
Agent 需要调用 AI 模型进行推理,Provider 就是连接各种 AI 模型的接口。OpenClaw 不绑定任何特定模型,你可以自由切换。
支持的 Provider(部分):
- OpenAI (GPT-4, GPT-3.5)
- Anthropic (Claude)
- Google (Gemini)
- 通义千问
- 文心一言
消息流转流程
理解了四大组件,我们来看一条消息从发送到回复的完整旅程:
- 用户发送消息(微信/飞书/Discord)
- Channel 接收并转换 为内部格式
- Gateway 接收消息,通过 WebSocket 推送
- Agent 接收任务,开始思考循环
- Provider 调用 AI 模型 进行推理
- Agent 决定回复内容
- Gateway 通过 Channel 发送回复
- 用户收到回复
整个过程通常在几秒内完成。
插件系统
除了四大核心组件,OpenClaw 还有一个重要的设计——Plugin(插件)系统。
三种类型的插件:
- 工具插件: 扩展 Agent 能力(搜索、浏览器、代码执行等)
- 渠道插件: 支持新的通讯平台
- Provider 插件: 支持新的 AI 模型
配置与架构关系
所有架构组件的配置都集中在 openclaw.json 文件中:
{
"gateway": {
"port": 8080,
"auth": { "token": "xxx" }
},
"channels": {
"feishu": { "appId": "xxx", "appSecret": "xxx" },
"discord": { "botToken": "xxx" }
},
"providers": {
"openai": { "apiKey": "sk-xxx" }
},
"agents": {
"main": {
"model": "openai/gpt-4",
"tools": ["search", "browser"]
}
},
"routing": {
"defaultAgent": "main"
}
}理解架构后理解配置:
gateway配置 → 接待台的监听端口和认证channels配置 → 各个渠道的接入凭证providers配置 → AI 模型的 API Keyagents配置 → 员工的配置(用什么模型、有什么工具)routing配置 → 消息分配规则
故障排查思路
理解架构后,排查问题的思路会更清晰:
| 问题现象 | 可能原因 | 排查位置 |
|---|---|---|
| 消息收不到 | Channel 配置错误 | channels 配置、平台凭证 |
| 消息处理慢 | Agent 思考循环慢 | Agent 配置、模型响应时间 |
| 回复发不出 | Gateway 推送失败 | WebSocket 连接、Channel 状态 |
| 模型报错 | Provider 配置错误 | providers 配置、API Key |
架构设计原则
OpenClaw 的架构设计遵循几个核心原则:
- 解耦: 各组件独立,可以单独替换
- 可扩展: 通过插件系统轻松扩展
- 统一接口: 内部标准化,外部多样化
- 实时性: WebSocket 保证消息实时推送
- 配置集中: 所有配置集中在一个文件
总结
理解这个架构,你就掌握了 OpenClaw 的"地图"——知道每个功能在哪个位置,如何相互协作,出了问题去哪里找。
本文是 OpenClaw 入门系列的第三篇,下一篇我们将深入探讨 Agent 的思考循环和工具系统。
🟢🐉 AiTimes - 掌握人工智能,拥抱智能时代