OpenClaw 学习系列之四:OpenClaw 整体架构

OpenClaw 整体架构

什么是 OpenClaw?

OpenClaw 是一个自托管的 AI 助手平台,运行在你自己的设备上(笔记本、服务器、Mac Mini、云容器)。

它做两件事:

  1. 把各种聊天平台(WhatsApp、Telegram、Discord、飞书...)接入一个统一的 AI Agent
  2. 让 AI Agent 拥有工具能力(浏览器、文件操作、定时任务等),而不只是聊天

与普通聊天机器人的区别:普通机器人是"收到消息 → 调 API → 回复"。OpenClaw 是一套完整的基础设施------有会话管理、记忆系统、工具权限、消息路由、多 Agent 调度。

数据自主权:AI 模型的 API 调用走云端(Anthropic、OpenAI 等),但对话记录、工具执行、会话状态、调度逻辑全部留在你自己的设备上。


核心架构

OpenClaw 的架构可以用一句话概括:渠道适配 → 中央网关 → Agent 处理 → 回复分发

复制代码
┌──────────────────────────────────────────────────────────┐
│                        用户层                             │
│  WhatsApp   Telegram   Discord   飞书   Web UI   CLI     │
└────┬──────────┬──────────┬────────┬──────┬───────┬───────┘
     │          │          │        │      │       │
     ▼          ▼          ▼        ▼      ▼       ▼
┌──────────────────────────────────────────────────────────┐
│              渠道适配器 (Channel Plugin)                   │
│  • 认证(Bot Token / QR 码 / OAuth)                     │
│  • 消息解析(文字/图片/音视频 → 统一格式)                  │
│  • 访问控制(白名单、配对、群策略)                        │
│  • 发送格式化(Markdown 转换、长消息切分、媒体上传)        │
└────────────────────────┬────────────────────────────────┘
                         │
                         ▼
┌──────────────────────────────────────────────────────────┐
│                Gateway(业务网关)                         │
│  • WebSocket 服务器 (默认 :18789)                        │
│  • 消息路由 → 决定交给哪个 Agent                          │
│  • 会话管理 → Session Key 标识每个对话                     │
│  • 事件分发 → 实时通知 UI                                 │
│  • 定时任务 → Cron                                       │
│  • 状态持久化 → 文件系统                                  │
└────────────────────────┬────────────────────────────────┘
                         │
                         ▼
┌──────────────────────────────────────────────────────────┐
│                  Agent 运行时                              │
│  • 组装上下文(历史对话 + 系统提示词 + 记忆检索)            │
│  • 调用 AI 模型(Claude / GPT / Gemini 等)               │
│  • 执行工具(浏览器、命令行、文件操作等)                   │
│  • 保存状态(会话追加写入 JSONL)                          │
└──────────────────────────────────────────────────────────┘

三大核心模块

1. 渠道适配器 (Channel Plugin)

作用:把不同平台的消息翻译成统一格式,把统一的回复翻译回平台格式。

代码位置

  • 内置渠道:src/telegram/src/discord/src/slack/src/signal/src/imessage/src/web/(WhatsApp)
  • 插件渠道:extensions/feishu/extensions/matrix/extensions/msteams/

每个渠道实现一个 ChannelPlugin 对象(见 01-tech-basics.md 中的适配器组合模式)。

2. Gateway(业务网关)

作用:消息调度中心,24x7 运行。

关键区别:这不是 Nginx 那种网络网关。它是有状态的业务网关,管理着:

  • 所有渠道的长连接
  • 所有会话的状态
  • 配置的热加载
  • 定时任务调度

代码位置src/gateway/server.impl.ts

3. Agent 运行时

作用:真正的 AI 处理引擎。

执行循环

  1. 加载会话历史
  2. 组装系统提示词 + 检索相关记忆
  3. 注册可用工具
  4. 调用 AI 模型
  5. 如果模型要求调用工具 → 执行工具 → 把结果喂回模型 → 重复
  6. 收集最终回复 → 保存状态 → 返回

代码位置src/agents/pi-embedded-runner/run.ts


数据存储

所有数据都在本地文件系统:

数据 路径 格式 说明
配置 ~/.openclaw/openclaw.json JSON5 支持注释、尾逗号
会话 ~/.openclaw/sessions/ JSONL 追加写入,支持压缩
记忆 ~/.openclaw/memory/ SQLite + 向量 混合搜索(语义 + 关键词)
凭据 ~/.openclaw/credentials/ 各类格式 权限 0600

控制界面

四种方式与 OpenClaw 交互:

  1. Web UI --- 浏览器访问 http://localhost:18789,聊天 + 配置管理 + 状态监控
  2. CLI --- openclaw gateway runopenclaw agentopenclaw doctor 等命令
  3. macOS 菜单栏应用 --- 一键启动/停止网关、语音唤醒
  4. 移动端 --- iOS/Android App,通过 WebSocket 连接网关

插件系统

OpenClaw 的可扩展性通过插件实现,不需要修改核心代码:

插件类型 用途 注册方式
渠道插件 接入新聊天平台 registerChannel()
工具插件 给 Agent 添加新能力 registerTool()
模型提供商插件 接入自定义 AI 模型 registerProvider()
HTTP 路由插件 添加 webhook 端点 registerHttpRoute()
命令插件 扩展 CLI 命令 registerCli()

插件存放在 extensions/ 目录,每个是独立的 npm 包,通过 openclaw.plugin.json 声明元数据。


安全架构(概览)

层级 机制
网络 默认绑定 127.0.0.1,远程访问走 SSH 隧道或 Tailscale
身份 Token/密码认证 + 设备配对
渠道 白名单 + DM 配对审批 + 群聊策略
工具 主会话完全信任,外部会话沙箱隔离

详见 10-安全架构


下一步

相关推荐
AC赳赳老秦13 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
console.log('npc')14 小时前
OpenClaw 使用教程:开源 AI Agent 编排框架完全指南
人工智能·microsoft·ai编程·openclaw
栈溢出的浪漫1 天前
技术速递|基于 OpenClaw、MCP 和 Azure Container Apps 构建自主 Microsoft Teams 智能体
mcp·openclaw·自主智能体·技术速递·azurecontainerapps
qq_349447951 天前
Windows系统安装openclaw(源码安装)
openclaw
AC赳赳老秦2 天前
GitHub 开源项目数据采集:OpenClaw 抓取星标与贡献者数据,深度分析技术发展趋势
大数据·前端·数据库·python·开源·github·openclaw
超级小的大杯柠檬水2 天前
绿联云 NAS 安装 OpenClaw 简明指南
openclaw
AC赳赳老秦3 天前
软著公开信息批量采集:OpenClaw 抓取软件著作权公开数据,分析企业技术布局方向
大数据·网络·人工智能·python·php·deepseek·openclaw
wangxin2083 天前
CoordClaw 底层机制解构:多智能体协作的工程原理
人工智能·ai·多智能体·组织管理·openclaw·coordclaw·ai数字社会
七夜zippoe7 天前
OpenClaw 在电商行业:智能导购助手实战(多轮对话+知识库+融合推荐+A/B 优化)
知识库·电商·多轮对话·openclaw·智能导购·融合推荐
feiniao86519 天前
openclaw配置代理时如何绕过飞书地址
proxy·openclaw