OpenClaw学习总结_I_核心架构系列_Gateway架构详解
一、Gateway是什么?
Gateway是OpenClaw的中央枢纽,就像邮局一样,所有消息都先送到这里,然后分配给对应的Agent处理。
核心功能
- 接收来自各种渠道的消息(WhatsApp、Telegram、Discord等)
- 整理成统一格式
- 交给后面的Agent处理
- 把答案送回到原渠道
二、Gateway管理的两种角色
1. Operator(操作者)
- 你、CLI、Web UI
- 用来控制和监管系统
- 权限:读、写、管理、批准等
2. Node(节点)
- 远程设备(手机、树莓派)
- 提供能力(相机、屏幕、位置等)
- 权限:受限的特定能力
三、消息处理完整流程
消息进来:
WhatsApp 消息 ──┐
Telegram 消息 ──┤
Discord 消息 ───┼─→ Gateway 中央枢纽 ──→ Agent 处理 ──→ 回复
Slack 消息 ─────┤
其他平台 ────────┘
四、三大核心机制
1. WebSocket握手与认证
- 长连接(不需要反复建立连接)
- 双向通信(服务器可以主动推送)
- 低延迟
2. 设备配对
- 本地自动批准:localhost或同一网络
- 远程手动批准:不同网络,需要人工确认
3. Device Token管理
- 第一次配对成功后颁发Token
- 下次连接直接使用Token,快速认证
五、实战操作
查看Gateway状态
bash
# 查看Gateway是否运行
openclaw status
# 查看已连接的设备
openclaw presence
# 查看Gateway日志
openclaw logs --follow
配置示例
json
{
"gateway": {
"port": 18789,
"bind": "auto",
"mode": "local",
"auth": {
"mode": "token",
"token": "xxx..."
}
}
}
六、常见问题与解决
| 问题 | 表现 | 原因 | 解决 |
|---|---|---|---|
| 连接失败 | "无法连接到Gateway" | Gateway没有运行 | openclaw status检查 |
| 配对被拒 | "需要批准新设备" | 第一次连接,需要人工确认 | 用户界面中点击批准 |
| Token过期 | "认证失败" | Token有效期过了 | 重新配对 |
| 端口被占用 | "端口18789已被使用" | 其他程序占用了端口 | 改端口或关闭其他程序 |
七、学习心得
Gateway就像一个智能的前台,负责接收、整理、路由所有消息。最让我印象深刻的是设备配对机制:
- 本地环境下:假设是安全的,所以自动批准
- 远程环境下:需要谨慎,所以需要人工确认
- Token机制:第一次认证后,后续快速连接
这样设计既方便又安全!
八、总结
最关键的3点:
- Gateway是中心:所有消息都经过它,所有平台都连接到它
- 安全第一:第一次连接需要配对,本地自动,远程需确认
- 为后续课程打基础:理解Gateway才能理解Agent Loop和Session管理
系列预告:下一篇将介绍《OpenClaw学习总结_I_核心架构系列_AgentLoop详解》