Skip to content

WebChat(Gateway WebSocket 聊天界面)

状态:macOS/iOS SwiftUI 聊天界面直接与 Gateway WebSocket 通信。

功能介绍

  • 原生 Gateway 聊天界面(无嵌入浏览器,无本地静态服务器)。
  • 使用与其他频道相同的会话和路由规则。
  • 确定性路由:回复始终返回给 WebChat。

快速开始

  1. 启动网关。
  2. 打开 WebChat UI(macOS/iOS 应用)或 Control UI 聊天标签。
  3. 确保 Gateway 认证已配置(即使在回环上也默认需要)。

工作原理(行为)

  • UI 连接到 Gateway WebSocket,使用 chat.historychat.sendchat.inject
  • chat.history 受大小限制以保证稳定性:Gateway 可能截断长文本字段,省略重型元数据,并将超大条目替换为 [chat.history omitted: message too large]
  • chat.inject 直接向转录追加助手注释并广播给 UI(无代理运行)。
  • 中止的运行可以在 UI 中保留部分助手输出可见。
  • 当缓冲输出存在时,Gateway 将中止的部分助手文本持久化到转录历史中,并用中止元数据标记这些条目。
  • 历史始终从网关获取(无本地文件监控)。
  • 若网关不可达,WebChat 为只读模式。

Control UI 代理工具面板

Control UI 的 /agents 工具面板有两个独立视图:

  • 当前可用(Available Right Now):使用 tools.effective(sessionKey=...) 显示当前会话运行时实际可使用的工具,包括核心、插件和频道自有工具。
  • 工具配置(Tool Configuration):使用 tools.catalog,专注于配置文件、覆盖和目录语义。

运行时可用性是会话范围的,同一代理切换会话可能改变当前可用列表。配置编辑器不代表运行时可用性;有效访问仍遵循策略优先级(allow/deny、每代理和提供商/频道覆盖)。

远程使用

  • 远程模式通过 SSH/Tailscale 隧道传输 Gateway WebSocket。
  • 无需运行独立的 WebChat 服务器。

配置参考(WebChat)

完整配置:配置

频道选项:

  • 无专用 webchat.* 块。WebChat 使用下方的网关端点 + 认证设置。

相关全局选项:

  • gateway.portgateway.bind:WebSocket 主机/端口。
  • gateway.auth.modegateway.auth.tokengateway.auth.password:WebSocket 认证(token/密码)。
  • gateway.auth.mode: "trusted-proxy":浏览器客户端的反向代理认证(见 Trusted Proxy Auth)。
  • gateway.remote.urlgateway.remote.tokengateway.remote.password:远程网关目标。
  • session.*:会话存储和主键默认值。