Диалоги в службе поддержки редко бывают линейными. Они могут длиться по часу (или дольше), причем клиент обычно описывает всю суть проблемы только в первые несколько минут звонка или чата. Но к 40-й минуте ваш ИИ-агент начинает заново перебирать те же решения и уже не совсем помнит первоначальную проблему.
Это проблема лимита токенов. Это не значит, что ваш ИИ сломался или ему чего-то не хватает.
Каждая большая языковая модель (LLM) считывает беседу через контекстное окно с фиксированным бюджетом обрабатываемых токенов. Очень долгие разговоры с поддержкой в конечном итоге превышают этот фиксированный бюджет, и когда ИИ-агент не может обработать весь контекст для ответа, он начинает сокращать данные. Обычно это начинается с самой старой части беседы, а это чаще всего самая важная часть (где клиент описывал проблему).
Тем не менее, не все потеряно. Существуют способы справиться с лимитами токенов в долгих звонках в поддержку, а определенные возможности платформы позволяют лучше управлять контекстом в рамках длительных (и повторных) бесед.
Что происходит, когда беседа с поддержкой достигает лимита токенов
Токен — это фрагмент текста, и примерное правило для английского языка составляет около четырех символов на токен. Контекстное окно — это максимальное количество токенов, которое модель может принять за один раз, и все учитывается в этом бюджете:
- Системный промпт
Системный промпт
- Определения инструментов
Определения инструментов
- Извлеченные знания
Извлеченные знания
- История беседы
История беседы
- Ответы, генерируемые моделью
Ответы, генерируемые моделью
Диалоги поддержки расходуют этот бюджет очень быстро. Дело не в их неэффективности — таким беседам просто требуется время:
- Горячие транскрипции звонков получаются длинными: каждый обмен репликами по телефону превращается в элемент транскрипции со всеми словами-паразитами.
Горячие транскрипции звонков получаются длинными: каждый обмен репликами по телефону превращается в элемент транскрипции со всеми словами-паразитами.
- Результаты работы инструментов накапливаются: поиск по заказам, записи аккаунта и результаты базы знаний добавляются в историю каждый раз, когда агент вызывает инструмент.
Результаты работы инструментов накапливаются: поиск по заказам, записи аккаунта и результаты базы знаний добавляются в историю каждый раз, когда агент вызывает инструмент.
- Повторные обращения суммируются: клиент, обращающийся на этой неделе в третий раз, приносит с собой две предыдущие беседы, о которых агент уже должен знать.
Повторные обращения суммируются: клиент, обращающийся на этой неделе в третий раз, приносит с собой две предыдущие беседы, о которых агент уже должен знать.
Когда общая сумма превышает окно, API отклоняет запрос или приложение удаляет контент, чтобы освободить место. В большинстве реализаций самые старые реплики удаляются в первую очередь. В поддержке это часто реплика с номером счета и исходной жалобой.
И вы понимаете, как это может полностью сорвать разговор.
Однако у удержания в пределах лимита есть своя цена. Вы платите за входные токены на каждом шаге, и исследователи обнаружили, что модели используют информацию, зарытую в середине длинного контекста, менее надежно, чем информацию в начале или в конце (Liu et al., "Lost in the Middle").
Да, большее окно поднимает планку, но вам все равно приходится отправлять всю беседу заново при каждом ходе.
4 способа управления контекстом (и сокращения токенов) в долгих беседах
К счастью, существуют лучшие способы ведения беседы, чем перечитывать все окно каждый раз. Вот несколько тактик, которые можно комбинировать в зависимости от длительности и частоты обращений ваших клиентов:
- Скользящее окно
Скользящее окно
- Динамические саммари
Динамические саммари
- Извлечение из памяти
Извлечение из памяти
- Структурированное состояние
Структурированное состояние
1. Скользящее окно
Сохраняйте самые свежие реплики и отбрасывайте все более старые. Использование токенов остается предсказуемым, а логика — простой. К сожалению, ранние факты выпадают из окна, поэтому вам нужно закрепить системный промпт и все критические факты, чтобы они никогда не удалялись.
2. Динамические саммари
Сжимайте старые реплики в краткую сводку, сохраняя последние реплики дословно. Общая суть сохраняется ценой дополнительного вызова модели. Однако это не идеально. Саммаризаторы также склонны терять детали, такие как номера заказов и даты, если вы не укажете им сохранять идентификаторы в неизменном виде.
3. Извлечение из памяти
Сохраняйте факты и прошлые саммари за пределами промпта, а затем извлекайте только релевантные на каждом шаге с помощью поиска. Размер промпта остается ограниченным независимо от того, насколько долгим становится общение. Этот подход требует этапа извлечения и хранилища для выборки.
4. Структурированное состояние
Отслеживайте важные факты как явные поля, такие как ID аккаунта, тип проблемы и уже опробованные шаги по устранению неполадок. Внедряйте их на каждом шаге. Это наиболее эффективный по токенам вариант для известных данных, но он не может захватить важные детали, которые вы не предусмотрели.
Лучшая комбинация подходов для поддержки:
- Структурированное состояние для известных полей
Структурированное состояние для известных полей
- Скользящее окно для текущего обмена репликами
Скользящее окно для текущего обмена репликами
- Извлечение для всего из предыдущих бесед
Извлечение для всего из предыдущих бесед
Как Twilio обрабатывает лимиты токенов в долгих беседах с поддержкой
Twilio управляет контекстом длинных бесед, разделяя его на две части:
- Ваш агент управляет историей текущих реплик в своем собственном коде
Ваш агент управляет историей текущих реплик в своем собственном коде
- Twilio Conversation Memory предоставляет сжатый, ранжированный по релевантности контекст из всего, что было до этого.
Twilio Conversation Memory предоставляет сжатый, ранжированный по релевантности контекст из всего, что было до этого.
Вот как работает каждый компонент.
Живая беседа остается в вашем коде
Twilio Agent Connect передает каждое входящее сообщение единому обработчику вместе с сеансом беседы и любой извлеченной памятью. Ваш обработчик строит промпт и вызывает вашу модель, поэтому стратегию обрезки для текущей беседы вы выбираете сами — будь то скользящее окно, динамическое саммари или оба варианта.
Этот дизайн является осознанным. Руководство Twilio по задержкам в голосовых ИИ-агентах предупреждает, что управляемые уровни истории беседы, созданные для чата, часто добавляют задержки и негибкость в голосе. Оцените их заранее, если используете таковые.
Conversation Memory заменяет воспроизведение на извлечение
После завершения беседы Conversation Memory извлекает наблюдения, краткие факты о клиенте и сохраняет их в профиле клиента вместе с саммари беседы. Когда новое наблюдение противоречит существующему, Twilio обновляет существующее наблюдение самой свежей версией и отбрасывает противоречия, не имеющие подтверждающих деталей.
Профиль остается актуальным, и устаревшие противоречия не расходуют токены.
Во время следующей беседы эндпоинт Recall возвращает наиболее релевантные воспоминания с использованием как семантического, так и лексического поиска. Если вы не передаете запрос, Twilio выводит его из последних десяти реплик беседы. Вы можете еще больше сузить результаты с помощью диапазонов дат и ограничений результатов.
Задокументированные лимиты делают полезную нагрузку предсказуемой:
- Наблюдения: до 4096 символов каждое
Наблюдения: до 4096 символов каждое
- Саммари бесед: до 4096 символов каждое
Саммари бесед: до 4096 символов каждое
- Результаты вызова Recall: До 100 наблюдений, 100 сводок и 100 сообщений за один вызов
Результаты вызова Recall: До 100 наблюдений, 100 сводок и 100 сообщений за один вызов
- Запрос Recall: До 1024 символов
Запрос Recall: До 1024 символов
При расчете примерно четыре символа на токен одна сводка приближается к пределу в 1000 токенов. Установка лимита результатов в Recall фактически задает ваш контекстный бюджет для истории.
Agent Connect настраивает это для вас. Когда режим памяти установлен на always (всегда), он извлекает контекст памяти с каждым входящим сообщением, а компонент формирования промптов (prompt builder) форматирует черты профиля и историю разговора в текст, который вы добавляете к вашему системному промпту.
Голосовые вызовы накладывают ограничения по задержке
Во время телефонных звонков ConversationRelay обрабатывает преобразование речи в текст и текста в речь, а также передает текстовые реплики вашему агенту по протоколу WebSocket. Согласно внутренним тестам Twilio, средняя медианная задержка составляет менее 0,5 секунды, а на уровне 95-го процентиля — менее 0,725 секунды. Размер промпта при голосовом общении — это в такой же степени вопрос задержки, в какой и вопрос ограничений, поскольку модель должна обработать промпт, прежде чем начать говорить.
Twilio учитывает это в том, как извлекается память. При обмене сообщениями Agent Connect вызывает Recall на каждом ходу разговора. При голосовом вызове вы сами выбираете частоту запуска Recall, находя баланс между актуальностью контекста и скоростью ответа.
Передача диалога оператору пропускает транскрипт
Когда разговор эскалируется до живого человека, оператор-человек открывает диалог, видя созданную ИИ сводку и идентификатор разговора вместо прокрутки 40-минутного транскрипта. Это тот же принцип сжатия, только примененный к людям.
Вопросы, которые стоит задать о работе с контекстом любой платформы разговорного ИИ
На чем бы вы ни строили свое решение, эти вопросы показывают, как платформа ведет себя при затягивании разговоров:
- Что отбрасывается в первую очередь? Узнайте, что происходит, когда разговор превышает размер окна, и защищены ли системный промпт и ключевые факты.
Что отбрасывается в первую очередь? Узнайте, что происходит, когда разговор превышает размер окна, и защищены ли системный промпт и ключевые факты.
- Кто управляет сокращением? Выясните, является ли управление историей настраиваемым или это «черный ящик».
Кто управляет сокращением? Выясните, является ли управление историей настраиваемым или это «черный ящик».
- Как память разрешает конфликты? У клиента, который изменил свой адрес, не должно быть двух конкурирующих за место в промпте версий.
Как память разрешает конфликты? У клиента, который изменил свой адрес, не должно быть двух конкурирующих за место в промпте версий.
- Каковы лимиты извлечения? Запросите документированные ограничения на то, что память возвращает за один вызов.
Каковы лимиты извлечения? Запросите документированные ограничения на то, что память возвращает за один вызов.
- Как голосовая связь меняет дело? Спросите, как извлечение контекста влияет на задержку ответа при звонках.
Как голосовая связь меняет дело? Спросите, как извлечение контекста влияет на задержку ответа при звонках.
Планируйте долгие разговоры с самого начала
Продолжительные разговоры в поддержке — это не сбой и не случайность. Нет, именно в них ИИ-агенты заслуживают доверие или теряют его, и неудача не является неизбежной.
- Определите стратегию сокращения до запуска
Определите стратегию сокращения до запуска
- Храните известные факты в структурированных полях
Храните известные факты в структурированных полях
- Загружайте историю по релевантности, а не воспроизводите ее заново
Загружайте историю по релевантности, а не воспроизводите ее заново
Сделайте это, и лимит токенов перестанет быть непреодолимым потолком, превратившись в предсказуемый бюджет, который вы устанавливаете сами. Сделайте все правильно, и вы сохраните контроль. Более подробно о том, как работает постоянный контекст в разных разговорах, читайте в нашем руководстве по памяти клиентов ИИ или изучите документацию по памяти разговоров.
Часто задаваемые вопросы
Что такое лимит токенов в разговоре с поддержкой на базе ИИ?
Подключенные к Twilio ИИ-агенты работают в рамках лимита токенов выбранной вами языковой модели (LLM). Это максимальное количество токенов, которое модель может обработать за раз, включая системный промпт, историю разговора, извлеченный контекст и ее собственный ответ.
Как платформы оркестрации справляются с лимитами токенов и усечением контекста в долгих разговорах поддержки?
Twilio сохраняет историю текущих реплик в коде вашего агента, где вы выбираете стратегию сокращения, и использует Conversation Memory для извлечения релевантных наблюдений и сводок из прошлых разговоров вместо повторного воспроизведения полных транскриптов.
Что происходит, когда разговор с поддержкой превышает контекстное окно?
Twilio Agent Connect оставляет управление историей вашему коду, поэтому результат зависит от вашей стратегии. Если ее нет, API отклоняет запрос или самые старые реплики отрезаются, часто включая исходную проблему клиента.
Решает ли проблему лимита токенов большее контекстное окно?
Не всегда. Большее окно поднимает планку, но вы все равно платите за каждый повторно отправляемый токен и ждете его обработки. Рекомендации Twilio по голосовому ИИ отдают предпочтение легковесным моделям, настроенным на быструю генерацию первых токенов, что делает компактные промпты особенно важными.
Сколько контекста возвращает Twilio Conversation Memory за один ход разговора?
Эндпоинт Recall в Twilio Conversation Memory возвращает до 100 наблюдений, 100 сводок и 100 сообщений за вызов, причем каждое наблюдение и сводка ограничены 4096 символами. Диапазоны дат и лимиты результатов еще больше сужают выборку.









