前言
在AI Agent蓬勃发展的今天,如何让智能助手无缝接入我们的日常沟通渠道成为一个关键问题。OpenClaw 是一个开源的、自托管的AI Agent网关,它能将WhatsApp、Telegram、Discord、iMessage等多个聊天平台连接到你的AI助手,实现真正的跨平台智能对话。
本文将深入剖析OpenClaw的技术架构和核心原理。
核心设计理念
OpenClaw的设计遵循几个核心原则:
- 自托管(Self-hosted):运行在你自己的硬件上,数据完全自主可控
- 多通道(Multi-channel):一个Gateway进程同时服务多个聊天平台
- Agent原生(Agent-native):专为AI Agent设计,支持工具调用、会话管理、多Agent路由
- 开源(Open source):MIT许可,社区驱动
整体架构
1 | ┌─────────────────────────────────────────────────────────────────┐ |
Gateway:单一控制中心
Gateway是整个系统的核心,它:
- 维护平台连接:通过Baileys(WhatsApp)、grammY(Telegram)等库保持与各平台的连接
- 提供WebSocket API:所有控制平面客户端通过WebSocket与Gateway通信
- 管理会话状态:作为Session的唯一数据源(Single Source of Truth)
- 路由消息:将入站消息路由到正确的Agent
Gateway Protocol:统一的通信协议
OpenClaw使用JSON over WebSocket作为通信协议,分为三种帧类型:
1. 请求-响应模式
1 | // 请求 |
2. 事件推送模式
1 | { |
3. 连接握手
客户端必须首先发送connect请求,包含:
- 协议版本:
minProtocol/maxProtocol - 客户端信息:类型、版本、平台
- 角色定义:
operator(操作者)或node(设备节点) - 能力声明:对于Node,声明支持的能力如
camera、canvas、screen
Agent Loop:消息处理流水线
当一条消息进入系统后,会经历完整的Agent Loop:
1 | 消息接收 → 上下文组装 → 模型推理 → 工具执行 → 流式响应 → 状态持久化 |
1. 入口与排队
1 | // 消息通过RPC进入 |
2. 上下文准备
- 解析Model配置和认证信息
- 加载Skills快照
- 注入Bootstrap文件(AGENTS.md、USER.md等)
- 构建System Prompt
3. 流式处理
Agent Loop会持续发出三种事件流:
| 流类型 | 描述 |
|---|---|
lifecycle |
生命周期事件(start/end/error) |
assistant |
助手文本增量输出 |
tool |
工具调用事件 |
4. 钩子系统
OpenClaw提供了丰富的Hook点:
1 | before_model_resolve → before_prompt_build → agent_start |
Session管理:智能会话隔离
Session Key设计
OpenClaw使用层级化的Session Key:
1 | agent:<agentId>:<mainKey> // 直接消息(默认) |
DM隔离策略
对于多用户场景,dmScope配置至关重要:
| 策略 | 说明 | 适用场景 |
|---|---|---|
main |
所有DM共享主会话 | 单用户 |
per-peer |
按发送者ID隔离 | 多用户,跨通道同一身份 |
per-channel-peer |
按通道+发送者隔离 | 多用户共享收件箱 |
会话重置
支持多种重置策略:
1 | { |
多Agent路由:隔离的多”大脑”系统
OpenClaw支持在一个Gateway中运行多个完全隔离的Agent:
1 | ┌─────────────────────────────────────────────────┐ |
Binding规则
通过Binding将入站消息路由到特定Agent:
1 | { |
路由优先级
1 | 精确peer匹配 > parentPeer(线程继承) > 角色路由 > Guild > Team > Account > 通道 > 默认Agent |
工具系统与安全
工具执行沙箱
OpenClaw支持多种工具执行模式:
- Sandbox:隔离的执行环境
- Tool Policy:工具级别的权限控制
- Elevated:提升权限执行(需确认)
设备配对与认证
1 | 新设备 → 发送设备标识 → 签名Challenge → 请求配对 → 管理员批准 → 获取Device Token |
扩展性:Node与Canvas
Node系统
iOS/Android设备可作为Node连接到Gateway,提供:
- Camera:拍照、录像
- Screen:屏幕录制
- Location:位置获取
- Canvas:远程UI渲染
Canvas
Agent可以动态生成HTML/CSS/JS界面,在移动端Node上渲染:
1 | Gateway: /__openclaw__/canvas/ → HTML/CSS/JS |
总结
OpenClaw通过精巧的架构设计,实现了:
- 统一网关:单一入口管理所有聊天平台
- 协议抽象:WebSocket + JSON的通用协议
- Agent隔离:多Agent并行,互不干扰
- 会话智能:灵活的Session管理策略
- 安全可控:设备认证 + 工具沙箱
作为一个开源项目,OpenClaw为个人AI助手的跨平台部署提供了一个强大而灵活的解决方案。无论你是想在手机上随时调用AI,还是在群聊中部署智能机器人,OpenClaw都能胜任。
相关链接:
- 官方文档:docs.openclaw.ai
- GitHub:github.com/openclaw/openclaw
- 社区:discord.gg/clawd