WebChat 是 Gateway 的原生聊天 UI(macOS/iOS SwiftUI),直接连接 Gateway WebSocket,无需嵌入浏览器或本地静态服务器。

核心特性

  • 使用与其他频道相同的 session 和路由规则
  • 确定性路由:回复始终返回 WebChat
  • 历史记录始终从 Gateway 获取(无本地文件监听)
  • Gateway 不可达时,WebChat 变为只读

快速启动

  1. 启动 Gateway
  2. 打开 WebChat UI(macOS/iOS 应用)或 Control UI 聊天标签
  3. 确保配置了有效的 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、覆盖和目录语义

相关页面