Skip to content

Путь сообщения ​

Что происходит с момента, когда пользователь нажал отправку, до момента, когда ответ появился на экране и попал в историю.

Схема ​

Подробно по шагам ​

1. Подготовка текста ​

К тексту пользователя подмешивается содержимое выбранных навыков и список приложенных файлов. Если после этого текст оказался пустым, запрос отклоняется.

2. Проверки ​

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

Одновременно в одном чате может выполняться только один запуск. Второй запрос в тот же чат будет отклонён.

3. Проверка модели ​

Модель должна быть включена, её провайдер тоже включён, и у провайдера должен быть сохранён ключ. Ключ расшифровывается только в этот момент.

4. Поток на браузер ​

API открывает поток событий в браузер. Если пользователь закрыл вкладку, платформа продолжает получать ответ от Runtime и сохранять его в историю. Ответ не теряется.

5. Сжатие истории ​

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

6. Сохранение сообщения ​

Сообщение пользователя записывается в историю. Если чат ещё называется «Новый чат», он получает название по началу первого сообщения.

7. Сбор задачи ​

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

8. Маскирование персональных данных ​

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

9. Цикл общения с моделью ​

Runtime поднимает рабочий процесс и запускает цикл. Один проход цикла это один шаг. Перед каждым шагом процесс занимает место в общем пуле, а после шага освобождает его. Поэтому длинный многошаговый ответ не блокирует остальных пользователей.

Цикл заканчивается, когда модель ответила текстом и не попросила ни одного инструмента. Предел жёсткий: 60 шагов на один запуск, изменить его настройкой нельзя.

10. Вызовы инструментов ​

Инструмент получает настоящие данные, а не метки: платформа подставляет исходные значения в аргументы вызова. Обратно результат приходит уже с метками, поэтому модель по-прежнему не видит персональных данных. Сообщения об ошибках инструментов тоже маскируются.

11. Завершение ​

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

Отмена ​

Пользователь может остановить запуск. API прерывает своё соединение с Runtime, отправляет команду отмены и помечает запуск как отменённый. Runtime останавливает рабочий процесс и освобождает место в пуле.

Ограничения по нагрузке ​

ОграничениеГде настраивается
Сколько шагов может идти одновременно на всю платформуРаздел администрирования, Рантайм
Сколько рабочих процессов можно поднятьРаздел администрирования, Рантайм
Сколько живых сессий держит один процессРаздел администрирования, Рантайм
Через сколько простоя выгружается сессия и завершается процессРаздел администрирования, Рантайм
Предел шагов в одном запускеНе настраивается, всегда 60

Документация платформы EVA