我们每天都在和 AI 对话------在 ChatGPT 的网页里,在 Copilot 的编辑器里,在各种套壳应用里。但如果你仔细想想,会发现一个尴尬的现实:AI 很聪明,但它什么也做不了。
它不能帮你发一条 WhatsApp 消息,不能替你在 Slack 里回复同事,不能打开你的摄像头拍张照片,不能在你的电脑上跑一个脚本。所有的"智能"都被锁在一个浏览器标签页里。
OpenClaw 试图改变这一点。
它是一个开源项目,由 PSPDFKit 创始人 Peter Steinberger 发起,MIT 协议,截至 2026 年 2 月已有 14,700+ 次提交和 20+ 位活跃贡献者。它的愿景很简单:
"OpenClaw is the AI that actually does things. It runs on your devices, in your channels, with your rules."
不是又一个 ChatGPT 套壳,而是一个运行在你自己设备上的 AI 助手------它能接管你的 WhatsApp、Telegram、Slack、Discord,能调用你手机的摄像头和 GPS,能在 Docker 沙箱里跑脚本,能通过 52 个内置技能操作 GitHub、Notion、1Password......
这篇文章不聊产品体验,只聊架构。我花了一些时间阅读 OpenClaw 的源码,试图回答一个问题:它到底是怎么做到的?

六大核心模块详解
1. Gateway 网关层 ------ 系统心脏
Gateway 是一个 Node.js 服务,默认监听 ws://127.0.0.1:18789,同时暴露 WebSocket 和 HTTP 两种协议。
启动流程:
scss
startGatewayServer(port, opts)
├── 加载配置、迁移旧配置
├── 确保认证(Token / 密码 / 设备身份)
├── 加载插件 → loadGatewayPlugins()
├── 创建通道管理器 → createChannelManager()
├── 创建 HTTP/WebSocket 服务
├── 绑定 WebSocket 事件处理
├── 启动侧车服务(通道、Gmail 监听、钩子等)
└── 启动 mDNS/Bonjour 局域网发现
Gateway 的核心职责:
- 消息路由:将来自不同通道的消息分发到正确的 Session
- Agent 调度:触发 AI 推理并将结果路由回去
- 插件管理:统一注册和管理通道、工具、钩子
- 安全管控:认证、设备配对、沙箱隔离
2. 通道集成层 ------ 打通 15+ 聊天平台
每个聊天平台作为独立的 Extension 插件,通过 Plugin SDK 注册到 Gateway。
通道插件统一接口:
typescript
ChannelPlugin {
id: string
gateway.startAccount() // 启动连接到外部平台
gateway.stopAccount() // 停止连接
outbound.sendText() // 发送文本
outbound.sendMedia() // 发送媒体
config.isEnabled() // 是否启用
capabilities // 支持的能力(群组、反应、投票等)
}
各平台的底层实现:
| 平台 | 底层库 | 连接方式 | 投递模式 |
|---|---|---|---|
| @whiskeysockets/baileys | QR 码登录 | gateway | |
| Telegram | grammy | Bot Token + Webhook | direct |
| Slack | @slack/bolt | Bot/User Token | direct |
| Discord | discord.js | Bot Token | direct |
| Signal | Signal CLI | 本地协议 | gateway |
| iMessage | BlueBubbles | HTTP API | gateway |
| 飞书 | @larksuiteoapi/node-sdk | 应用凭证 | direct |
消息流转路径:
scss
用户在 WhatsApp 发消息
→ WhatsApp 插件收到消息
→ dispatchInboundMessage() 分发到网关
→ 路由到对应 Session
→ Agent Runtime 执行推理
→ Agent 生成回复
→ deliverAgentCommandResult()
→ 通过 WhatsApp outbound adapter 发回用户
这里有两种投递模式的设计值得关注:
- gateway 模式:消息经 Gateway 转发,适合没有官方 Bot API 的平台(如 WhatsApp、iMessage)
- direct 模式:插件直接投递到平台 API,减少延迟,适合有完善 Bot API 的平台
3. AI Agent 运行时 ------ 本地推理引擎
OpenClaw 基于 pi-agent(嵌入式 Agent SDK)来运行 AI 推理。
模型发现与选择:
- 通过
pi-model-discovery自动发现可用模型 - 支持 OpenAI、Anthropic Claude、Google Gemini、AWS Bedrock、本地 LLM(llama.cpp)
resolveConfiguredModelRef()解析用户配置runWithModelFallback()支持模型自动降级
Agent 执行流程:
scss
消息进入
→ agentCommand()
→ runEmbeddedPiAgent()
├── 加载会话上下文(历史消息)
├── 注入 System Prompt + 匹配的 Skills
├── 注入可用 Tools
├── 调用模型推理
├── 模型返回 Tool Call → 执行工具 → 结果回填 → 继续推理
└── 最终回复 → 广播到 WebSocket / 通道
Session 管理:
- 每个对话有独立的 Session Key:
agent:{agentId}:{mainKey} - Session 持久化到文件系统
- 支持上下文压缩(compaction),避免长对话的 token 溢出
4. 原生应用层 ------ 设备硬件能力的桥梁
原生应用(macOS/iOS/Android)不直接运行 AI,而是作为 Gateway 的远程节点(Node)。
设备配对流程:
markdown
1. 用户在 Telegram 输入 /pair
2. device-pair 扩展生成配对码(base64 JSON: url + token)
3. 用户在 iOS App 中粘贴配对码或扫描 QR
4. App 用设备身份通过 WebSocket 连接 Gateway
5. Gateway 广播 device.pair.requested
6. 用户确认 /pair approve
7. Gateway 发放设备 Token,完成持久配对
节点能力调用:
Gateway 可以通过 node.invoke 远程调用原生 App 的硬件能力:
| 能力 | 实现方式 |
|---|---|
| 摄像头拍照 | node.invoke → Camera Handler |
| 屏幕录制 | node.invoke → Screen Record |
| GPS 定位 | node.invoke → Location |
| 语音唤醒 | Android SpeechRecognizer / iOS Voice Wake |
| Talk Mode | ElevenLabs TTS + 按键对讲 |
| 推送通知 | node.event → 本地通知系统 |
| SMS 短信 | Android SMS Handler |
语音交互实现:
- Voice Wake (Android):用
SpeechRecognizer持续监听触发词,检测后提取命令发送到 Gateway - Talk Mode:Gateway 将 AI 回复通过 ElevenLabs 转为语音流,推送到 App 播放
- PTT 对讲 :iOS/macOS 通过
talk.ptt.start/stop命令实现按键对讲
5. Skills & Tools 系统 ------ 让 AI 能"做事"
Skills(技能) 是 OpenClaw 最有特色的设计之一。每个 Skill 是一个包含 SKILL.md 的目录,用自然语言描述用途和工具用法:
yaml
# SKILL.md 结构示例
---
name: github
description: Use when user mentions GitHub issues, PRs, or repositories
metadata:
openclaw:
requires:
bins: [gh]
---
## Instructions
Use the `gh` CLI tool to interact with GitHub...
AI 在推理时根据用户意图自动匹配 Skill,读取对应的 SKILL.md 获取工具使用方法。这是一种优雅的声明式能力注入机制。
Tools(工具)类型:
| 类型 | 示例 | 执行位置 |
|---|---|---|
| 内置工具 | read, write, edit, bash | gateway / sandbox |
| 插件工具 | voice_call, canvas, memory_search | gateway |
| 浏览器工具 | Playwright 自动化 | sandbox 容器 |
| 节点工具 | camera, location, sms | 远程设备节点 |
工具策略管控:
通过 Profile(minimal / coding / messaging / full)和 allow/deny 列表精细控制工具权限:
json
{
"tools.profile": "coding",
"tools.deny": ["voice_call"],
"agents.sandbox.tools.allow": ["read", "write", "bash"]
}
6. Docker 沙箱 ------ 安全执行环境
对于不信任的操作,OpenClaw 用 Docker 容器隔离执行:
scss
ensureSandboxContainer(session)
→ 为每个 session 创建独立容器
→ 同步 workspace 文件
→ 同步 Skills
→ 在容器内执行命令
→ 限制内存、CPU、网络
浏览器自动化也可以跑在隔离的浏览器容器中(Playwright + 可选 VNC),确保 AI 操作网页时不影响主机环境。
对开发者和团队的参考价值
1. Gateway-as-Hub 架构模式
OpenClaw 最核心的架构决策是本地 Gateway 作为统一中枢。这个模式适用于任何需要整合多个外部服务的场景:
- 企业内部工具集成:用 Gateway 统一对接钉钉、飞书、企业微信等多个 IM
- IoT 智能家居:本地 Hub 管理多个设备协议(Zigbee、BLE、WiFi)
- API 聚合网关:统一管理多个 AI Provider 的调用和降级
关键设计要点:
- WebSocket 作为主协议,HTTP 作为兼容层
- 插件化架构,核心精简,能力外置
- 统一的消息路由和 Session 管理
2. 插件化通道抽象
OpenClaw 对 15+ 聊天平台的统一抽象非常值得借鉴。ChannelPlugin 接口设计了清晰的生命周期:
注册 → 配置 → 启动 → 消息收发 → 停止
参考场景:
- 构建多渠道客服系统
- 统一通知推送服务
- 跨平台消息转发 Bot
3. SKILL.md ------ 声明式能力注入
用 Markdown 文件声明 AI 技能,而不是硬编码 Function Calling,这是一个非常聪明的设计:
优势:
- 非开发者也能编写和修改技能
- 热加载,无需重启服务
- 自然语言描述意图,AI 自行匹配
- 技能可以独立分发和共享(ClawHub 市场)
参考场景:
- 企业知识库 + AI 助手:将 SOP 写成 Skill,AI 自动匹配执行
- 运维自动化:将运维手册转为 Skill,AI 根据告警自动处理
- 教育领域:将教学场景写成 Skill,AI 辅助答疑
4. Node 远程调用模式
通过 WebSocket + node.invoke 远程调用设备硬件能力的设计,解决了一个核心问题:AI 在服务端运行,但硬件在客户端。
参考场景:
- 远程协助工具:AI 远程调用用户设备的摄像头、屏幕
- 工业 IoT:AI 远程调用传感器和执行器
- 分布式测试:远程调用多台设备执行测试
5. 安全分层设计
OpenClaw 的安全设计是"强默认 + 显式开放":
DM 配对验证 → Token 认证 → 工具策略管控 → Docker 沙箱隔离 → 命令执行审批
参考场景:
- 任何需要让 AI 执行实际操作的系统都应参考这套分层安全模型
- 特别是 Agent 类产品,必须有明确的权限边界和审批机制
6. Monorepo + Extension 工程化
OpenClaw 用 pnpm workspace 管理 70+ 个包,包括核心、UI、38 个扩展、52 个技能、3 个原生应用。
工程化实践:
tsdown(基于 esbuild)构建,速度极快oxlint+oxfmt代替 ESLint + Prettier,性能更好- 5 套 Vitest 配置(unit / e2e / live / gateway / extensions)
- 严格的 PR 规范:单 PR 单议题,不超过 5000 行
总结
OpenClaw 不是又一个 ChatGPT 套壳,而是一套完整的本地 AI 助手基础设施。它的核心创新在于:
- 本地 Gateway 中枢:所有能力通过一个本地服务统一调度
- 通道抽象层:一套接口打通 15+ 聊天平台
- 声明式技能系统:用 Markdown 描述 AI 能力,而非硬编码
- 设备节点模型:让 AI 能远程调用手机/电脑的硬件能力
- 安全分层:从认证到沙箱的完整安全链路
这套设计为"如何在个人设备上运行一个真正有用的 AI 助手"提供了一个高质量的开源参考实现。无论你是想构建自己的 AI 助手,还是设计多通道集成系统,OpenClaw 的架构都值得深入研究。