OpenClaw 原理详解:自托管 AI 网关架构深度剖析

摘要:OpenClaw 是一个自托管的多渠道 AI 代理网关,它将 WhatsApp、Telegram、Discord、iMessage 等聊天应用与 AI 编码代理(如 Pi)连接起来。本文将深入解析其架构设计、核心组件、会话管理和工具系统。


一、什么是 OpenClaw?

OpenClaw 🦞 是一个自托管网关,运行在你的机器(或服务器)上,作为聊天应用和 AI 助手之间的桥梁。它的核心理念是:无需放弃数据控制权,无需依赖托管服务,就能拥有一个随时待命的个人 AI 助手

核心特点

  • 自托管:运行在你的硬件上,你的规则
  • 多渠道:一个网关进程同时服务 WhatsApp、Telegram、Discord 等
  • 代理原生:为编码代理构建,支持工具使用、会话、记忆和多代理路由
  • 开源:MIT 许可,社区驱动

适用人群

开发者和高级用户,希望从任何地方通过消息应用与个人 AI 助手交互,同时保持对数据和隐私的完全控制。


二、整体架构

OpenClaw 的架构设计遵循单一网关、多客户端、多节点的模式:

AI 代理

节点 Nodes

控制客户端

网关 Gateway

聊天应用

WhatsApp

Telegram

Discord

iMessage

网关进程
18789 端口

macOS 应用

CLI 工具

Web 控制 UI

macOS 节点

iOS 节点

Android 节点

Pi 代理
嵌入运行时

核心组件

组件 职责 连接方式
Gateway(网关) 维护所有消息渠道连接,暴露 WebSocket API,管理会话和路由 WebSocket (18789 端口)
Channels(渠道) WhatsApp (Baileys)、Telegram (grammY)、Discord (discord.js) 等 各自协议
Clients(客户端) macOS 应用、CLI、Web 管理界面 WebSocket
Nodes(节点) iOS/Android/桌面节点,提供 Canvas、相机、屏幕录制等功能 WebSocket (role: node)
Agent(代理) 嵌入的 Pi 代理运行时,处理用户请求和工具调用 内部 RPC

三、网关工作原理

3.1 连接生命周期

所有客户端(包括渠道、控制客户端和节点)通过 WebSocket 连接到网关:

AI 代理 网关 客户端 AI 代理 网关 客户端 loop [运行中] req:connect (握手) res (ok) + hello-ok 快照 event:presence (状态更新) event:tick (心跳) req:agent (发送消息) 转发请求 流式响应 event:agent (流式事件) res:agent (最终结果)

3.2 协议细节

  • 传输层:WebSocket,JSON 文本帧
  • 首帧要求:必须是 connect 握手帧
  • 请求格式{type:"req", id, method, params}
  • 响应格式{type:"res", id, ok, payload|error}
  • 事件推送{type:"event", event, payload, seq}

3.3 认证与配对

  • 网关令牌:通过 OPENCLAW_GATEWAY_TOKEN--token 设置
  • 设备配对:新设备需要配对批准,网关颁发设备令牌
  • 本地信任:环回地址或同一 Tailscale 网络的连接可自动批准
  • 签名挑战:所有连接必须签名 connect.challenge nonce

四、会话管理系统

4.1 会话键设计

OpenClaw 使用分层会话键来隔离不同场景的对话上下文:

agent:<agentId>:<channel>:<type>:<id>
会话类型 键格式 说明
直接消息 (默认) agent:main:main 所有 DM 共享主会话
直接消息 (隔离) agent:main:whatsapp:dm:+15555550123 按渠道 + 发送者隔离
群聊 agent:main:whatsapp:group:<groupId> 每个群组独立会话
Telegram 话题 agent:main:telegram:group:<groupId>-topic:<threadId> 话题隔离
Cron 任务 cron:<jobId> 隔离的自动化任务

4.2 会话重置策略

{
  session: {
    reset: {
      mode: "daily",      // 每日重置
      atHour: 4,          // 凌晨 4 点
      idleMinutes: 120,   // 或 120 分钟空闲后重置
    },
    dmScope: "per-channel-peer", // 推荐:按渠道 + 发送者隔离
  }
}

4.3 会话存储

  • 会话元数据~/.openclaw/agents/<agentId>/sessions/sessions.json
  • 对话记录~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
  • 维护策略:自动修剪旧会话、归档转录文件、轮转存储

五、工具系统

OpenClaw 为 AI 代理提供第一类工具,无需 shell 调用,类型安全:

5.1 核心工具组

工具组 包含工具 用途
group:fs read, write, edit, apply_patch 文件操作
group:runtime exec, bash, process 命令执行
group:sessions sessions_list, sessions_history, sessions_send 会话管理
group:memory memory_search, memory_get 记忆检索
group:web web_search, web_fetch 网络搜索
group:ui browser, canvas 浏览器和画布自动化
group:messaging message 消息发送
group:nodes nodes 节点控制

5.2 工具策略

{
  tools: {
    profile: "coding",  // 基础配置:coding | messaging | minimal | full
    allow: ["group:fs", "browser"],  // 白名单
    deny: ["group:runtime"],         // 黑名单(优先)
    byProvider: {
      "google-antigravity": { profile: "minimal" },  // 按提供商限制
    },
  }
}

5.3 浏览器自动化流程

No

Yes

Yes

No

Start

browser: status

Browser Running?

browser: start

browser: snapshot

browser: act

Need Screenshot?

browser: screenshot

Done

流程说明:开始 → 检查状态 → 启动浏览器(如未运行)→ 页面快照 → 执行操作(点击/输入)→ 可选截图确认 → 完成


六、多代理路由

OpenClaw 支持运行多个隔离的代理,每个代理有独立的工作空间和会话:

{
  agents: {
    list: [
      { id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
      { id: "work", workspace: "~/.openclaw/workspace-work" },
    ],
  },
  bindings: [
    { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
    { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
  ],
}

路由匹配流程

Yes

No

Message Received

Has Binding Rule?

Match Channel/Account

Use Default Agent

Route to Agent

Load Workspace

Inject Config Files

Agent Responds

流程说明:收到消息 → 检查绑定规则 → 匹配渠道/账户(或使用默认代理)→ 路由到对应代理 → 加载工作空间 → 注入配置文件 → 代理响应


七、工作空间与记忆系统

7.1 工作空间文件

每个代理工作空间包含以下核心文件:

文件 用途
AGENTS.md 操作指令和"记忆"
SOUL.md 人格、边界、语气
TOOLS.md 用户维护的工具笔记
BOOTSTRAP.md 一次性首次运行仪式(完成后删除)
IDENTITY.md 代理名称/氛围/表情符号
USER.md 用户档案和偏好

7.2 记忆持久化

心跳维护

长期记忆

短期记忆

提炼

读取

更新

memory/YYYY-MM-DD.md
原始日志

MEMORY.md
精选记忆

定期审查


八、安全与权限

8.1 DM 访问控制

{
  channels: {
    whatsapp: {
      dmPolicy: "pairing",    // pairing | allowlist | open | disabled
      allowFrom: ["+15555550123"],
      groups: {
        "*": { requireMention: true },  // 群聊需要@提及
      },
    },
  },
}

8.2 沙箱隔离

{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",  // off | non-main | all
        scope: "agent",    // session | agent | shared
      },
    },
  },
}

8.3 工具权限

  • 执行批准exec 命令可配置为需要用户批准
  • 工作空间限制apply_patch 默认仅限工作空间内
  • 提升权限elevated 模式需要显式配置

九、自动化能力

9.1 心跳检查

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last",  // last | whatsapp | telegram | discord | none
      },
    },
  },
}

9.2 Cron 任务

{
  cron: {
    enabled: true,
    maxConcurrentRuns: 2,
    sessionRetention: "24h",
  },
}

9.3 Webhooks

{
  hooks: {
    enabled: true,
    token: "shared-secret",
    mappings: [
      {
        match: { path: "gmail" },
        action: "agent",
        agentId: "main",
        deliver: true,
      },
    ],
  },
}

十、配置热重载

OpenClaw 支持配置热重载,无需手动重启:

{
  gateway: {
    reload: { mode: "hybrid" },  // hybrid | hot | restart | off
  },
}
模式 行为
hybrid (默认) 安全更改立即生效,关键更改自动重启
hot 仅热应用安全更改,需要重启时记录警告
restart 任何更改都重启网关
off 禁用文件监视,手动重启生效

十一、快速开始

11.1 安装

npm install -g openclaw@latest

11.2 初始化

openclaw onboard --install-daemon

11.3 配置渠道

openclaw channels login  # WhatsApp 配对

11.4 启动网关

openclaw gateway --port 18789

11.5 打开控制 UI

访问 http://127.0.0.1:18789


十二、总结

OpenClaw 的核心创新在于:

  1. 统一网关架构:一个进程服务所有渠道,简化部署和维护
  2. 会话隔离:灵活的会话键设计,支持多用户、多场景隔离
  3. 工具系统:类型安全的内置工具,无需 shell 调用
  4. 自托管优先:数据完全掌控,隐私有保障
  5. 扩展性强:插件系统支持自定义渠道和工具

对于希望构建个人 AI 助手的开发者来说,OpenClaw 提供了一个开箱即用、高度可定制的基础架构。无论是简单的消息回复机器人,还是复杂的多代理协作系统,OpenClaw 都能胜任。


参考资源

  • 官方文档:https://docs.openclaw.ai
  • GitHub: https://github.com/openclaw/openclaw
  • 社区:https://discord.com/invite/clawd
  • 技能市场:https://clawhub.com

本文基于 OpenClaw v2026.2.26 编写,架构和特性可能随版本更新而变化。
对了,本文的markdown文件是由openclaw直接生成的…

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐