吉他谱
51.54M · 2026-03-23
OpenClaw 采用微服务化插件架构,以 Gateway 为核心控制平面,通过 WebSocket 协议连接各种客户端和节点。
┌─────────────────────────────────────────────────────────────┐
│ Messaging Channels │
│ WhatsApp | T@elegrimm | Slack | Discord | Signal | IRC... │
└──────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Gateway (Control Plane) │
│ WebSocket Server (127.0.0.1:18789) │
│ - Session Management │
│ - Channel Routing │
│ - Tool Execution │
│ - Event Streaming │
└──────┬────────────────────────────────┬─────────────────┘
│ │
├─ Pi Agent (RPC) ├─ Canvas Host
├─ CLI ├─ Browser Control
├─ WebChat UI ├─ Memory Manager
├─ macOS App └─ Webhook Server
├─ iOS/Android Nodes
└─ Tailscale/SSH Tunnels
支持的通道:
Client -> Gateway: req:connect {auth, device}
Gateway -> Client: res:hello-ok {snapshot}
Gateway -> Client: event:presence
Client -> Gateway: req:agent {message, tools}
Gateway -> Client: res:agent {runId, status:"accepted"}
Gateway -> Client: event:agent (streaming)
Gateway -> Client: res:agent {status, summary}
应用场景:通道扩展、功能模块
应用场景:统一不同消息平台的接口
ChannelMessagingAdapter - 消息发送接收ChannelAuthAdapter - 认证处理ChannelConfigAdapter - 配置管理ChannelGroupAdapter - 群组处理应用场景:工具和通道的动态创建
应用场景:事件推送和状态同步
agent, ch@t, presence, health, heartbeat, cron应用场景:模型提供商切换和认证策略
应用场景:Gateway 实例和配置管理
应用场景:插件和通道的集中管理
# macOS/Linux
curl -fsSL | bash
# Windows PowerShell
iwr -useb | iex
npm install -g openclaw@latest
# 或
pnpm add -g openclaw@latest
git clone
cd openclaw
pnpm install
pnpm ui:build # 首次运行会自动安装 UI 依赖
pnpm build
pnpm openclaw onboard --install-daemon
./docker-setup.sh
# 构建镜像
docker build -t openclaw:latest .
# 运行容器
docker run -d
-p 18789:18789
-v ~/.openclaw:/home/node/.openclaw
openclaw:latest
docker compose up -d
~/.openclaw/openclaw.json.env 文件或系统环境变量覆盖{
"gateway": {
"bind": "loopback",
"port": 18789,
"auth": {
"token": "your-token-here"
}
},
"models": {
"mode": "replace",
"providers": {
"openai": {
"apiKey": "sk-..."
}
}
},
"agents": {
"defaults": {
"workspace": "~/openclaw/workspace"
}
}
}
# Gateway 认证
OPENCLAW_GATEWAY_TOKEN=your-token
# 模型提供商
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=...
# 通道配置
TELEGRAM_BOT_TOKEN=123456:ABCDEF...
DISCORD_BOT_TOKEN=...
SLACK_BOT_TOKEN=xoxb-...
# Gateway
pnpm gateway:dev
# 或完整启动
pnpm dev
pnpm gateway:watch
pnpm tui:dev
node scripts/run-node.mjs --dev gateway
# 安装并启动服务
openclaw onboard --install-daemon
# 手动启动
openclaw gateway start
# 查看状态
openclaw gateway status
openclaw gateway --port 18789 --verbose
docker compose up -d
openclaw gateway [options]
Options:
--port <number> 端口号(默认:18789)
--bind <mode> 绑定模式:loopback|lan|all
--token <string> 认证令牌
--password <string> 认证密码
--verbose 详细日志
--dev 开发模式
--allow-unconfigured 允许未配置启动
# 跳过通道
OPENCLAW_SKIP_CHANNELS=1
# 跳过特定功能
OPENCLAW_SKIP_GMAIL_WATCHER=1
OPENCLAW_SKIP_CRON=1
OPENCLAW_SKIP_CANVAS_HOST=1
OPENCLAW_SKIP_BROWSER_CONTROL_SERVER=1
# 守护进程模式
openclaw gateway stop
# 前台运行
Ctrl+C # 发送 SIGINT
# 守护进程
openclaw gateway stop --force
# 进程级
pkill -f "node.*openclaw"
# 停止服务
launchctl stop ai.openclaw.gateway
# 卸载服务
launchctl unload ~/Library/LaunchAgents/ai.openclaw.gateway.plist
# 停止服务
systemctl --user stop openclaw-gateway
# 禁用自动启动
systemctl --user disable openclaw-gateway
# 停止容器
docker compose down
# 或
docker stop <container-id>
Gateway 遵循以下关闭顺序:
| 通道 | 库 | 版本 |
|---|---|---|
| @whiskeysockets/baileys | 7.0.0-rc.9 | |
| T@elegrimm | grammy | 1.41.0 |
| Discord | discord.js | (通过 discord-api-types) |
| Slack | @slack/bolt | 4.6.0 |
| Google Chat | (自定义实现) | - |
| Signal | (signal-cli 集成) | - |
| LINE | @line/bot-sdk | 10.6.0 |
ChannelPlugin 接口并发处理
内存管理
网络优化
微服务化
事件驱动
状态管理
开发工具
测试基础设施
文档和示例
认证和授权
数据保护
漏洞防护
持续集成
代码质量
坚控和告警
OpenClaw 是一个设计精良的个人 AI 助手平台,具有以下特点:
架构优势:
技术栈:
可维护性:
未来方向:
该项目展现了企业级软件工程实践,在保持强大功能的同时,注重安全性、可维护性和用户体验。