Восемь секунд — это не «модель думает». Это сумма шести участков, из которых на саму модель приходится две трети, а на всё остальное — треть. И главная неприятность в том, что самый большой участок сократить почти нельзя: ответ длиной 300 токенов при скорости 60 токенов в секунду пишется 5 секунд, и это физика, а не настройка.

Зато его можно начать показывать раньше. Разница между «человек ждёт 8 секунд пустого экрана» и «человек видит первое слово через 3 секунды и дальше читает по мере появления» не стоит почти ничего и меняет восприятие сервиса сильнее, чем любая замена модели. Именно поэтому разговор о скорости надо начинать не с вопроса «какая модель быстрее», а с раскладки по участкам.

Дальше — из чего складываются восемь секунд в модельном примере; какие нормы действуют в чате, мессенджере и голосе и почему их нельзя сравнивать; четыре приёма с ценой и эффектом каждого; почему обращение к собственной 1С регулярно оказывается самым медленным звеном; и что записать в требования, чтобы скорость была проверяемым параметром, а не пожеланием.

Из чего складываются восемь секунд

Вводные модельного примера: чат-агент на сайте оптовой компании, база из 380 документов, поток 6 000 обращений в месяц. На типовой вопрос «где мой заказ и когда отгрузка» система ищет фрагменты в базе регламентов, отбирает пять лучших, отдельно ходит в 1С за статусом заказа и пишет ответ на 300 токенов. Скорость генерации — 60 токенов в секунду, это рабочий ориентир для облачной модели на сентябрь 2026.

УчастокСекундДоляКто на это влияет
Сеть и очередь на входе0,23 %хостинг, квота у провайдера
Поиск по базе: векторный и текстовый одновременно0,45 %размер базы, тип хранилища
Переранжирование: 20 кандидатов сжимаются до 5 фрагментов0,56 %настройка поиска
Вызов 1С за статусом заказа1,215 %ваша учётная система, не подрядчик
Ожидание первого токена от модели0,79 %длина запроса, загрузка провайдера
Написание ответа: 300 токенов при 60 токенах в секунду5,062 %длина ответа, класс модели
Всего до полного ответа8,0100 %
схема процессаlatentnost-otveta-ii-agenta--01
Поток данных чат-агента по шести участкам: от вопроса до ответа за 8,0 секунды

Горизонтальная схема потока данных слева направо из восьми блоков со стрелками: «Вопрос клиента» → «Сеть и очередь 0,2 с» → «Поиск по базе 0,4 с» → «Переранжирование 20 → 5 фрагментов, 0,5 с» → «Вызов 1С за статусом заказа, 1,2 с» → «Ожидание первого токена 0,7 с» → «Написание ответа 300 токенов, 5,0 с» → «Ответ клиенту». Ширина блоков пропорциональна времени, последний блок заметно шире остальных вместе взятых и выделен штриховкой. Под схемой шкала времени от 0 до 8 секунд с двумя отметками: «3,0 с — здесь появляется первое слово при потоковой выдаче» и «8,0 с — полный ответ». Чертёжный стиль, все подписи по-русски.

Ширина блока пропорциональна времени: последний участок занимает больше, чем пять предыдущих вместе

Из таблицы видно то, что обычно и оказывается неожиданностью: на модель приходится 71 % задержки, но почти всё это — не размышление, а печать. Ожидание первого токена — 0,7 секунды, дальше идёт равномерная выдача слов. Значит, любые попытки «взять модель побыстрее» упираются в число выходных токенов, а не в её класс. Ответ вдвое короче пишется вдвое быстрее, и это единственный способ реально сократить пять секунд.

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

Нормы по каналам: где секунда, а где минута

Одной нормы «быстро» не существует — терпение читателя определяется каналом, а не техникой. В телефонном разговоре пауза дольше секунды читается как обрыв связи; в переписке в мессенджере десять секунд задержки не заметит никто, потому что человек всё равно отложил телефон.

КаналЧто человек должен увидеть первымЦелевое времяПорог, за которым уходят
Голосовой роботпервый звук ответамедиана меньше 1 с1 с
Чат на сайтепервое слово ответадо 3 с8–10 с
Мессенджер: MAX, Telegramполный ответдо 20 соколо 1 минуты
Почта и заявки с формыписьмо с ответом1–5 минутчасы
Фоновая обработка: ночная сверка, разбор архиваничего, работает без зрителяминуты и часынет
графикlatentnost-otveta-ii-agenta--02
Нормы времени ответа по каналам: от 1 секунды в голосе до минут в почте

Горизонтальный график-диапазон с логарифмической осью времени от 0,1 секунды до 1 часа. Пять полос сверху вниз: «Голосовой робот — до 1 с», «Чат на сайте, первое слово — до 3 с», «Мессенджер, полный ответ — до 20 с», «Почта — 1–5 минут», «Фоновая обработка — минуты и часы». Каждая полоса имеет светлую часть «норма» и затемнённый хвост «порог, за которым уходят». Поверх полосы чата вертикальная выделенная отметка «8,0 с — наш пример без потоковой выдачи», она попадает в затемнённую зону. Чертёжный стиль, все подписи по-русски.

Между голосом и почтой — три порядка величины; общей нормы «быстро» не существует
Средняя задержка врёт, смотрите на 95-й процентиль

Средняя по журналу за неделю почти всегда выглядит прилично: её вытягивают вниз короткие ответы и попадания в кэш. Уходят же люди не от средней, а от своего конкретного случая. Рабочий показатель — 95-й процентиль: время, в которое укладываются 95 обращений из 100. В нашем примере средняя 8,0 секунды, а 95-й процентиль — около 14, потому что часть запросов ждёт медленного ответа учётной системы. Именно эту цифру и надо ставить в требования.

Четыре способа ускорить, не меняя модель

Все четыре работают с участками, а не с провайдером. Ни один не требует смены модели, и ни один не ухудшает ответы — при условии, что после каждого изменения проводится замер на контрольных вопросах, а не проверка на глаз.

  1. 1
    Потоковая выдача ответа — 8 часов, 24 000 ₽

    Система отдаёт слова по мере их появления, а не целиком в конце. Полное время не меняется вообще: было 8,0 секунды, стало 8,0. Меняется то, что человек ждёт пустого экрана 3,0 секунды вместо 8,0. Это самое дешёвое улучшение из четырёх и единственное, которое ничего не ломает; если его нет в вашем чате — начинать надо с него.

  2. 2
    Порог отсечения фрагментов — 12 часов, 36 000 ₽

    Вместо фиксированных пяти фрагментов в запрос идёт от одного до пяти по релевантности, в среднем 3,2. Запрос худеет с 3 800 до 2 936 токенов, ожидание первого токена падает с 0,7 до 0,55 секунды, переранжирование — с 0,5 до 0,35. Побочный эффект приятнее основного: короче запрос — меньше счёт за токены, там этот же приём даёт 3 110 ₽ в месяц.

  3. 3
    Витрина данных вместо прямого вызова 1С — 20 часов, 60 000 ₽

    Агент ходит не в боевую базу, а в отдельную таблицу-витрину, которая обновляется по событию отгрузки, плюс кэш справочных ответов на 60 секунд и жёсткий таймаут 1,5 секунды. Участок сжимается с 1,2 до 0,3 секунды, а главное — исчезает хвост в 6–15 секунд на закрытии месяца.

  4. 4
    Тяжёлые запросы — на отдельную ветку, 6 часов, 18 000 ₽

    Классификатор на младшей модели стоит 0,023 ₽ за обращение и решает, нужна ли развёрнутая проверка. Восемь процентов запросов уходят в ветку, где ответ занимает полминуты и человеку показывают статус ожидания; остальные 92 % не платят за это своими секундами.

УчастокБылоСтало
Сеть и очередь на входе0,2 с0,2 с
Поиск по базе0,4 с0,4 с
Переранжирование0,5 с0,35 с
Вызов учётной системы1,2 с0,3 с
Ожидание первого токена0,7 с0,55 с
До первого слова3,0 с1,8 с
Написание ответа5,0 с5,0 с
Полный ответ8,0 с6,8 с
сравнениеlatentnost-otveta-ii-agenta--03
До и после ускорения: полный ответ 8,0 против 6,8 секунды, первое слово 8,0 против 1,8

Две горизонтальные полосы одинаковой шкалы, ось в секундах от 0 до 8. Верхняя подписана «Как настроено по умолчанию»: сплошная полоса длиной 8,0 с, метка «первое слово» стоит в самом конце, на отметке 8,0. Нижняя подписана «После четырёх приёмов»: полоса длиной 6,8 с, метка «первое слово» стоит на отметке 1,8 и выделена, оставшаяся часть полосы заштрихована подписью «текст появляется по мере написания». Между полосами фигурная скобка с подписью «6,2 секунды пустого экрана, которых больше нет». Внизу сноска «46 часов работы, 138 000 ₽». Чертёжный стиль, подписи по-русски.

Полный ответ почти не изменился — изменилось то, сколько человек смотрит на пустой экран
Ускорение чат-агента: 46 часов работы при ставке 3 000 ₽/час
Потоковая выдача ответа: 8 часов24 000 ₽
Порог отсечения фрагментов, 5 → 3,2 в среднем: 12 часов36 000 ₽
Витрина данных и кэш справочников вместо прямого вызова 1С: 20 часов60 000 ₽
Маршрутизация тяжёлых запросов в отдельную ветку: 6 часов18 000 ₽
Возврат: разбор одного брошенного обращения оператором, 12 минут по 700 ₽/час140 ₽
Нужно вернуть 82 обращения в месяц из 6 000, это 1,4 % потока11 480 ₽ в месяц
Итого138 000 ₽ разово против 137 760 ₽ возврата за год. Порог окупаемости — 1,4 % потока

Порог в 1,4 % проверяется по своему журналу за час: возьмите диалоги, где последняя реплика клиента осталась без продолжения, и посчитайте, сколько из них оборвалось на ожидании. Меньше 82 в месяц — берите одну потоковую выдачу за 24 000 ₽ и вернитесь к остальному позже. Отдельно считается кэш готовых ответов: он снимает четверть обращений вообще, отдавая их за 0,2 секунды.

Почему ваша же 1С оказывается самым медленным звеном

Пока ответ приходит целиком, вызов учётной системы занимает 1,2 секунды из 8,0 — 15 %, на них никто не смотрит. Как только включена потоковая выдача, картина переворачивается: человек ждёт 3,0 секунды до первого слова, и 1,2 из них — это ваша 1С, то есть 40 % реального ожидания. Самый крупный кусок из тех, что вообще можно сократить.

1,2 секунды — это медиана, а не худший случай

Учётная система живёт своей жизнью: закрытие месяца, регламентные задания, чужой тяжёлый отчёт, блокировка записи. Тот же вызов, который обычно идёт 1,2 секунды, в такие моменты уходит на 6–15 секунд, и агент честно ждёт его, потому что ему так велели. Для клиента это выглядит как «бот завис в понедельник утром» — и лечится это не ускорением, а таймаутом и заранее оговорённым поведением при его срабатывании.

  • Витрина вместо боевой базы. Отдельная таблица со статусами, остатками и ценами, которая обновляется по событию. Агент читает её, а не создаёт нагрузку на 1С в час пик.
  • Кэш справочных ответов на 60 секунд. Часы работы, реквизиты, условия доставки за минуту не меняются. Повторный вопрос закрывается без обращения к учётной системе вообще.
  • Таймаут и явная деградация. Полторы секунды на ответ; не успел — агент говорит «статус смотрю отдельно, отвечу в этом же диалоге» и продолжает разговор. Молчащий агент хуже агента, который признался, что ждёт.
  • Отдельный пул соединений и своя квота. Агент не должен конкурировать за подключения с ночной выгрузкой. Смежная тема — лимиты API и что происходит при их превышении: очередь на стороне учётной системы выглядит точно так же, как медленный ответ.

Что записать в требования

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

  1. 1Два числа на каждый канал: время до первого слова и время до полного ответа. Для чата на сайте — 3 и 10 секунд, для мессенджера — 5 и 20, для голоса — медиана до первого звука меньше 1 секунды.
  2. 2Замер по 95-му процентилю, а не по средней, на выборке не меньше 500 обращений подряд. Средняя прячет ровно те случаи, из-за которых люди уходят.
  3. 3Поведение при превышении описано явно: показать статус ожидания, отдать частичный ответ, перевести на оператора или ответить позже в том же диалоге. Молчание — не вариант поведения, а его отсутствие.
  4. 4Таймаут на каждый внешний вызов и на вызов модели, с указанием, что происходит после его срабатывания. Без этого один медленный отчёт в 1С останавливает весь канал.
  5. 5Состав журнала: на каждое обращение пишется время по участкам отдельно — поиск, переранжирование, внешние вызовы, ожидание первого токена, генерация. Без этих полей ускорение превращается в перебор гипотез вслепую.

Когда за скорость браться не надо

Ускорение — инженерная работа со своей ценой, и есть сценарии, где она заведомо не вернётся. Правильное решение в них — оставить как есть и заняться тем, что действительно мешает.

  • Сценарий фоновый. Ночная сверка реестров, разбор архива, подготовка карточек к утру — здесь зрителя нет, и разница между 8 и 30 секундами на операцию не стоит ни рубля.
  • Задержка не измерена. Пока в журнале нет времени по участкам, любое ускорение — это гадание. Час на настройку журнала окупается до того, как потрачен первый час на оптимизацию.
  • Поиск работает хуже 85 %. Если нужный документ находится реже чем в 85 случаях из 100, ускорять нечего — быстрый неверный ответ хуже медленного верного. Сначала разбираются причины промахов поиска, потом секунды.
  • Узкое место — человек. Если агент отвечает за 8 секунд, а очередь к оператору по эскалациям идёт сорок минут, то секунды в этой сумме не видны вообще. Считать надо весь путь обращения, а не только машинную его часть.

Зеркальный признак — когда браться нужно: канал живой, поток выше 3 000 обращений в месяц, в журнале виден 95-й процентиль больше 10 секунд и есть измеренная доля оборванных диалогов. Если верно всё четыре, потоковая выдача за 24 000 ₽ окупится в первый же месяц, а остальные три приёма стоит считать по порогу из расчёта выше. Для голосового канала арифметика другая и жёстче — она разобрана в материале про определение конца фразы у голосового агента.