Модель данных
Основные сущности EVA и связи между ними: пользователи и доступ, чаты и запуски, реестры моделей, MCP, пакетов и агентов, файлы и учёт расхода.
Доступ
| Сущность | Смысл |
|---|---|
| Пользователь | Логин, имя, статус, роль, группа, личные лимиты |
| Роль | Матрица прав, лимиты на пользователя, стандартная группа |
| Группа | Доступ к MCP и навыкам, тенанты MCP, сопоставление с группами LDAP |
| API-ключ | Токен внешнего клиента и список MCP для шлюза |
Чат
| Сущность | Смысл |
|---|---|
| Сессия чата | Долгий чат: владелец, название, модель, ассистент, пространство |
| Пространство | Рабочая папка, общая для нескольких чатов |
| Ход | Один запрос пользователя и вся активность модели в ответ |
| Запуск | Выполнение хода в Runtime: слот, статус, расход |
| Сообщение | Запись транскрипта: блоки интерфейса и работа инструментов |
| Файл сессии | Путь в дереве чата или пространства и метка: загрузка, рабочий, артефакт |
Реестры
| Реестр | Что хранит |
|---|---|
| Провайдеры и модели | Адрес, зашифрованный ключ, режим API, окно контекста, цены, совместимость |
| Источники MCP | Транспорт, адрес или команда, флаги, статус проверки безопасности, отпечаток инструментов |
| Правила | Дерево правил с порядком и флагом включения |
| Сценарии | Личные и общие промпты |
| Ассистенты | Промпт, категория, запреты MCP и навыков |
| Пакеты | Вид, версии, активная версия, режим распространения, состояние фонового сервиса |
| Реестр настроек | Значения настроек пакетов и агентов: общие и личные, секреты в зашифрованном виде |
| Агенты | Граф флоу и ревизия, запуски, расписания, вебхуки |
| Доски виджетов | Доски пользователя и раскладка виджетов |
Учёт
Журнал расхода неизменяемый. Каждая запись связана с пользователем, чатом и запуском, если они есть, и хранит модель, токены по типам и стоимость на момент записи. Запросы внешнего API записываются без чата.
Инварианты
- Запуск выполняется только от имени известного пользователя.
- Инструмент вызывается только через проверенный путь с учётом прав и группы.
- Состояние чата в базе первично. Закрепление чата за воркером восстанавливается после сбоя.