WebChat 与仪表板使用教程

intermediate
## Control UI 仪表板 OpenClaw Gateway 自带一个 Web 管理界面——Control UI 仪表板。通过它你可以在浏览器中查看 Gateway 状态、管理会话、监控渠道,无需记忆 CLI 命令。 ### 访问仪表板 启动 Gateway 后,在浏览器中打开: ``` http://127.0.0.1:18789/ ``` 默认端口是 `18789`。如果你修改了端口配置,请使用对应的端口号。 ### 确认 Gateway 正在运行 ```bash # 检查 Gateway 状态 openclaw gateway status # 如果未运行,启动 Gateway openclaw gateway run ``` 看到类似以下输出说明 Gateway 已启动: ``` Gateway is running on http://127.0.0.1:18789 ``` ## 仪表板功能概览 Control UI 仪表板提供了以下核心功能: ### 渠道状态 在仪表板首页可以看到所有已配置渠道的连接状态: - ✅ **已连接**:渠道正常工作 - ⚠️ **配置中**:渠道已配置但未完成连接 - ❌ **断开**:渠道连接已断开,需要排查 每个渠道会显示: - 渠道类型(Telegram、WhatsApp、Discord 等) - 连接状态 - 最后活跃时间 - 消息统计 ### 会话管理 仪表板的会话页面让你查看和管理所有活跃会话: - 查看当前活跃的会话列表 - 查看每个会话的消息历史 - 查看会话关联的渠道和联系人 - 手动结束或重置会话 ### 配置查看 在配置页面可以查看当前 Gateway 的配置信息: - 已启用的工具列表 - 模型提供商配置 - 智能体配置 - 渠道配置 ⚠️ 仪表板目前主要用于**查看**配置,修改配置仍需编辑 `openclaw.json` 文件。 ### 日志查看 实时查看 Gateway 的运行日志,方便排查问题: - 消息收发日志 - 工具调用日志 - 错误和警告信息 - 模型 API 调用记录 ## WebChat 使用 WebChat 是 OpenClaw 内置的浏览器聊天界面。它通过 WebSocket 直接与 Gateway 通信,无需连接任何外部渠道就能和智能体对话。 ### 访问 WebChat WebChat 集成在 Control UI 中,访问地址: ``` http://127.0.0.1:18789/ ``` 在仪表板界面中找到 WebChat 入口,或者直接通过聊天图标打开。 ### WebChat 的优势 相比通过 Telegram、WhatsApp 等渠道对话,WebChat 有几个独特优势: - **零配置**:不需要配置任何渠道,Gateway 启动后直接可用 - **低延迟**:本地 WebSocket 连接,响应速度最快 - **完整功能**:支持所有智能体功能,包括文件上传、代码高亮 - **调试友好**:可以直接在浏览器开发者工具中查看通信数据 ### 使用场景 WebChat 特别适合以下场景: - **本地开发测试**:快速测试智能体的回复效果 - **技能调试**:安装新技能后立即测试 - **配置验证**:修改配置后验证是否生效 - **演示展示**:向他人展示智能体的能力 ### WebChat 与渠道的区别 | 对比项 | WebChat | 外部渠道(Telegram 等) | |--------|---------|------------------------| | 配置要求 | 无需配置 | 需要 Bot Token 等 | | 访问方式 | 浏览器打开 | 对应 App | | 网络要求 | 本地访问 | 需要外网 | | 消息格式 | 完整支持 | 受渠道限制 | | 适用场景 | 开发测试 | 日常使用 | ## TUI 终端界面 如果你更喜欢在终端中操作,OpenClaw 提供了 TUI(Terminal User Interface)——一个终端内的聊天界面。 ### 启动 TUI ```bash openclaw tui ``` TUI 会在终端中打开一个交互式聊天界面,支持: - 多行输入 - 消息历史滚动 - 代码块高亮显示 - 快捷键操作 ### TUI 快捷键 | 快捷键 | 功能 | |--------|------| | `Enter` | 发送消息 | | `Shift+Enter` | 换行(多行输入) | | `Ctrl+C` | 退出 TUI | | `↑` / `↓` | 滚动消息历史 | ### 快速对话(不启动 TUI) 如果只想发送一条消息并获取回复,不需要启动 TUI: ```bash # 发送单条消息 openclaw agent --message "你好,帮我写一个 Hello World" # 从文件读取消息 openclaw agent --message "$(cat question.txt)" ``` ### TUI vs WebChat | 对比项 | TUI | WebChat | |--------|-----|---------| | 运行环境 | 终端 | 浏览器 | | 启动方式 | `openclaw tui` | 打开 URL | | 适合场景 | SSH 远程、服务器 | 本地开发、演示 | | 文件上传 | 不支持 | 支持 | | 代码高亮 | 基础支持 | 完整支持 | ## 远程访问仪表板 默认情况下,仪表板只能在本地访问(`127.0.0.1`)。如果你需要从其他设备访问,有以下几种方式。 ### 方式一:Tailscale(推荐) Tailscale 是最简单安全的远程访问方案。它创建一个加密的点对点网络,无需开放端口。 ```bash # 在服务器上安装 Tailscale curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up # 获取 Tailscale IP tailscale ip -4 # 输出类似:100.x.x.x ``` 然后在你的设备上也安装 Tailscale 并登录同一账号,就可以通过 Tailscale IP 访问: ``` http://100.x.x.x:18789/ ``` ### 方式二:SSH 隧道 如果你能 SSH 到服务器,可以用 SSH 隧道转发端口: ```bash # 在本地执行 ssh -L 18789:127.0.0.1:18789 user@your-server # 然后在本地浏览器打开 # http://127.0.0.1:18789/ ``` 这样仪表板的流量会通过 SSH 加密隧道传输,安全且无需开放端口。 ### 方式三:修改绑定地址 ⚠️ 不推荐在公网环境使用,除非配置了认证。 编辑 `~/.openclaw/openclaw.json`: ```json { "gateway": { "host": "0.0.0.0", "port": 18789 } } ``` 将 `host` 改为 `0.0.0.0` 后,仪表板会监听所有网络接口,可以从外部访问。 **务必同时配置认证**(见下一节),否则任何人都能访问你的仪表板。 ## 仪表板认证配置 当仪表板暴露到网络时,必须配置认证来保护访问。 ### Token 认证 最简单的认证方式,使用一个密钥 Token: ```json { "gateway": { "auth": { "type": "token", "token": "your-secret-token-here" } } } ``` 访问仪表板时需要在 URL 中携带 Token: ``` http://your-server:18789/?token=your-secret-token-here ``` ### 密码认证 使用用户名和密码: ```json { "gateway": { "auth": { "type": "password", "username": "admin", "password": "your-strong-password" } } } ``` 访问仪表板时会弹出登录框,输入用户名和密码即可。 ### 可信代理认证 如果你在 Nginx 等反向代理后面运行 Gateway,可以使用可信代理认证: ```json { "gateway": { "auth": { "type": "trusted-proxy", "trustedProxies": ["127.0.0.1"] } } } ``` 这种方式将认证交给反向代理处理(如 Nginx 的 Basic Auth)。 ### 生成安全 Token ```bash # 使用 openssl 生成随机 Token openssl rand -hex 32 # 或者使用 Node.js node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ``` ## 常见问题 ### 仪表板打不开 ```bash # 1. 检查 Gateway 是否在运行 openclaw gateway status # 2. 检查端口是否被占用 lsof -i :18789 # 3. 检查防火墙 sudo ufw status # 4. 尝试重启 Gateway openclaw gateway restart ``` ### WebChat 连接失败 WebChat 通过 WebSocket 连接 Gateway。如果连接失败: - 确认 Gateway 正在运行 - 检查浏览器控制台是否有 WebSocket 错误 - 如果通过反向代理访问,确认 Nginx 配置了 WebSocket 支持: ```nginx location / { proxy_pass http://127.0.0.1:18789; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } ``` ### 远程访问延迟高 - 优先使用 Tailscale,它会自动选择最优路径 - SSH 隧道的延迟取决于 SSH 连接质量 - 如果使用公网直连,确保服务器带宽充足 ## 小结 OpenClaw 提供了三种交互方式,适合不同场景: - **Control UI 仪表板**:Web 管理界面,查看状态、管理会话、监控渠道 - **WebChat**:浏览器聊天界面,零配置即可对话,适合开发测试 - **TUI**:终端聊天界面,适合 SSH 远程和服务器环境 远程访问推荐使用 Tailscale 或 SSH 隧道,安全且配置简单。如果需要公网访问,务必配置认证保护。 #WebChat #仪表板 #ControlUI #Web界面 #龙虾技能库