Память ИИ-агента: контекст, компакция и артефакты
Почему контекст агента кончается быстрее, чем ожидается, что стоит хранить, а что выбрасывать, как работает компакция и почему файловая память надёжнее пересказа истории.
Все статьи гида ИИ-агенты · 11
Слово «память» в применении к агенту означает не одно, а четыре разных механизма. Путаница между ними приводит к системам, которые забывают важное и помнят мусор.
Почему контекст кончается
Модель не помнит ничего между вызовами. Всё, что она «знает» в момент ответа, отправлено ей в этом же запросе.
Отсюда два следствия, определяющие всю конструкцию:
- Каждый шаг агента отправляет всю накопленную историю заново. Поэтому шаг двадцатый дороже шага первого, а не равен ему.
- Окно ограничено, и в него не влезает всё, что агент прочитал по дороге.
Что занимает место на практике: не постановка задачи, а результаты инструментов. Одна выгрузка данных, один длинный ответ API, один лог ошибок - и половина окна занята. Постановка задачи занимает проценты.
Что хранить, а что выбрасывать
Полезно разделить память на четыре типа и обращаться с ними по-разному.
Рабочий контекст. То, что нужно прямо сейчас, на текущем шаге. Живёт в окне, исчезает вместе с ним.
Результаты. То, что агент выяснил и что понадобится дальше. Должно жить снаружи: в файле или в базе. Держать выводы только в разговоре - значит потерять их при первой компакции.
Состояние. Что уже сделано. Это не удобство, а защита: при перезапуске агент должен знать, что письмо уже отправлено, иначе отправит второе - см. идемпотентные пайплайны.
Долгая память. Знание, переносимое между запусками: справочники, предпочтения, накопленные факты. Хранится во внешнем хранилище и подгружается по релевантности, а не целиком.
Правило, которое сокращает расход сильнее прочих: сырой результат инструмента не должен оставаться в контексте, если из него уже извлечено нужное. Прочитали таблицу на тысячу строк, вытащили три числа - в памяти должны остаться три числа.
Компакция
Когда окно подходит к пределу, ранняя часть разговора сжимается в пересказ. Это позволяет продолжить, но у сжатия есть цена.
Теряются детали. Пересказ сохраняет то, что выглядело важным при сжатии. Точное имя файла, конкретное значение параметра, оговорка из середины разговора - всё это исчезает.
Агент об этом не сообщает. Он продолжает работать так, будто помнит, и это опаснее явной ошибки: неполная картина выглядит как полная.
Качество падает постепенно. Не резко, а по мере накопления сжатий.
Практический вывод: компакция - это аварийный режим, а не рабочий. До неё нужно успеть зафиксировать результаты снаружи. Правильная привычка на длинной задаче: закончил осмысленный кусок - записал результат в файл или в базу, и только потом продолжил.
Файловая память
Самый надёжный и самый недооценённый механизм: агент пишет то, что выяснил, в файлы и читает их, когда нужно.
Почему это работает лучше, чем держать всё в контексте:
- Переживает компакцию и перезапуск. Контекст не переживает ни того, ни другого.
- Читается по частям. Нужен один раздел - читается один раздел, а не весь файл.
- Проверяемо человеком. Вы можете открыть файл и увидеть, что агент на самом деле выяснил, а не что он написал в отчёте.
- Переносится между агентами. В мультиагентной схеме это естественный способ передать результат.
Что обычно кладут в файлы: план работы с отметками о выполненном, найденные факты со ссылками на источник, промежуточные выгрузки, список того, что не получилось и почему.
Отдельная польза: план в файле - это защита от потери цели. Агент на длинной задаче забывает, зачем начал; план, который он перечитывает, возвращает его к исходной постановке.
Практический минимум
Для работающей системы достаточно четырёх вещей:
- Состояние в базе - что уже сделано.
- Результаты в файлах или в базе - что выяснено.
- Компакция как аварийный, а не штатный режим.
- Сырые выгрузки не остаются в контексте после извлечения нужного.
Развёрнутый разбор того, как считать бюджет контекста в агентной системе, - в блоге: архитектура бюджета контекста. Как то же самое выглядит в кодовом агенте - лимиты Claude Code. Общая картина - гид по ИИ-агентам.
Вопросы и ответы
Есть ли у ИИ-агента память между запусками?
Сама по себе - нет. Модель не помнит ничего: каждый запрос отправляет ей всю нужную историю заново. Память агента - это то, что вы храните снаружи и подкладываете в контекст, и её устройство целиком на вашей стороне.
Что такое компакция контекста?
Сжатие ранней части разговора в краткий пересказ, чтобы освободить место. Она позволяет продолжить работу, но необратимо теряет детали: то, что показалось несущественным при сжатии, восстановить уже нельзя. Поэтому важные результаты фиксируются в файлах и в базе до того, как контекст подойдёт к пределу.
Зачем агенту писать файлы, если есть контекст?
Файл переживает и компакцию, и перезапуск, и смену сессии, а контекст не переживает ничего. Плюс файл можно прочитать частями, когда он понадобится, вместо того чтобы держать его целиком перед глазами весь разговор.
Ещё по теме
- Что такое ИИ-агент и чем он отличается от чат-ботаГид
- Создание ИИ-агента: от промпта до продакшенаКак устроен путь от идеи до работающего агента: постановка задачи, выбор инструментов, цикл выполнения, тестирование до запуска и то, что нужно сделать перед выводом в прод.
- Как создать ИИ-агента: пошаговый разбор на реальном кейсеРазбор одного агента от требований до работающей системы: схема, инструменты и их описания, первый прогон и правки по его итогам, и что в результате осталось не агентом.
- ИИ-агенты для бизнеса: где они окупаются, а где нетВ каких процессах ИИ-агент даёт реальную экономию, где дешевле обычная автоматизация или найм, как считать окупаемость честно и какие риски обычно не закладывают в расчёт.
Сделаю под ключ
Соберу ИИ-агента под реальную задачу
С инструментами, памятью и логами, чтобы он работал в проде, а не только в демо.
от 1 500 $ · 1-2 недели