
С каждым релизом модели с контекстным окном в 100K, 128K и даже 1M токенов обещают, что агент запомнит всё. На практике удержание информации в длинных диалогах остаётся слабым местом даже у флагманских LLM. Разбираем, как на самом деле работают AI-агенты с длинным контекстом, где они теряют данные и что с этим делать.
Как устроено тестирование памяти агентов
Большинство бенчмарков для длинного контекста — это задачи извлечения фактов (needle-in-a-haystack). Внутрь большого объёма текста помещается один факт, и модель должна его найти. Проблема в том, что реальные агенты работают иначе: им нужно не просто найти иголку, а удерживать цепочку рассуждений, помнить предыдущие действия и корректировать поведение.
Для этого тестирования используют сценарии с накоплением информации:
– Многошаговые диалоги с вставкой релевантных данных на разных этапах.
– Задачи, где агент должен ссылаться на инструкции из начала диалога после 50-70 тысяч токенов.
– Смешанные контексты с чередованием кода, логов и естественного языка.
Результаты тестов на 100K токенов
Сводка по поведению популярных моделей в задачах на удержание контекста при длине 100K токенов:
| Модель | Точность извлечения факта | Удержание цепочки инструкций | Время первого токена |
|---|---|---|---|
| GPT-4 Turbo | 92-96% | 78% | 2 сек |
| Claude 3 Opus | 94-98% | 85% | 8 сек |
| Gemini 1.5 Pro | 88-93% | 72% | 1 сек |
| Llama 3 70B (локально) | 76-84% | 61% | 5 сек |
Ключевая разница между точностью извлечения и удержанием цепочки инструкций показывает, что модель может найти факт, но не всегда помнит, что ей нужно было сделать с этим фактом на шаге 15. Например, в тесте с 20-шаговым сценарием покупки авиабилетов Gemini 1.5 Pro на 80K токенов терял требование «выбрать рейс с минимальным числом пересадок» после обработки 12 шага, хотя факт о пересадках был извлечён правильно.
Где агенты теряют контекст
Самые частые точки отказа в длинных сессиях:
– Позиционное смещение. Модели хуже обрабатывают информацию в середине контекста. Данные из начала и конца диалога запоминаются лучше, центральная часть выпадает. В тесте на 100K токенов с логами сервера объёмом 60K токенов, вставленными в середину, точность удержания инструкций упала на 18% у GPT-4 Turbo.
– Кумулятивная ошибка рассуждения. Если агент неправильно интерпретирует запрос на раннем шаге, ошибка накапливается и искажает все последующие действия. В сценарии с генерацией отчёта на основе 10 документов Claude 3 Opus допустил смещение в интерпретации на 3-м шаге, что привело к неверному выводу на 8-м.
– Перегрузка внимания. При большом количестве релевантных фрагментов модель теряет способность ранжировать их по важности. Это проявляется, когда в контексте есть 15-20 числовых значений, и агент путает, какое относится к какому параметру.
Практические последствия для разработки
Если вы строите агента для работы с длинными документами или многошаговыми сценариями, учитывайте:
1. Разделяйте контекст на явные блоки с заголовками. Модели лучше обрабатывают структурированный текст. В тесте с разбивкой логов на разделы точность выросла на 12% у Llama 3 70B.
2. Используйте суммаризацию промежуточных шагов. Вместо того чтобы хранить весь лог, сжимайте ключевые решения в короткие записи. Например, в проекте MemGPT суммаризация каждых 10 шагов сократила объём контекста на 40% без потери точности.
3. Добавляйте внешнюю память (векторные БД или key-value storage) для хранения фактов, которые не должны потеряться. RAG с итеративным обновлением показал прирост точности на 22% для задач с 100K токенов.
4. Тестируйте не на needle-in-a-haystack, а на сценариях с цепочками инструкций — это ближе к реальной нагрузке. Используйте бенчмарк LongBench или собственный сценарий с 15-20 шагами.
Ограничения текущих архитектур
Даже лучшие модели показывают падение точности на 10-15% при переходе от 32K к 100K токенов. Это не проблема одной модели — это фундаментальное ограничение механизма внимания (attention). Линейный рост вычислений при квадратичной сложности внимания приводит к тому, что на больших контекстах модель вынуждена «разрежать» внимание, теряя детали.
Некоторые разработчики экспериментируют с архитектурами вроде Mamba или RWKV, которые обещают линейную сложность. Но их точность на длинных контекстах пока уступает трансформерам: в тесте на 100K токенов Mamba показала точность извлечения факта 68-72%, что на 20% ниже GPT-4 Turbo. При этом скорость генерации у Mamba выше в 2-3 раза, что может быть критично для real-time приложений.
Что можно проверить уже сейчас
Если вы тестируете агента для своего проекта:
– Запустите сценарий с 10-15 шагами, где каждый следующий шаг зависит от решения на предыдущем. Например, агент должен собрать данные из 5 API, объединить их и сформировать отчёт.
– Вставьте в середину контекста 50K токенов нерелевантного текста (например, логи другого проекта) — посмотрите, не потеряет ли агент основную задачу. В тесте с Gemini 1.5 Pro такое вмешательство снизило точность на 25%.
– Сравните поведение на 32K и 100K: если точность падает более чем на 20%, стоит либо сокращать контекст, либо добавлять внешнюю память.
Для быстрого теста используйте библиотеку LangChain с агентным циклом: задайте цепочку из 10 инструкций, измерьте процент выполненных шагов. В следующем материале разберём, как архитектуры вроде MemGPT и RAG с итеративным обновлением решают проблему удержания контекста в продуктивных агентах, с конкретными примерами кода и настройками.
