Комментарии 20
Интересно, но выглядит так, что из-за более частых компактов будет больше проблем с тем, что меньше запросов будет попадать в кэш, будет просто больше расход. Если использовать нормальную модель, то в принципе невыгодно делать компакт раньше времени.
поработал день, вижу, что они не стали намного уж более частыми, но стали более своевременными, чего собственно и требовалось, а намерения отлично переживают компакт.
агент стал осознаннее делить работу на фазы и подчищаться перед очередной. в итоге не видел, чтобы кодоправки по фазе попадали в компакт. как будто бы супер)
ну вы бы померяли бы хоть один раз выходной результат , должен же по итогу код улучшиться
пока не понимаю как измерять и что, ресерч по гуглу выглядит так:
Исследования показывают, что заявленный размер контекстного окна и реально полезный контекст — разные вещи. С ростом истории модели хуже используют информацию, чаще закрепляют ранние ошибки и теряют актуальную линию рассуждения. Это происходит даже тогда, когда нужный факт найден и расположен рядом с текущим вопросом: мешает уже сама длина ввода. Важная информация обычно надёжнее работает ближе к концу контекста, хотя современные модели стали устойчивее к её положению.
Для разработки оптимален не пустой и не максимально полный контекст, а короткое актуальное рабочее состояние. Внутри незавершённой диагностики, правки или проверки полезно сохранять подробную историю. После завершения смыслового этапа её лучше заменить структурированным резюме: цель, ограничения, принятые решения, доказанные факты, состояние работы и точное следующее действие.
Обычный автокомпакт срабатывает по длине и может оборвать работу посередине этапа. Наш подход управляет границей: агент заранее видит остаток, завершает неделимый блок, сохраняет checkpoint, выполняет compact и затем перепроверяет изменяемое состояние. В исследовании SWE-агентов похожая фазовая схема решила 57,6% задач против 53,8% у порогового сжатия и 49,8% у контекста без управления.
Таким образом, преимущество нашего подхода находится не столько в особом алгоритме сжатия, сколько в выборе безопасного момента и точной передаче состояния. Его ожидаемый эффект — меньше смыслового дрейфа, повторного исследования и ошибочных продолжений, а заодно меньше входных токенов и задержки. Цена — небольшой расход на checkpoint и перепроверку.
Красивая идея. Более того, вот так, с послезнанием, возникает вопрос: почему это решение не реализовано создателями LLM-coding систем?
А какую проблему то решаете? Контекст сейчас миллион и он сам когда надо сжимается. Что стало в итоге лучше то?
изначально запретить сжатие на середине правок (показалось, что это вызывает лишние агенто-движения и потерю текущих намерений).
а получился чистый контекст для работы над куском задачи, что хорошо кмк так как хвост обладает неприятными свойствами (миллион в подписках chatgpt не выдают, вероятно в том числе по этим причинам).
я попросил агента посмотреть разницу по сессиям, там видно такое:
“Обычный compact обычно сохранял общую цель, поэтому агент не «забывал всё». Он терял точную позицию исполнения: что уже доказано, какой результат ещё не разобран, какие изменения намеренные и какое действие должно быть следующим. Это заставляло восстанавливать состояние через чтение кода, документы и повторные тесты.”;
теперь ситуация и намерения явно сохраняются лучше (в чекпоинтах) - это видно (ну или мне кажется, приглашаю потестить) плюс агент стал осознанно понимать когда ему “спать пора” (он видит остаток после каждого тулкола) и делить работу на фазы, заканчивать цельную часть работы “сегодня” и планировать “на завтра”.
оказалось, кстати, подобные предложения уже есть в issues того же кодекса и есть интересные проекты вроде magic-context, в общем тема интересная, прошу воспринимать как эксперимент)
Боже я уже 100 лет как привык к контексту лям в клод коде и вообще поэтому не понял ваши проблемы ) зашел в кодекс а там рили до сих пор 258к контекст, жесть конечно. Просто в клод коде это вообще не актуальная проблема уже давно.
Глянул еще антигравити там тоже лям контекст , в гроке 500k , вообще удивлен что кодекс плетется в самом конце и это печаль конечно
ну и как бы план он же есть изначально и ии его всегда знает и помнит и нет такой проблемы что он забывает что то из него так как он в мд файлах и всегда доступен
план плану рознь. есть несомненно общий в родмапе и детализированных кусках. тут речь о текущих планах агента вроде "ща закончу этот класс, запущу тесты потом надо вон там вот подредачить и можно браться за тот кусок фичи" - это забывается напрочь и восстанавливается (ах если бы) исследованием кода / доков / тестов итд после компакта.
так он же сам это все пишет в мд файлы достаточно подробно, если у вас такая проблема вам проще скил написать для плана, у вас просто флоу не правильный работы в агенте , а не проблема в том что контекст жмется. у нас просто такие проблемы уже пройденый этап
у вас компакта нет :D
да есть у меня компант , на разных агентах он разный, по дефолту на ляме, на средних 500к, на универсальных с большим количеством мелких задач 300к
но проблемы что он что то забыл из плана вообще нет , все что он в начале работы в план написал он сделает , план пишет агент сам для себя достаточно подробный
я и не говорю, что агент забывает общий план (он же записан!), забывается текущая ситуация вокруг компакта - ее ему приходится восстанавливать после, что заставляет агента изучать ее в разных направлениях (а с этим подходом - в узконаправленных), прогонять некоторые тесты, которые пройдены только что и заново для себя доказывать выполненность части задачи (записал бы перед компактом и готово, ну)
с другой стороны Вы сказали про клода - очевидно вы решаете совсем другие задачи)
теоретизировать тут мне сложно, я вижу более прямолинейное движение к цели и разбивку ее на осознанные куски, выполняемые на чистом контексте (что плюс по известной мне информации).
плюс план это план, но случается, что агенту приходится заходить на поле экспериментов над плохо документированными кейсами (что-то вроде деталей кадрового движка флаттера) - это череда тестов. не хочется забывать такое. хотя кнч можно и записывать. тут поле для экспериментов оператора, что мы и делаем)

Патчим Codex: управляемая амнезия без потери контекста