Когда работаешь с большим проектом в редакторе кода, задачи редко укладываются в пару шагов. Нужно перебрать несколько файлов, поправить архитектуру, найти баг, потом вернуться к тому, с чего начинал. Это длинная история – и именно здесь у ИИ-ассистентов традиционно возникают проблемы.
Команда Cursor столкнулась с этой проблемой при разработке своего агента Composer и нашла способ её обойти – не через увеличение памяти модели, а через изменение того, как она обучается.
Контекстное окно – это не просто технический предел
У любой языковой модели есть так называемое контекстное окно – грубо говоря, объём информации, который она может удерживать «в уме» одновременно. Представьте, что вы читаете книгу, но можете держать в голове только последние 50 страниц. Всё, что было раньше – уже не влияет на ваши выводы.
Для коротких задач это не критично. Но когда агент работает над чем-то сложным – длинной цепочкой действий, большим рефакторингом, многоэтапной отладкой – полезная история быстро выходит за пределы этого окна. И модель начинает «забывать» ранние шаги, терять нить задачи, повторяться.
Один из распространённых способов борьбы с этим – суммаризация: агент периодически сжимает историю своих действий в краткое резюме, чтобы освободить место для новых шагов, не теряя при этом суть того, что уже сделано. Composer делает именно это – он умеет сворачивать предыдущие действия в компактное описание и продолжать работу уже с ним.
Звучит разумно. Но здесь появляется неочевидная проблема: откуда модель знает, как правильно суммаризировать?
Когда модель учится не тому, что делает
Обычно агентов обучают на траекториях – последовательностях действий, которые привели к правильному результату. Но длина этих траекторий ограничена тем самым контекстным окном. Всё, что выходит за его рамки, в обучение просто не попадает.
Получается замкнутый круг: модель учится работать на коротких историях, но на практике сталкивается с длинными. Суммаризация в такой схеме существует сама по себе – её качество никак не связано с тем, насколько хорошо агент справляется с задачей в итоге.
Проще говоря: модель может научиться делать красивые резюме, которые при этом не помогают ей довести дело до конца.
Идея: сделать суммаризацию частью обучения
Команда Cursor предложила другой подход. Вместо того чтобы рассматривать суммаризацию как вспомогательную функцию, они встроили её прямо в процесс обучения Composer.
Вот как это работает на уровне идеи. Берётся длинная траектория – такая, которая не помещается в контекстное окно целиком. Она разбивается на части. Первая часть «сворачивается» в резюме. Затем модель обучается продолжать задачу, опираясь уже на это резюме – и так далее по цепочке.
Ключевое здесь вот что: качество суммаризации теперь оценивается не абстрактно, а через то, насколько хорошо модель справляется с задачей дальше. Если резюме оказалось неточным или потеряло важные детали – модель споткнётся на следующих шагах. Это и есть обучающий сигнал.
Таким образом, модель учится не просто пересказывать историю своих действий, а делать это так, чтобы пересказ действительно был полезен для продолжения работы.
Почему это важно именно сейчас
По мере того как ИИ-агенты берутся за всё более сложные задачи, умение работать с длинными горизонтами становится одним из ключевых. Агент, который «забывает» контекст через 20 шагов, просто не справится с серьёзной инженерной задачей.
Увеличение контекстного окна – один из путей, но он дорогой и имеет физические ограничения. Научить модель эффективно сжимать и использовать собственную историю – это другой путь, и, судя по всему, более гибкий.
Подход Cursor интересен тем, что он не требует принципиально новой архитектуры. Это скорее изменение в логике обучения: суммаризация перестаёт быть «надстройкой» и становится частью того, за что модель получает оценку.
Что остаётся неясным
Пока это подход, описанный в блоге компании, а не независимо проверенный результат. Насколько хорошо он работает на практике – вне тестовых условий, на реальных проектах с непредсказуемой структурой – предстоит увидеть.
Открытый вопрос и в том, как хорошо модель справляется с очень длинными цепочками – когда суммаризаций уже несколько, и каждая следующая опирается на предыдущую. Ошибки здесь могут накапливаться.
Тем не менее направление выглядит логично. Агенты, которые умеют правильно «помнить», смогут браться за более сложные задачи – и доводить их до конца.