Пакеты и рантайм
Два вида пакетов
eva.kind | Что это | Точка входа |
|---|---|---|
skills | Набор навыков для чата, агентов и Студии | eva.tools[] в манифесте и defineSkill в коде |
background | Фоновый сервис | Экспорт main(ctx), опционально eva.widgets[] |
У пакета навыков есть области видимости eva.scopes: chat, agent, studio. Например, пакет только для агентов не появится в чате.
Агенты пакетами не являются. Это отдельный реестр флоу в базе: Флоу агентов.
Хранилище
package-store/<имя>/draft/ черновик, его правит Студия
package-store/<имя>/1.2.0/ опубликованная версия, неизменяемая
package-store/<имя>/1.3.0/Чат и агенты работают с активной версией. До первой публикации активной считается черновик.
Установка зависимостей
API сам является npm-реестром: пакеты @eva/* отдаёт из своей поставки, остальные зависимости проксирует на upstream из Админ → Настройки. Поэтому пакетам не нужен доступ в интернет, если корпоративный реестр доступен API.
Вызов навыка
Настройки пакета, общие и личные, сливаются в ctx.settings. Если обязательной личной настройки нет, ход ждёт, пока пользователь её заполнит.
Фоновые сервисы и виджеты
- Фоновый сервис запускается при публикации или кнопкой и живёт в Package-pool как отдельный процесс.
- Сбой процесса фиксируется как последняя ошибка, перезапуском управляет платформа.
- Сервис может запустить агента через
ctx.startAgentJob. - HTTP виджетов идёт через API:
/internal/bg-service/<пакет>/...для активной версии и/internal/bg-service-debug/<пакет>/...для debug-запуска черновика. - Логи фонового сервиса пишутся в файл в томе данных и видны в Студии.
Режимы запуска кода
EVA_PACKAGE_ISOLATE | Что происходит |
|---|---|
host | По умолчанию. Node-процесс в папке пакета |
secure-exec | Включается явно. Строгая изоляция кода |
stub | Устаревший режим для тестов |
Пакеты считаются доверенными: их ставит администратор. Главный механизм защиты от зависшего кода это таймаут и принудительное завершение процесса.