Провайдер модели внутри Agent
src_agent/model_runtime.py выполняет одну генерацию через HTTP/SSE провайдера.
Agent вызывает адаптер напрямую; отдельного LLM-сервиса и внутреннего RPC capture нет.
Для диагностики ASR сохранён nats.llm.<user_id>: его обработчик в Agent использует тот же адаптер и очередь.
Agent владеет состоянием запроса и исполнением инструментов; Gateway передаёт
команду Agent напрямую. Core в текущем пути отсутствует.
Один активный слот модели и три ожидающих запроса ограничены FairPool и NATS
pending buffers. Deadline из заголовков включает очередь. Отмена через
chat.agent.cancel.llm проверяет request/session/attempt и закрывает HTTP-вызов;
мгновенная остановка вычисления на внешнем GPU не гарантируется.
Провайдер OpenAI-compatible: VLLM_URL и VLLM_MODEL (по умолчанию
Qwen3.8-27B-FP8). Точный вход считается через /tokenize; бюджет — 32768 токенов.
При переполнении удаляется только необязательный кэш страницы, обязательный вход
сохраняется или отклоняется явно. Локальная загрузка tokenizer приложению не нужна.
enable_thinking:false сохраняется; скрытые рассуждения не публикуются.
Фактические вход, ответ провайдера и обработанный ответ отправляются в существующие диагностические каналы с request/generation ID и ограничениями размера. Ошибка диагностики не повторяет генерацию. Agent возвращает результат в тот же UI-канал. Полное время удалённого HTTP-вызова не обозначается временем работы GPU.
Запуск: python -m src_agent.main. Подключение задаётся CHAT_NATS_URL с
конфигурационным наследованием NATS_URL; subjects — NATS_LLM_SUBJECT,
NATS_EVENTS_SUBJECT и USER_ID. Health: chat.agent.health.llm — состояние адаптера и очереди; он не измеряет готовность GPU.
Исходники: сервис и ограниченная очередь, HTTP-провайдер, контракт. Старое описание Ollama/local и workflow доступно в истории.