---
read_when:
    - Налагодження або налаштування доступу до WebChat
summary: Статичний хост loopback WebChat і використання Gateway WS для UI чату
title: WebChat
x-i18n:
    generated_at: "2026-04-23T23:09:47Z"
    model: gpt-5.4
    provider: openai
    source_hash: 2bfd1d81f19854aa05be90230cb849c68c045f416b576c34fd453606f5f1c285
    source_path: web/webchat.md
    workflow: 15
---

Статус: чат-UI SwiftUI для macOS/iOS напряму спілкується з Gateway WebSocket.

## Що це таке

- Native-чат UI для gateway (без вбудованого браузера і без локального статичного сервера).
- Використовує ті самі сесії та правила маршрутизації, що й інші канали.
- Детермінована маршрутизація: відповіді завжди повертаються до WebChat.

## Швидкий старт

1. Запустіть gateway.
2. Відкрийте UI WebChat (застосунок macOS/iOS) або вкладку чату в Control UI.
3. Переконайтеся, що налаштовано дійсний шлях auth gateway (типово спільний секрет,
   навіть на loopback).

## Як це працює (поведінка)

- UI підключається до Gateway WebSocket і використовує `chat.history`, `chat.send` та `chat.inject`.
- `chat.history` обмежено для стабільності: Gateway може обрізати довгі текстові поля, пропускати важкі метадані та замінювати надто великі записи на `[chat.history omitted: message too large]`.
- `chat.history` також нормалізується для відображення: inline-теги директив доставки,
  такі як `[[reply_to_*]]` і `[[audio_as_voice]]`, XML payload-и викликів інструментів у plain-text
  (включно з `<tool_call>...</tool_call>`,
  `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
  `<function_calls>...</function_calls>` і обрізаними блоками викликів інструментів), а також
  витіклі ASCII/full-width токени керування моделлю прибираються з видимого тексту,
  а записи помічника, у яких увесь видимий текст складається лише з точного silent-
  token `NO_REPLY` / `no_reply`, пропускаються.
- `chat.inject` додає примітку помічника безпосередньо до транскрипту й транслює її в UI (без запуску агента).
- Перервані запуски можуть залишати частковий вивід помічника видимим у UI.
- Gateway зберігає частковий текст помічника з перерваних запусків в історії транскрипту, коли існує буферизований вивід, і позначає ці записи метаданими про переривання.
- Історія завжди отримується з gateway (без локального відстеження файлів).
- Якщо gateway недосяжний, WebChat працює лише для читання.

## Панель інструментів агентів у Control UI

- Панель Tools у `/agents` Control UI має два окремі подання:
  - **Доступно прямо зараз** використовує `tools.effective(sessionKey=...)` і показує, що поточна
    сесія справді може використовувати під час runtime, включно з core-, plugin- і channel-власними інструментами.
  - **Конфігурація інструментів** використовує `tools.catalog` і залишається зосередженою на профілях, перевизначеннях і
    семантиці каталогу.
- Доступність під час runtime має scope сесії. Перемикання сесій на тому самому агенті може змінювати
  список **Доступно прямо зараз**.
- Редактор config не означає доступність під час runtime; ефективний доступ і далі визначається пріоритетом політик
  (`allow`/`deny`, перевизначеннями для окремого агента та провайдера/каналу).

## Віддалене використання

- Віддалений режим тунелює Gateway WebSocket через SSH/Tailscale.
- Окремий сервер WebChat запускати не потрібно.

## Довідник із конфігурації (WebChat)

Повна конфігурація: [Конфігурація](/uk/gateway/configuration)

Параметри WebChat:

- `gateway.webchat.chatHistoryMaxChars`: максимальна кількість символів для текстових полів у відповідях `chat.history`. Коли запис транскрипту перевищує цей ліміт, Gateway обрізає довгі текстові поля й може замінювати надто великі повідомлення placeholder-ом. Клієнт також може надсилати `maxChars` для окремого запиту, щоб перевизначити це типове значення для одного виклику `chat.history`.

Пов’язані глобальні параметри:

- `gateway.port`, `gateway.bind`: хост/порт WebSocket.
- `gateway.auth.mode`, `gateway.auth.token`, `gateway.auth.password`:
  auth WebSocket зі спільним секретом.
- `gateway.auth.allowTailscale`: браузерна вкладка чату в Control UI може використовувати заголовки ідентичності Tailscale
  Serve, коли це ввімкнено.
- `gateway.auth.mode: "trusted-proxy"`: auth через reverse proxy для браузерних клієнтів за proxy з урахуванням ідентичності **без loopback** (див. [Trusted Proxy Auth](/uk/gateway/trusted-proxy-auth)).
- `gateway.remote.url`, `gateway.remote.token`, `gateway.remote.password`: ціль віддаленого gateway.
- `session.*`: зберігання сесій і типові значення основного ключа.
