WebChat 是 Gateway 的原生聊天 UI(macOS/iOS SwiftUI),直接连接 Gateway WebSocket,无需嵌入浏览器或本地静态服务器。
核心特性
- 使用与其他频道相同的 session 和路由规则
- 确定性路由:回复始终返回 WebChat
- 历史记录始终从 Gateway 获取(无本地文件监听)
- Gateway 不可达时,WebChat 变为只读
快速启动
- 启动 Gateway
- 打开 WebChat UI(macOS/iOS 应用)或 Control UI 聊天标签
- 确保配置了有效的 Gateway 认证路径(默认共享密钥)
WebSocket 方法
| 方法 | 说明 |
|---|---|
chat.history | 获取历史记录(有界,防止大 session 阻塞渲染) |
chat.send | 发送消息(非阻塞,立即返回 { runId, status: "started" }) |
chat.inject | 直接追加助手注释到转录(无 agent 运行) |
chat.abort | 中止活跃运行 |
历史记录显示规范化
chat.history 会过滤以下内容:
- 运行时 OpenClaw 上下文和信封包装器
- 内联投递指令标签(
reply_to_*、audio_as_voice) - 纯文本工具调用 XML payload
- 泄露的 ASCII/全角模型控制 token
- 整个可见文本仅为
NO_REPLY/no_reply的助手条目 isReasoning: true的推理 payload
配置参考
{
gateway: {
webchat: {
chatHistoryMaxChars: 50000 // 历史记录文本字段最大字符数
}
}
}相关全局选项:
gateway.port、gateway.bind:WebSocket 主机/端口gateway.auth.mode、gateway.auth.token:共享密钥认证gateway.auth.allowTailscale:允许 Tailscale Serve 身份头
远程使用
远程模式通过 SSH/Tailscale 隧道 Gateway WebSocket,无需单独运行 WebChat 服务器。
Control UI 工具面板
- Available Right Now:使用
tools.effective(sessionKey=...)显示当前 session 实际可用工具 - Tool Configuration:使用
tools.catalog专注于 profile、覆盖和目录语义
相关页面
- web-control-ui — Control UI 详细功能
- web-dashboard — Gateway 仪表板