乐于分享
好东西不私藏

你的小龙虾-OpenClaw是怎么设计的?

你的小龙虾-OpenClaw是怎么设计的?

一张图看懂你的小龙虾🦞:OpenClaw这个AI助手系统是怎么设计的?

OpenClaw 🦞 入门 3 · 架构全景,从宏观到微观理解系统


前两篇聊了OpenClaw是什么、为什么选自托管。这篇我们来点硬核的——拆解它的架构设计。

理解架构不是为了背概念,而是为了知道:当你配置某个功能时,你知道它在系统的哪个位置,出了问题该去哪里排查。


极简解释 -- 12岁小孩也能懂

你在微信发了一条消息,几秒后 AI 回复了。 这几秒里,系统做了什么?

理解架构,是为了出现问题时知道去哪找。

架构链路

你(微信 / 飞书 / Discord)  ↓Gateway —— 统一接入,识别平台  ↓Agent —— 采集干活,调用工具  ↓Provider —— AI 大脑(GPT / Claude / Gemini)

四个角色

Gateway · 前台

接收各种平台的消息,统一整理后送交给哪个 Agent 处理。它把回复送回对应渠道。它内用 WebSocket 保持实时连接——不是“客户端一直问有没有消息”,而是“有消息主动推过来”。

Agent · 干活的人

拿到任务后,反应是「嗯 → 盘一盘 → 再想」的循环,直到任务完成。它可以调用搜索、浏览器、代码执行等工具,也记得你们之前聊过什么。

Channel · 翻译

微信有微信的格式,Discord 有 Discord 的格式,Channel 把它们都翻译成系统内部统一的样子,Agent 就不用管消息从哪个 app 来的了。

Provider · AI 的脑子

Agent 本身不会思考,它调用 GPT、Claude、Gemini 这类模型。换哪个模型,改配置就行,其他不动。

只有一个配置文件

所有设置都在 openclaw.json 里:Gateway 监听哪个端口、飞书的 Key 是什么、用哪个 AI 模型、消息默认发给哪个 Agent、改配置就是在调整这张图里的某一块。

出问题去哪找

  • • 收不到消息 → Channel 配置、Webhook、Token
  • • 收到消息没回复 → Gateway 超时重连、Agent 状态
  • • 回复很慢 → Provider 网络或模型响应
  • • 多轮对话断掉 → 会话管理或上下文长度
  • • 工具调用失败 → 工具配置、权限、超时

技术解释 -- 先上一张总览图

如果把OpenClaw比作一个餐厅,它的架构大概长这样:

                    ┌─────────────────────────────────────┐                    │           顾客(你)                 │                    │  微信/飞书/Discord/iMessage/...     │                    └─────────────┬───────────────────────┘                                  │ 发消息                                  ▼┌─────────────────────────────────────────────────────────────────────┐│                           前台(Gateway)                            ││  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐              ││  │  渠道接入    │  │  消息路由    │  │  会话管理    │              ││  │  (Channel)   │  │  (Routing)   │  │  (Session)   │              ││  └──────────────┘  └──────────────┘  └──────────────┘              │└──────────────────────────────────┬──────────────────────────────────┘                                   │ 分发任务                                   ▼┌─────────────────────────────────────────────────────────────────────┐│                           后厨(Agent)                              ││  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐              ││  │  大脑思考    │  │  工具使用    │  │  记忆存储    │              ││  │ (LLM推理)    │  │  (Tools)     │  │  (Memory)    │              ││  └──────────────┘  └──────────────┘  └──────────────┘              │└──────────────────────────────────┬──────────────────────────────────┘                                   │ 调用                                   ▼┌─────────────────────────────────────────────────────────────────────┐│                          食材供应商(Providers)                      ││     OpenAI    Claude    Gemini    Deepseek    Ollama    ...         │└─────────────────────────────────────────────────────────────────────┘

这个比喻不太严谨,但能帮你快速建立直觉。下面我们来正经拆解。


四大核心组件

OpenClaw的架构可以抽象为四个核心组件:

1. Gateway(网关)——系统的入口

Gateway是做什么的?

想象你是一个客服主管,手下有20多个渠道(微信、飞书、Discord、邮件...),每个渠道都有客户在发消息。Gateway就是那个统一的接待台——它接收所有渠道的消息,决定消息该交给哪个Agent处理,再把回复送回对应的渠道。

Gateway的核心职责:

功能
说明
对应配置
渠道接入
连接20+通讯平台
channels
 配置
消息路由
决定消息发给谁
routing
 规则
会话管理
维护多轮对话状态
自动生成/管理
认证授权
验证用户身份
auth
 配置
健康监控
检测渠道是否正常
内置监控

关键概念:WebSocket控制平面

Gateway内部有一个WebSocket服务器,这是整个系统的中枢神经。简单说,WebSocket让Gateway能实时推送消息,而不是让客户端一直轮询"有没有新消息"。所有渠道连接、Agent连接、状态同步,都通过这个通道进行。


2. Agent(代理)——AI的大脑

Agent是做什么的?

如果说Gateway是接待台,Agent就是实际干活的员工。它接收Gateway分派过来的任务,调用AI模型进行推理,决定用什么工具、怎么回复。

Agent的核心循环(Agent Loop):

Agent接到任务后,会不断重复这个思考-行动循环,直到任务完成:

  1. 1. 观察:看当前有什么信息(用户消息、工具结果)
  2. 2. 思考:分析需要做什么,要不要用工具
  3. 3. 行动:调用工具或生成回复
  4. 4. 判断:任务完成了吗?没完成就继续循环

这就像你接到一个复杂任务时,会先想想怎么做,然后动手做,看看效果,不行再调整,直到做完为止。

Agent的核心模块:

模块
功能
技术细节
上下文引擎
管理对话历史、Token预算
自动压缩、窗口管理
工具系统
决定调用什么工具
基于描述的选择机制
记忆系统
长期记忆存储
可选:文件、数据库、向量存储
安全沙箱
限制工具执行权限
白名单、超时、资源限制

3. Channel(渠道)——连接器

Channel是做什么的?

Channel是Gateway和外部通讯平台之间的适配器。每个平台(微信、飞书、Discord等)都有自己的协议和数据格式,Channel负责把这些转换成OpenClaw内部的标准格式。

Channel的两面:

外部平台协议  ←→  Channel适配器  ←→  OpenClaw内部标准格式   (WhatsApp)      (whatsapp-channel)      (统一消息对象)   (Discord)       (discord-channel)       (统一消息对象)   (Feishu)        (feishu-channel)        (统一消息对象)

支持的渠道(部分):

渠道
类型
特点
WhatsApp
商业IM
全球最大用户基数
Telegram
开发者友好
Bot生态成熟
Discord
社区运营
适合技术社群
飞书
国内办公
企业集成度高
iMessage
Apple生态
原生体验好
Slack
企业协作
工作流集成

4. Provider(模型提供商)——AI能力源

Provider是做什么的?

Agent需要调用AI模型进行推理,Provider就是连接各种AI模型的接口。OpenClaw不绑定任何特定模型,你可以自由切换。

支持的Provider(部分):

Provider
模型
特点
OpenAI
GPT-4/GPT-3.5
综合能力最强
Anthropic
Claude 3
长文本、代码能力强
Google
Gemini
多模态、免费额度高
Deepseek
Deepseek Chat
国产、性价比高
Moonshot
Kimi
长文本新秀
Ollama
本地模型
隐私、离线可用
OpenRouter
多模型聚合
一站式接入

数据流向:一条消息的生命周期

理解了四大组件,我们来看一条消息从发送到回复的完整旅程:

阶段1:消息进入(Channel → Gateway)

  1. 1. 用户在飞书发送消息:"帮我查一下今天的AI新闻"
  2. 2. 飞书服务器推送消息到OpenClaw的飞书Channel
  3. 3. Channel把飞书格式转换成OpenClaw标准消息格式
  4. 4. Gateway接收消息,创建/继续会话

阶段2:任务分发(Gateway → Agent)

  1. 5. Gateway根据路由规则,决定把这个消息发给哪个Agent
  2. 6. Gateway通过WebSocket把任务推送给Agent
  3. 7. Agent接收任务,开始处理

阶段3:AI处理(Agent → Provider → Agent)

  1. 8. Agent把消息历史发送给配置的AI模型(如GPT-4)
  2. 9. 模型返回思考结果:"用户要查AI新闻,我应该用搜索工具"
  3. 10. Agent调用搜索工具,获取结果
  4. 11. 模型基于搜索结果生成回复

阶段4:回复返回(Agent → Gateway → Channel)

  1. 12. Agent把最终回复发给Gateway
  2. 13. Gateway找到对应的会话和渠道
  3. 14. Gateway通过飞书Channel发送回复
  4. 15. 用户在飞书看到回复

整个过程通常在几秒内完成。


扩展性设计:Plugin系统

除了四大核心组件,OpenClaw还有一个重要的设计——Plugin(插件)系统

三种类型的插件:

类型
功能
示例
Provider插件
接入新的AI模型
接入文心一言、通义千问
Channel插件
接入新的通讯平台
接入钉钉、企业微信
Tool插件
添加新的工具能力
接入Jira、Notion、数据库

配置入口:openclaw.json

所有架构组件的配置都集中在 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 部分控制Gateway行为
  • • channels 配置各个渠道接入
  • • providers 配置AI模型
  • • agents 定义Agent行为
  • • routing 设置消息路由规则

故障排查思路

理解架构后,排查问题的思路会更清晰:

现象
可能位置
排查方向
消息收不到
Channel
渠道配置、Webhook、Token
收到消息没回复
Gateway/Agent
路由规则、Agent状态、Provider配置
回复很慢
Provider/Agent
模型响应、工具执行、网络
多轮对话断掉
Gateway/Agent
会话管理(Gateway)、上下文长度(Agent)
工具调用失败
Agent
工具配置、权限、超时

总结

OpenClaw的架构设计遵循几个核心原则:

  1. 1. 网关模式:统一入口,隔离外部复杂性
  2. 2. 插件化:核心精简,能力通过插件扩展
  3. 3. 多模型:不绑定单一AI,自由选择
  4. 4. 多渠道:同时接入多个平台,统一管理
  5. 5. 自托管:数据和控制权在用户手中

理解这个架构,你就掌握了OpenClaw的"地图"——知道每个功能在哪个位置,如何相互协作,出了问题去哪里找。


参考链接:

  • • OpenClaw架构文档:https://docs.openclaw.ai/concepts/architecture.html
  • • Gateway配置指南:https://docs.openclaw.ai/gateway/configuration.html
  • • Plugin开发文档:https://docs.openclaw.ai/plugins/development.html