项目概述
1.1 项目定位
OpenClaw 定位为 Personal AI Assistant(个人 AI 助手),核心设计理念是让用户能在自己的设备上运行 AI 助手,并通过已有的即时通讯渠道(WhatsApp、Telegram、Slack、Discord、Signal、iMessage 等)与之交互。
与云端 AI 服务不同,OpenClaw 强调本地优先(Local-first)的架构设计。Gateway 作为控制平面运行在用户自己的设备上,数据处理和会话管理均在本地完成。
1.2 开源协议
项目采用 MIT 开源协议,由 Peter Steinberger 及社区贡献者共同维护。MIT 协议为开发者提供了较为宽松的使用和二次开发空间。
1.3 技术栈概览
- 运行时环境:Node.js 22+
- 开发语言:TypeScript (ESM)
- 包管理器:pnpm
- 测试框架:Vitest
- 代码规范:Oxlint + Oxfmt
- 客户端应用:Swift (macOS/iOS)、Kotlin (Android)
系统架构分析
2.1 整体架构
OpenClaw 采用 Gateway 中心化的架构设计,整体结构如下:
WhatsApp / Telegram / Slack / Discord / Signal / iMessage / ...
│
▼
┌───────────────────────────────┐
│ Gateway │
│ (控制平面) │
│ ws://127.0.0.1:18789 │
└──────────────┬────────────────┘
│
├─ Pi Agent (RPC)
├─ CLI (openclaw …)
├─ WebChat UI
├─ macOS App
└─ iOS / Android Nodes
Gateway 作为系统的核心控制平面,负责会话管理与状态维护、多渠道消息路由、工具调用与事件分发以及 WebSocket 通信协议。
2.2 模块组织
项目采用模块化的目录结构:
openclaw/
├── src/ # 核心源码
│ ├── cli/ # CLI 命令行接口
│ ├── gateway/ # Gateway 服务
│ ├── channels/ # 渠道适配层
│ ├── agents/ # AI 代理模块
│ ├── browser/ # 浏览器控制
│ ├── plugins/ # 插件系统
│ └── ...
├── extensions/ # 扩展插件(36 个)
├── skills/
├── apps
│ ├── macos
│ ├── ios
│ └── android
├── ui
└── docs

