- BrainTools - https://www.braintools.ru -
Команда AI for Devs [1] подготовила перевод статьи о том, как AI-агенты на базе LLM тратят лишние деньги из-за разрастающегося контекста и как простое маскирование наблюдений нередко работает лучше сложного LLM-суммирования. Авторы предлагают гибридный метод, который делает агентов дешевле и надёжнее без дообучения модели.
Представьте, что вы работаете над проектом и записываете буквально каждую мысль, эксперимент и неудачу. Проходит время — и заметок становится столько, что поиск чего-то полезного занимает больше сил и времени, чем сама работа. С похожей проблемой сталкиваются пользователи агентных систем в сфере разработки: агенты «делают заметки» по каждому сгенерированному результату, итеративно добавляя его в контекст. В итоге накапливаются гигантские — и дорогие — объёмы памяти [2].
Огромный контекст создаёт проблемы по нескольким причинам. Во-первых, AI-модели тарифицируются по количеству слов (токенов), и чем больше контекст, тем стремительнее растут затраты. Если позволить контексту расти бесконтрольно, есть риск быстро превысить контекстное окно современных LLM. Кроме того, реальный эффективный объём контекста у агента довольно мал (см. эту статью [3] и эту статью [4]).
Получается, что контекст, который агент сам себе генерирует, очень быстро превращается в шум, а не в полезные сведения. Можно посмотреть на это и иначе: контексты растут настолько стремительно, что становятся крайне дорогими, но при этом почти не улучшают качество выполнения последующих задач. Сейчас мы расходуем ресурсы, а отдача остаётся заметно ниже оптимальной.
Если растущий контекст — проблема, то какие меры вообще предпринимаются для его контроля? Удивительно мало — учитывая масштабы последствий. Пока что внимание [5] в основном сосредоточено на улучшении планирования агента за счёт увеличения объёмов данных и разнообразия сред (см. статьи 1 [6] и 2 [7]), а также за счёт улучшенных стратегий планирования и более эффективных методов поиска (см. статьи 1 [8] и 2 [9]).
Однако в исследованиях всё ещё есть существенный пробел, когда речь идёт об эффективности управления контекстом. Наши исследователи [10]закрыли этот пробел — они выполнили эмпирическое исследование [11]основных подходов к эффективному управлению контекстом, а также предложили новый гибридный метод, который позволяет значительно снизить стоимость. Эта работа — часть магистерской диссертации Тобиаса Линденбауэра [12] в лаборатории Software Engineering and AI [13] Технического университета Мюнхена (TUM [14]). Мы представим результаты на воркшопе Deep Learning 4 Code [15], который входит в программу конференции NeurIPS 2025 [16] и пройдёт 6 декабря 2025 года в Сан-Диего.
В этой статье мы расскажем:
О двух основных подходах к управлению контекстом: маскировании наблюдений и суммировании с помощью LLM.
О нашем эксперименте и его результатах, где мы сравнили эти два подхода с базовым решением.
О нашем гибридном методе и о том, как шире применять результаты исследования.
Когда AI-агенты решают сложные задачи программирования, им нужно помнить, что они делали раньше: какие файлы читали, какой код тестировали, как рассуждали об ошибках. Эта «память» и есть контекст, который помогает агентам эффективнее рассуждать. Но управлять этой памятью — значит балансировать между тем, чтобы дать модели достаточно информации для чёткого мышления [17] и при этом не завалить её лишним шумом.
В последние годы появилось несколько исследований, в которых подробно изучается, как размер контекстного окна влияет на работу модели (например, исследование 2024 года [18] и исследование 2025 года [19]). Эти работы последовательно показывают, что по мере роста контекста языковые модели всё хуже используют весь полученный объём сведений. Хотя управление контекстом напрямую влияет и на качество работы агента, и на стоимость его использования, в большинстве исследований оно всё ещё рассматривается скорее как инженерная деталь, чем как ключевая научная проблема.
Сегодня в state of the art-подходах существует два основных способа решать задачу управления контекстом. Важно отметить, что первый подход более новый и продвинутый: его впервые представил OpenHands [20], и сейчас он используется в коммерческих SE-агентах Cursor [21]и Warp [22]. Второй же подход — более старый и более простой.
LLM-суммирование: короткие сводки генерирует другая модель.
Маскирование наблюдений: устаревшая или менее важная информация скрывается.
Оба подхода сохраняют важные части контекста — в этом причина того, что они вообще работают. Главное различие — в том, как они это делают. Ниже изображение, демонстрирующее разницу, а затем текст подробно её разбирает.
На левой стороне изображён базовый процесс — raw agent (для простоты подсказки опущены). Каждый шаг, обозначенный T1 и T2 в левой части, состоит из трёх элементов: рассуждений, действия и наблюдения.
В центре показано LLM-суммирование. Оно уменьшает детализацию всех трёх элементов шага, по сути сжимая длинную историю, которая со временем накапливается (то есть траекторию), в компактную форму. Жёлтая рамка обозначает суммарное представление первых двух шагов — T1 и T2.
Справа показано, как маскирование наблюдений воздействует только на наблюдения среды, но сохраняет в полном виде историю действий и рассуждений. Скрывается лишь третий элемент шага — здесь он выделен зелёным. Учитывая, что в типичном шаге SE-агента основная масса объёма приходится именно на наблюдения, логично [23], что этот подход уменьшает разрешение именно этого элемента. Агент при этом сохраняет доступ к своим прежним рассуждениям и решениям, но больше не вынужден заново обрабатывать огромные объёмы многословных логов или полные дампы файлов из прошлых шагов.
Ещё одно различие между подходами касается бесконечных контекстов. Теоретически LLM-суммирование позволяет бесконечно масштабировать число шагов, не раздувая контекст до бесконечности — благодаря повторным суммированиям, которые не дают контекстному окну превысить допустимые пределы. Маскирование наблюдений значительно снижает скорость роста контекста, но если количество шагов будет расти бесконечно, то и контекст при таком подходе тоже будет расти без ограничений.
Ниже представлена таблица с плюсами и минусами каждого подхода.

В последнее время несколько исследовательских групп представили собственные инструменты управления контекстом и изучили их эффективность. Последние работы включают:
MEM1 [24], где исследовалась динамическая работа с состоянием для задач вроде многошагового ответа на вопросы и навигации по вебу. Однако эта работа не сравнивалась с более простыми методами на базе пропуска, такими как маскирование наблюдений, и использовала относительно короткие и лёгкие тесты (всего несколько сотен токенов), а не длинные траектории, характерные для SE-агентов. Обратите внимание: этот подход требует обучения [25] модели.
Вариант подхода [26] на базе LLM-суммирования, призванный улучшить управление контекстом SE-агентов. Но он тоже не включал сравнение с более простым методом маскирования наблюдений. Ближайшая альтернатива — Delete baseline — просто удаляет целые шаги диалога вместо их суммирования. Это может казаться эффективным, но поскольку такие агенты большую часть времени взаимодействуют со средой, полное удаление шагов нарушает их линию рассуждений и снижает качество работы.
Подход [27]с маскированием наблюдений, который показал впечатляющие результаты в задачах обучения с подкреплением [28] и в агентах, управляющих компьютером. И здесь модель требуется обучать.
Примечание: хотя первый из этих подходов предшествовал нашему исследованию, два других были опубликованы уже после его завершения.
Несмотря на интересные результаты этих работ, многого ещё предстоит узнать о том, какие стратегии действительно оптимальны для эффективного управления контекстом. В нашем исследовании [11] мы поставили вопрос: действительно ли нужны сложные методы суммирования? Чтобы это проверить, мы провели эксперименты с SWE-agent [29] и OpenHands [30]и оценили, насколько хорошо работают более простые техники — об этом расскажем в следующем разделе.
В экспериментах мы протестировали три стратегии работы с памятью. Вот эти стратегии — первая служит базовой линией, а две остальные являются основными объектами исследования:
Контекст растёт без ограничений — raw agent
Обрезание старых наблюдений с заменой на заглушки — маскирование наблюдений
Использование отдельной модели для суммирования прошлых шагов — LLM-суммирование
В качестве базового варианта мы рассмотрели raw agent на основе scaffold’ов ReAct и CodeAct. В этих фреймворках траектория агента — это последовательность взаимодействий со средой, и контекст при этом никак не ограничен.
Для двух основных исследуемых подходов мы проанализировали их популярные реализации в Open source-решениях:
Маскирование наблюдений через скользящее окно (SWE-agent [29]):
сохраняет историю рассуждений и действий агента полностью;
заменяет старые наблюдения на заглушки, если они выходят за пределы фиксированного окна — по сути сообщая модели: «некоторые подробности опущены для краткости».
LLM-суммирование на основе промптов (OpenHands [30]):
использует отдельную языковую модель-суммаризатор, которая сжимает старые взаимодействия (наблюдения, действия, рассуждения) в краткие сводки;
всегда оставляет самые свежие шаги нетронутыми.
Предварительные эксперименты показали: чтобы корректно сравнить ограниченный по размеру контекст при LLM-суммировании с медленно, но всё же неограниченно растущим контекстом при маскировании наблюдений, нужно использовать длинные траектории с большим числом шагов (подробнее в приложении к нашей статье [11]). Поэтому в основных экспериментах мы позволяли агентам работать до 250 шагов. В варианте маскирования наблюдений оптимальным оказалось окно в 10 последних шагов — оно давало лучшую комбинацию качества и экономичности. В варианте LLM-суммирования мы раз за разом суммировали 21 шаг, при этом последние 10 всегда хранили полностью.
Кроме того, мы использовали самые современные модели — как открытые (Qwen3 [31]), так и проприетарные (Gemini 2.5 Flash [32]), с размерами от 32B до 480B параметров; покрыли при этом и режимы с «мышлением», и без него. Все эксперименты выполнялись на наборе SWE-bench Verified [33], по 500 инстансов на каждую конфигурацию. Подробности см. в разделе 3 статьи [11].
Как описано в предыдущем разделе, в наших экспериментах мы изучили три стратегии управления памятью. Первая служит базовым вариантом, а две другие — основными объектами исследования. Главный вывод: маскирование наблюдений оказывается эффективнее и надёжнее LLM-суммирования.
Контекст растёт без ограничений — raw agent
Обрезание старых наблюдений с заменой на заглушки — маскирование наблюдений
Использование отдельной модели для суммирования прошлых шагов — LLM-суммирование
И маскирование наблюдений, и LLM-суммирование стабильно сокращают затраты более чем вдвое по сравнению с базовым вариантом, где память агента никак не ограничивается. Такие ориентированные на эффективность стратегии резко уменьшают рост контекста — и при этом не ухудшают способность агентов решать задачи.
Удивительно, но простой метод маскирования наблюдений оказался не только дешевле: он нередко работал на уровне или даже немного лучше, чем LLM-суммирование. В четырёх из пяти тестовых сценариев агенты с маскированием наблюдений тратили меньше средств на задачу — и часто показывали лучшую результативность.
Например, мощная модель Qwen3-Coder 480B показывала рост доли решённых задач на 2,6% по сравнению с полностью неуправляемым контекстом — при этом в среднем была на 52% дешевле. В других сценариях LLM-суммирование давало сопоставимые результаты, но почти никогда не превосходило маскирование. Даже разница в пару-тройку центов на задачу имеет значение при масштабных развёртываниях.
Нам также было важно понять, можно ли обобщить результаты на другого агента — с теми же параметрами, но на меньшей выборке. Для этого мы провели дополнительные тесты с агентом OpenHands [30], сравнив оба подхода на слайсе SWE-bench Verified [33] (50 инстансов вместо 500). Агент был ограничен моделью Gemini 2.5 Flash без режима мышления.
Дополнительные тесты включали реализацию оптимального значения для SWE-agent в контексте OpenHands, наблюдение значимых различий в работе, а затем корректировку параметров, чтобы вернуть производительность на исходный уровень. Мы обнаружили, что маскирование наблюдений сопоставимо с LLM-суммированием и по стоимости, и по качеству — но только после настройки гиперпараметра окна для каждого конкретного типа агента.
Что значит «настроить окно маскирования»? Каждый агент хранит историю взаимодействий по-своему. В нашем исследовании SWE-agent (с маскированием) пропускает неудачные попытки повтора, тогда как OpenHands (с суммированием) включает все шаги.
Если считать последние 10 шагов контекста, различия в истории могут быть огромными. Если агент проваливается 10 раз подряд, окно контекста OpenHands будет состоять исключительно из ошибок — что может полностью сбить агента с толку.
Поэтому агентам вроде OpenHands действительно нужно расширять окно, чтобы не ухудшать качество. Настройка размера окна позволяет учитывать такие особенности и корректировать его, когда это необходимо.
Мы очень хотели понять, почему LLM-суммирование — более сложный и «умный» подход — зачастую менее экономичный, чем простое маскирование. И выяснили интересную деталь: при использовании суммирования агенты чаще работают дольше, что ведёт к росту затрат и снижению общей эффективности.
Данные показали, что для моделей вроде Gemini 2.5 Flash LLM-суммирование увеличивало среднюю длину траектории до 52 шагов, что на 15% дольше, чем при маскировании. Для Qwen3-Coder 480B — та же картина: траектории удлинялись примерно на 15% по сравнению с raw agent и на 13% — по сравнению с маскированием.
Почему так? Похоже, что LLM-сводки «сглаживают» или скрывают сигналы, которые указывали бы агенту, что задачу уже пора считать нерешаемой. Агент продолжает попытки, хотя обычно он бы давно остановился (см. исследование о плато успешности [34]).
То есть сводки, призванные сделать историю аккуратнее, могут невольно побуждать агента тратить больше шагов без повышения качества. Иногда простота действительно работает лучше — и эффективнее.
И это ещё не всё: каждый раз, когда агент запрашивает сводку, он делает дорогой API-вызов, обрабатывающий значительный фрагмент траектории. Эти обращения стоят недёшево, иногда составляя более 7% общей стоимости. Поскольку каждый вызов работает с уникальным участком истории, возможности кеширования практически нет. Если вычесть стоимость генерации сводок, разница в эффективности между LLM-суммированием и маскированием заметно сокращается.
Итог: оба подхода уменьшили затраты примерно вдвое по сравнению с отсутствием контроля, но простота чаще побеждает в общей эффективности и стабильности. Даже если LLM-суммирование звучит «умно», на практике оно оказывается дороже и не даёт надёжного выигрыша. Это говорит о том, что многие современные AI-агенты могли бы снизить расходы, если бы меньше полагались на суммаризацию или использовали более изобретательные гибридные методы.
После того как мы увидели, что и маскирование наблюдений, и LLM-суммирование показывают себя весьма достойно — причём маскирование часто оказывается не хуже, а то и лучше суммирования, — мы решили проверить: а что если объединить сильные стороны обоих методов? Тем более что, как видно из таблицы выше [35], их преимущества дополняют друг друга.
Наш гибридный метод работает так: маскирование наблюдений выступает первой линией обороны от разрастания контекста. Мы выбрали именно его в качестве основы, потому что оно быстрое и дешёвое: старые шумные выводы инструментов заменяются заглушками, а агент сохраняет только действительно важные части истории.
Но вместо того чтобы полностью отказаться от суммирования, гибридная система иногда подключает LLM-суммаризацию как последний рубеж, когда контекст становится действительно громоздким. В нашей настройке агент использует маскирование почти на всех шагах, а суммирование вызывается только после накопления крупного блока шагов — при достижении определённого значения, задаваемого гиперпараметром.
Преимущества нашего гибридного подхода:
Агент быстро экономит за счёт маскирования — особенно в начале, когда задача ещё короткая и контекст не успел разрастись.
Даже для очень длинных или сложных задач периодическое суммирование не даёт памяти выйти из-под контроля — и при этом не тратит лишнее на генерацию сводок там, где они не нужны.
Поскольку метод не требует обучения модели (то есть изменения весов), его можно применять к любым существующим моделям — включая GPT-5 и Claude. Это даёт немедленную экономию даже там, где обучение попросту невозможно. Насколько нам известно, конкурентные подходы таким свойством не обладают.
Как уже отмечалось выше, настройка гиперпараметров имеет большое значение — и в гибридном методе это тоже критично. Мы подбирали и размер окна маскирования, и количество шагов до вызова суммаризации, подстраивая оба параметра под конкретного агента или конкретную задачу. Когда мы пробовали использовать настройки, подходящие для одного агента, в другом сценарии результаты иногда ухудшались.
Мы тщательно протестировали метод, и результаты подтверждают наши выводы. На сложном бенчмарке SWE-bench-Verified и при использовании огромной модели Qwen3-Coder 480B наш гибрид снизил стоимость на 7% по сравнению с чистым маскированием и на 11% по сравнению с одним только LLM-суммированием. При этом доля успешно решённых задач выросла примерно на 2,6 процентных пункта, а экономия по бенчмарку составила до 35 долларов — что существенно при масштабном запуске агентов.
В этом исследовании мы подробно изучили разные способы управления растущим контекстом AI-агентов, протестировав их на широком спектре моделей и фреймворков. Нам также удалось стабильно воспроизводить результаты при условии достаточно длинных траекторий и внимательной настройки параметров.
Основные выводы:
Игнорировать ориентированные на эффективность методы управления контекстом — значит игнорировать важные способы снизить затраты.
Если вам нужны агенты, которые работают и точно, и экономно, не стоит полагаться на один подход — наш гибрид объединяет сильные стороны маскирования наблюдений и LLM-суммирования.
В дополнение к статье мы выложили код в открытый доступ. Попробуйте его и оцените разницу в управлении контекстом: Посмотреть код [36]

Друзья! Эту статью подготовила команда ТГК «AI for Devs [1]» — канала, где мы рассказываем про AI-ассистентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь [1], чтобы быть в курсе и ничего не упустить!
Автор: python_leader
Источник [37]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/22889
URLs in this post:
[1] AI for Devs: https://t.me/+VLqcAsd-eIBiOGMy
[2] памяти: http://www.braintools.ru/article/4140
[3] эту статью: https://arxiv.org/abs/2307.03172
[4] эту статью: https://arxiv.org/abs/2502.05167
[5] внимание: http://www.braintools.ru/article/7595
[6] 1: https://openreview.net/forum?id=7evvwwdo3z#discussion
[7] 2: https://arxiv.org/abs/2412.21139
[8] 1: https://openreview.net/forum?id=G7sIFXugTX
[9] 2: https://aclanthology.org/2025.acl-long.973/
[10] исследователи : https://lp.jetbrains.com/research/ml/
[11] исследование : https://arxiv.org/pdf/2508.21433
[12] Тобиаса Линденбауэра: https://tobias.lindenbauer.me/
[13] лаборатории Software Engineering and AI: https://www.cs.cit.tum.de/seai/homepage/
[14] TUM: https://www.tum.de/
[15] Deep Learning 4 Code: https://dl4c.github.io/
[16] конференции NeurIPS 2025: https://neurips.cc/
[17] мышления: http://www.braintools.ru/thinking
[18] исследование 2024 года: https://aclanthology.org/2024.tacl-1.9/
[19] исследование 2025 года: https://openreview.net/forum?id=0OshX1hiSa
[20] OpenHands: https://openhands.dev/blog/openhands-context-condensensation-for-more-efficient-ai-agents
[21] Cursor : https://cursor.com/
[22] Warp: https://www.warp.dev/ai
[23] логично: http://www.braintools.ru/article/7640
[24] MEM1: https://arxiv.org/abs/2506.15841
[25] обучения: http://www.braintools.ru/article/5125
[26] Вариант подхода: https://arxiv.org/abs/2509.23586
[27] Подход : https://arxiv.org/abs/2510.08276
[28] подкреплением: http://www.braintools.ru/article/5528
[29] SWE-agent: https://arxiv.org/abs/2405.15793
[30] OpenHands : https://openreview.net/forum?id=OJd3ayDDoF
[31] Qwen3: https://github.com/QwenLM/Qwen3
[32] Gemini 2.5 Flash: https://deepmind.google/models/gemini/flash/
[33] SWE-bench Verified: https://openai.com/index/introducing-swe-bench-verified/
[34] исследование о плато успешности: https://arxiv.org/abs/2504.21798
[35] таблицы выше: #1
[36] Посмотреть код: https://github.com/JetBrains-Research/the-complexity-trap
[37] Источник: https://habr.com/ru/articles/973410/?utm_source=habrahabr&utm_medium=rss&utm_campaign=973410
Нажмите здесь для печати.