Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Кодирующие агенты могут вести длинные сессии с ограниченным контекстом и не терять качество на задачах по коду и терминалу. В препринте Carnegie Mellon University и Bosch Center for AI, который не рецензирован и где все числа получили сами авторы, CliffCompaction сравнялся с полным контекстом или превзошёл его при меньших расходах. Для команд управление историей превращается из задачи по написанию идеального резюме в набор правил поверх API.
Точные фрагменты вместо пересказа истории
Обычное автоматическое сжатие просит LLM пересказать старую часть диалога. При следующем переполнении модель пересказывает уже готовое резюме, поэтому пропуски и искажения накапливаются. Агент при этом считает пересказ полной картиной и реже возвращается к файлам или документации, где осталась исходная информация.
CliffCompaction ничего не переформулирует. Когда история достигает заданного порога, метод оставляет системную инструкцию, исходную задачу, последние ходы и короткие точные фрагменты прежнего диалога. Длинные результаты инструментов он удаляет, а вызовы сокращает до названия инструмента, пути и важных аргументов.
Такой выбор следует из структуры агентной сессии: вызовы инструментов и их результаты занимали 84% токенов в разборе Terminal-Bench. Результат длиннее 500 символов можно снова получить, прочитав файл или повторив команду. Рассуждения агента тоже сокращаются, но содержимое файлов не переписывается своими словами.
При следующем сжатии CliffCompaction отбрасывает предыдущий компактный блок и обрабатывает только более свежую часть истории. Метод жертвует полнотой: ранняя деталь может исчезнуть совсем. Взамен оставшиеся сведения не проходят через цепочку пересказов и не меняют смысл после каждой новой сессии.
Редкие сжатия также сохраняют кэш ключей и значений — подготовленное представление прошлых токенов, которое API использует повторно. Любое изменение истории сбрасывает этот кэш, а повторная обработка входа у изученных моделей стоила примерно в 5–6 раз дороже чтения из кэша. CliffCompaction ждёт заполнения бюджета, резко уменьшает историю и затем снова даёт ей расти без изменений.
Экономия проявилась на длинных траекториях
На Terminal-Bench метод сократил стоимость прогона до 50% относительно полного контекста. Для Kimi K2.6 он дал преимущество около 6 процентных пунктов над штатным пересказом Terminus-2 при одинаковом ограничении контекста. На KernelBench агент достиг ускорения CUDA-ядер в 3,58 раза при расходе 8,32 доллара на задачу.
На SWE-bench Verified сжатие сохранило долю решённых задач, хотя короткие траектории оставляли меньше пространства для экономии. Самый тесный бюджет контекста уже ухудшал результат: агентной оболочке нужно место для системной инструкции, описаний инструментов и текущей работы ещё до накопления истории.
Метод проверяли с моделями семейств Kimi и GLM, а также с mini-swe-agent, OpenHands, Terminus-2 и Claude Code. Набор задач охватывал исправление репозиториев, работу в терминале и многократное улучшение CUDA-ядер; в последнем сценарии суммарная история доходила до миллионов токенов. Сравнение включало способы, которые меняют диалог во время работы: скользящее окно, пересказ моделью и удаление старых наблюдений.
Когда CliffCompaction меняет архитектурный план
Работа даёт практический вариант для агентов, которые долго работают с репозиторием и могут восстановить удалённые сведения через инструменты. Если результат команды, содержимое файла или журнал остаются доступны, хранить их копию в каждом запросе необязательно. Сигнатуры вызовов становятся указателями, по которым агент при необходимости повторно получает данные.
Это упрощает внедрение по сравнению с отдельной памятью или специальным обучением модели. Авторы выпустили реализацию в виде прокси для API, которая не зависит от конкретной агентной оболочки и может работать с Claude Code, Codex и другими системами. Дополнительный вызов LLM для сжатия тоже не нужен, поэтому расходы проще связать с объёмом активного контекста.
Менять схему коротких задач ради CliffCompaction смысла мало: там история не успевает стать главным источником расходов. Метод также не подходит как единственное хранилище, если агент обязан помнить раннее решение дословно и уже не может восстановить его из файлов, команд или внешней системы.
Для длинных сессий работа меняет порядок экспериментов. Сначала можно ограничить контекст, сохранить последние ходы и заменить старые результаты инструментов воспроизводимыми ссылками на них. Пересказ моделью и отдельную память стоит добавлять только для сведений, которые нельзя получить заново: именно это отделяет экономию токенов от необратимой потери состояния.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



