WebChat 是什么
WebChat 是 OpenClaw 提供的网页聊天界面,以 macOS 菜单栏工具的形式将聊天窗口作为原生 SwiftUI 组件呈现。它通过 Gateway WebSocket 连接管理对话会话,让你无需打开任何消息渠道(如 Discord 或 Telegram)就能直接与 AI 助手交互。
两种连接模式
本地模式: 直接连接本机运行的 Gateway WebSocket,零延迟,无需额外配置。
远程模式: 通过 SSH 隧道将 Gateway 控制端口转发到本地,WebSocket 经由隧道连接,无需在远端 Gateway 暴露任何公网端口,安全性极高。
打开 WebChat
通过菜单栏: 点击 OpenClaw 菜单栏图标(龙虾图标),选择「Open Chat」。
通过命令行(自动化测试):
dist/OpenClaw.app/Contents/MacOS/OpenClaw --webchat
会话管理
WebChat 默认连接所选 Agent 的 main 会话。支持在界面中切换会话——例如切换到专用的 onboarding 引导会话,与主对话隔离互不干扰。
核心通信方法(通过 Gateway WebSocket):
| 方法 | 用途 |
|---|---|
chat.history |
获取历史消息 |
chat.send |
发送新消息 |
chat.abort |
中止正在进行的对话 |
chat.inject |
向对话注入系统消息 |
同时订阅以下事件:chat(新消息)、agent(Agent 状态)、presence(在线状态)、tick(心跳)、health(健康检查)。
与远程 Gateway 配合使用
当 macOS 应用处于远程模式时,WebChat 自动通过已建立的 SSH 隧道连接远端 Gateway,无需额外配置。SSH 隧道只转发 Gateway WebSocket 控制端口,不暴露其他服务。
如果使用直连(ws/wss)模式,WebChat 直接连接配置的 Gateway URL,适合通过 Tailscale 已建立私有网络的场景。
调试方法
查看 WebChat 相关日志:
./scripts/clawlog.sh
过滤特定子系统:
log stream \
--predicate 'subsystem == "ai.openclaw" AND category == "WebChatSwiftUI"' \
--level debug
功能限制
WebChat 专为聊天会话优化,不是完整的浏览器沙箱,因此:
- 不支持网页浏览或渲染任意外部网页
- 不支持文件上传(通过 Canvas 或节点命令实现文件交互)
- 多媒体能力依赖关联节点(摄像头等由 macOS/iOS/Android 节点提供)
使用场景建议
| 场景 | 推荐方式 |
|---|---|
| 快速问答、日常对话 | WebChat(菜单栏一键打开) |
| 需要群组成员参与 | Discord / Telegram 渠道 |
| 需要 Canvas 可视化 | 结合 Canvas 画布使用 |
| 自动化触发 AI 任务 | 深链接 openclaw://agent?message=... |
WebChat 是最轻量的 OpenClaw 交互入口,无需配置消息渠道即可上手体验 AI 助手的全部能力。