Сервисы платформы
Из каких процессов состоит EVA, за что отвечает каждый, как они общаются между собой и где хранят данные. Для разработчиков и тех, кто сопровождает платформу.
EVA делится на плоскость управления и плоскость выполнения. API хранит конфигурацию и состояние и решает, кому что можно. Runtime и Package-pool выполняют работу: ходы чата, вызовы моделей, инструменты и код пакетов.
API
Пограничный сервис и плоскость управления. Всё, что приходит снаружи, проходит через него.
- Вход: локальный и через LDAP, сессии, API-ключи, права по ролям.
- Хранение: пользователи, роли, группы, провайдеры, модели, MCP, правила, сценарии, ассистенты, агенты, пакеты, настройки, журнал расхода.
- Чат: создание ходов, проксирование потока событий от Runtime в браузер по SSE, файлы чатов.
- Пакеты: реестр, черновики и версии, установка зависимостей через собственный npm-реестр
@eva/*, прокси виджетов на/internal/bg-service/<пакет>/. - Агенты: запуски, вебхуки, расписания. Планировщик работает внутри API.
- Внешние интерфейсы: OpenAI-совместимый
/v1, MCP-шлюз/mcp, документация OpenAPI на/api/docs. - Раздача собранного веб-интерфейса в продакшене.
Runtime
Плоскость выполнения ходов чата и запусков агентов.
- Принимает запуск от API, берёт слот ёмкости, ставит в очередь, если слотов нет.
- Форкает воркеры и закрепляет за ними чаты. Воркер держит соединения с MCP этого чата.
- Выполняет цикл модели: запрос, вызовы инструментов, повтор до ответа.
- Встроенные инструменты: файлы пространства, правила, формы, дата и время,
download_url,upload_url,clear_context. - Отдаёт канонические события: начало и конец запуска, текст, рассуждения, вызовы инструментов, расход токенов, артефакты.
Package-pool
Отдельный процесс для кода пакетов.
- Вызывает навыки пакетов по запросу Runtime.
- Держит долгоживущие процессы фоновых сервисов и проксирует к ним HTTP виджетов.
- Режим запуска кода задаётся
EVA_PACKAGE_ISOLATE: по умолчаниюhost, строгая изоляцияsecure-execвключается явно.
Подробнее: Пакеты и рантайм.
Хранилища
| Хранилище | Что там |
|---|---|
| PostgreSQL | Вся конфигурация и состояние: пользователи, чаты, сообщения, запуски, реестры, журнал расхода, ёмкость |
Том apps/api/.data | Файлы чатов и пространств, хранилище пакетов, черновики, рабочие папки пакетов, артефакты агентов, логи фоновых сервисов |
Одного тома на /app/apps/api/.data достаточно для всех файлов платформы.
Проверка живости
У каждого процесса есть GET /healthz. Сводная картина, включая воркеры и очередь, видна в Админ → Рантайм.