Выполнение команды
Gateway проверяет доступ панели и передаёт команду в chat.internal.agent.widget через NATS. Agent остаётся единственным владельцем запроса: хранит квитанцию, выполняет цикл модели и инструментов, обрабатывает отмену и возвращает результат конкретной панели.
Адаптер модели находится в Agent. Одна общая очередь FairPool допускает один выполняющийся HTTP-вызов и три ожидающих; deadline включает ожидание. /tokenize проверяет фактический контекст. Совместимый диагностический nats.llm.<user_id> обслуживается той же очередью, но обычный Agent этот endpoint не вызывает. Модель и диагностика.
Один шаг диагностики — одна генерация с её generation_id и инструментами, связанными через tool_call_id. Порядок прихода пакетов не определяет принадлежность. Панель показывает фактический вход, публичное response_text, действия, результаты и конец шага; сырой ответ провайдера раскрывается отдельно. Скрытые рассуждения не публикуются. Подробности ограничены 2 МиБ на запрос, 8 МиБ на панель и 20 завершёнными запросами; пропуски обозначаются явно.
Core, Ruby workflow и отдельный LLM-сервис в текущем пути отсутствуют. Историческое описание: версия до консолидации.
Исходники: Agent, запрос, очередь и адаптер, ограничения выполнения, панель. Порядок замены старого LLM указан в поставке 2.5.