WebChat(Gateway WebSocket UI)

目前狀態:macOS/iOS SwiftUI 聊天 UI 直接與 Gateway WebSocket 通訊。

簡介

  • 原生的 gateway 聊天 UI(不使用嵌入式瀏覽器,也不需要本機靜態伺服器)。
  • 使用與其他頻道相同的工作階段和路由規則。
  • 確定性路由:回覆一定回到 WebChat。

快速開始

  1. 啟動 gateway。
  2. 開啟 WebChat UI(macOS/iOS 應用程式)或控制台 UI 的聊天分頁。
  3. 確認已設定 gateway 驗證(預設為必要,即使在 loopback 上)。

運作方式

  • UI 連接到 Gateway WebSocket,使用 chat.historychat.sendchat.inject
  • chat.history 有大小限制以確保穩定:Gateway 可能裁切長文字欄位、省略大量 metadata,並以 [chat.history omitted: message too large] 取代過大的條目。
  • chat.inject 直接在轉錄中附加一則助理備註並廣播到 UI(不觸發 agent 執行)。
  • 中止的回合可在 UI 中保留部分助理輸出。
  • 當存在已緩衝的輸出時,Gateway 會將中止的部分助理文字持久化到轉錄歷史,並以中止 metadata 標記這些條目。
  • 歷史記錄始終從 gateway 擷取(不監看本機檔案)。
  • gateway 無法連線時,WebChat 為唯讀模式。

控制台 UI 的 agent 工具面板

  • 控制台 UI 的 /agents 工具面板透過 tools.catalog 擷取 runtime 目錄,並將每個工具標記為 coreplugin:<id>(可選的外掛工具另標 optional)。
  • 如果 tools.catalog 不可用,面板退回到內建的靜態清單。
  • 面板編輯的是 profile 和覆寫設定,但實際的 runtime 存取仍遵循策略優先順序(allow/deny、按 agent 及 provider/頻道覆寫)。

遠端使用

  • 遠端模式透過 SSH/Tailscale 建立 gateway WebSocket 隧道。
  • 不需要另外執行 WebChat 伺服器。

設定參考(WebChat)

完整設定:設定

頻道選項:

  • 沒有專屬的 webchat.* 區塊。WebChat 使用以下 gateway 端點 + 驗證設定。

相關全域選項:

  • 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:遠端 gateway 目標。
  • session.*:工作階段儲存與主要金鑰預設值。