Перейти к содержанию

Гибридный режим

В гибридном режиме локальный core подключается к корпоративному серверу: один UI объединяет локальные и удалённые проекты, а LLM-запросы идут через сервер — ключи, модели и аудит остаются на нём.

Зачем это нужно

  • Файлы остаются локально


    Локальные сессии работают с вашими файлами и движком. Данные не нужно выгружать на сервер, чтобы начать работу.

  • Ключи и аудит — на сервере


    Все обращения к моделям идут через корпоративный сервер: ключи провайдеров не покидают его, а каждый запрос попадает в аудит.

  • Один интерфейс на два мира


    Локальные и удалённые проекты и сессии видны рядом, с пометкой, где живёт каждый из них.

Как это работает

Машина пользователя                          Корпоративный сервер
┌────────────────────────────┐   HTTPS       ┌──────────────────────────┐
│  UI (localhost)            │               │  backend (API Hub)       │
│    └─ synth-core (:4300)   │ ───────────►  │   ├─ OIDC + RBAC         │
│         ├─ локальный мир   │   /api/v2/*   │   ├─ LLM Proxy + Gateway │
│         └─ remote-клиент   │ ◄───────────  │   ├─ центральные ключи   │
└────────────────────────────┘   события     │   └─ удалённые сессии    │
                                             └──────────────────────────┘
  • Локальный core — единая точка входа. Он агрегирует оба мира и маршрутизирует запросы по тому, где живёт сессия или проект.
  • Удалённые сессии исполняются сервером, локальные — локально.
  • LLM-запросы локальных сессий тоже идут через сервер — в гибридном режиме локальные провайдеры отключаются, работают только централизованные.
  • События удалённых сессий транслируются на локальный UI в реальном времени.

Быстрый запуск

Из клонированного репозитория удобно запустить готовый скрипт — он собирает пакеты и поднимает локальный core с нужными параметрами подключения:

./scripts/hybrid.sh [SERVER_URL]
./scripts/hybrid.sh https://synth.example.com

UI откроется с уже подставленным адресом — останется войти логином и паролем.

./scripts/hybrid.sh

Локальный core стартует без привязки к серверу, а адрес вводится прямо в форме входа.

Ручной запуск

Если вы установили Synth из npm, подключение делается флагом --connect:

synth serve --connect https://synth.example.com

При необходимости можно явно указать параметры аутентификации — они нужны как запасной вариант, если сервер не отдаёт их сам:

synth serve --connect https://synth.example.com \
  --oidc-issuer https://idp.example.com/realms/synth \
  --oidc-client-id synth-cli

Для автоматизации доступен вход по токену: добавьте --token <key>. Запуск без известного адреса — с флагом --no-auto-profile: сервер поднимется нейтрально, а адрес и учётные данные вводятся в UI.

Старт не блокируется

Локальный core поднимается сразу, без интерактивных шагов в консоли. Если сохранённые учётные данные есть, вход выполняется автоматически; если нет — вы входите в интерфейсе.

Вход

Вход в гибридном режиме — обычные логин и пароль: личность и роли приходят с сервера и становятся вашей локальной сессией. Поле «Адрес сервера» доступно всегда, поэтому при необходимости можно сменить сервер или ввести другой адрес.

  • Сохранённые профили серверов. UI предзаполняет адрес последнего использованного сервера и предлагает известные варианты.
  • Выход отключает текущий сервер и удаляет его учётные данные; список известных серверов при этом сохраняется.

Что централизуется

Область Где находится в гибриде
Ключи провайдеров Только на сервере
Модели Централизованный список сервера
Аудит LLM-запросов На сервере, для локальных и удалённых сессий
Ограничение частоты запросов На сервере
Локальные файлы и workspace Остаются на вашей машине

Агрегация локального и удалённого

Локальные и удалённые сущности показываются в общем списке и помечаются источником: локально или удалённо. Запросы автоматически уходят в нужный мир, а изменения удалённых объектов подтверждаются в интерфейсе.

Сервер недоступен

Если корпоративный сервер недоступен, локальный мир продолжает работать — удалённые проекты и сессии временно неактивны, а в интерфейсе появляется предупреждение. После восстановления связи подключение возвращается автоматически.

Обмен проектами: publish и fork

Проект можно перенести между мирами:

# локальный проект → корпоративный сервер
synth project publish <id> --remote

# удалённый проект → локально
synth project fork <id> --local

Вместе с проектом переносятся его сессии и файлы рабочего каталога.

Что понадобится

  • Node.js >= 22 (и pnpm при запуске через ./scripts/hybrid.sh).
  • HTTPS-доступ к корпоративному серверу.
  • Учётная запись на сервере или API-токен для автоматизации.

Что дальше