WebChat(Gateway WebSocket UI)
当前状态:macOS/iOS SwiftUI 聊天 UI 直接与 Gateway WebSocket 通信。
什么是 WebChat
- 一个用于 gateway 的原生聊天 UI(无嵌入式浏览器,无本地静态服务器)。
- 使用与其他频道相同的会话和路由规则。
- 确定性路由:回复始终返回到 WebChat。
快速开始
- 启动 gateway。
- 打开 WebChat UI(macOS/iOS 应用)或 Control UI 聊天标签。
- 确保 gateway 认证已配置(默认必须,即使在回环地址上也是如此)。
工作原理(行为)
- UI 连接到 Gateway WebSocket 并使用
chat.history、chat.send和chat.inject。 chat.history为稳定性做了大小限制:Gateway 可能会截断长文本字段、省略重型元数据,并用[chat.history omitted: message too large]替换过大的条目。chat.inject将助手备注直接附加到对话记录中,并广播到 UI(不触发 agent 运行)。- 被中止的运行可以保持部分助手输出在 UI 中可见。
- 当存在缓冲输出时,Gateway 将中止的部分助手文本持久化到对话历史中,并标记这些条目带有中止元数据。
- 历史记录始终从 gateway 获取(不监视本地文件)。
- 如果 gateway 不可达,WebChat 为只读模式。
Control UI agents tools 面板
- Control UI 的
/agentsTools 面板通过tools.catalog获取运行时目录,并将每个工具标记为core或plugin:<名称>(可选插件工具标记为optional)。 - 如果
tools.catalog不可用,面板回退到内置静态列表。 - 面板编辑 profile 和 override 配置,但有效的运行时访问仍遵循策略优先级(
allow/deny、每 agent 和 provider/channel 覆盖)。
远程使用
- 远程模式通过 SSH/Tailscale 隧道连接 gateway WebSocket。
- 你不需要运行单独的 WebChat 服务器。
配置参考
完整配置:配置
频道选项
WebChat 没有专用的 webchat.** 配置块。WebChat 使用下面的 gateway 端点 + 认证设置。
相关全局选项
| 配置项 | 说明 |
|---|---|
gateway.port、gateway.bind | WebSocket 主机/端口 |
gateway.auth.mode、gateway.auth.token、gateway.auth.password | WebSocket 认证(token/password) |
gateway.auth.mode: "trusted-proxy" | 为浏览器客户端提供反向代理认证(参阅 受信代理认证) |
gateway.remote.url、gateway.remote.token、gateway.remote.password | 远程 gateway 目标 |
session.** | 会话存储和主键默认值 |
