Память или контекст: как строят агентов, которые не забывают
Контекстное окно у топовых моделей выросло до сотен тысяч и миллионов токенов, но агенты всё равно забывают, о чём вы говорили вчера. Разбираем, чем долгосрочная память отличается от большого контекста и когда за неё стоит платить.

Осенью 2024 года у GPT-4o контекстное окно было 128 тысяч токенов, у Claude 3.5 Sonnet — 200 тысяч, у Gemini 1.5 Pro — миллион, а в отдельных превью — до двух миллионов. Казалось, проблема памяти решена: помести в окно всю историю переписки, все документы, весь код — и модель будет всё помнить. На практике агент, собранный на голом длинном контексте, забывает предпочтения пользователя между сессиями, тормозит и стоит дороже. Отсюда раскол в подходах: одни команды тянут контекст вширь, другие строят отдельный слой долгосрочной памяти. Это два разных инструмента для двух разных задач, и путать их — дорого.
Что такое контекст и что такое память
Контекстное окно — это оперативная память модели на один запрос. Всё, что вы отправили в этом обращении (системный промпт, история диалога, вложенные файлы), плюс то, что модель генерирует в ответ, должно уместиться в лимит токенов*. Как только сессия закончилась или окно переполнилось, эта информация исчезает. Модель не хранит ничего между вызовами API — каждый запрос она обрабатывает с чистого листа.
Долгосрочная память — это внешнее хранилище, которое живёт отдельно от модели. Агент сам решает, что записать (например, «пользователь предпочитает ответы на русском и работает с Python»), а перед следующим ответом достаёт релевантные записи и подкладывает их в контекст. Модель по-прежнему ничего не помнит сама — помнит инфраструктура вокруг неё.
Большое контекстное окно решает задачу «прочитай этот документ целиком». Долгосрочная память решает задачу «помни, кто я, между разговорами». Это не конкуренты, а разные слои системы.
Почему просто увеличить окно не работает
Соблазн очевиден: раз окно на миллион токенов, зачем возиться с базой данных — складывай туда всю историю. Три причины, почему так не делают.
- Цена. Оплата у большинства провайдеров идёт за входные токены. Если каждый запрос тащит за собой 300 тысяч токенов истории, вы платите за них снова и снова при каждом обращении. Кэширование части промпта снижает стоимость, но не обнуляет её.
- Скорость. Чем больше токенов на входе, тем дольше модель формирует ответ. Диалог, который тянет за собой всю историю, становится всё медленнее к концу.
- Деградация внимания. Известный эффект «потерянного в середине» (lost in the middle): модель хуже находит факт, если он спрятан в середине длинного контекста, а не в начале или конце. Забить окно под завязку не значит, что модель этим воспользуется.
Плюс окно всё равно конечно. Переписка с ассистентом за полгода не влезет ни в миллион, ни в два миллиона токенов. Рано или поздно нужен механизм, который решает, что забыть, а что сохранить.
Как устроена долгосрочная память на практике
Единого стандарта нет, но большинство реализаций собирают из нескольких блоков.
Векторное хранилище
Тексты (реплики, факты, куски документов) превращают в эмбеддинги** и складывают в векторную базу — Pinecone, Weaviate, Qdrant, pgvector в PostgreSQL. Перед ответом агент по смыслу запроса достаёт несколько самых похожих записей. Это основа подхода RAG (retrieval-augmented generation).
Резюмирование
Вместо того чтобы хранить диалог дословно, агент периодически сжимает его в краткую сводку: о чём говорили, к чему пришли, что важно помнить. Сводка занимает в разы меньше токенов, чем исходная переписка.
Структурированные факты
Отдельно от «сырого» текста хранят вытащенные факты в виде пар ключ-значение или графа: имя пользователя, часовой пояс, язык, предпочтения, незакрытые задачи. Так работает, например, память в ChatGPT, которая запоминает детали о вас между чатами.
Сравнение подходов
| Параметр | Большой контекст | Долгосрочная память |
|---|---|---|
| Что решает | Обработка большого объёма за один запрос | Сохранение знаний между сессиями |
| Срок жизни данных | До конца сессии/запроса | Неограниченно, пока не удалите |
| Стоимость на запрос | Растёт с объёмом истории | Стабильна: достаётся только релевантное |
| Сложность внедрения | Низкая: просто больший промпт | Высокая: хранилище, поиск, логика записи |
| Риск | Деградация внимания, высокая цена | Устаревшие или ошибочные записи в памяти |
Когда что выбирать
Ориентир простой — от задачи, а не от моды на длинные окна.
- Разовый анализ большого документа. Контракт, отчёт, кодовая база на один запрос — берите длинный контекст, память тут лишняя.
- Ассистент, который общается с человеком неделями. Нужна долгосрочная память: без неё пользователь будет заново объяснять контекст в каждом чате.
- Агент, выполняющий многошаговую задачу. Нужна и рабочая память на текущую сессию (промежуточные результаты), и долгосрочная — на накопленный опыт и предпочтения.
- Чат-бот поддержки по базе знаний. RAG-поиск по документам плюс короткая память на текущий диалог. Тащить всю базу в контекст не нужно и дорого.
Что появилось в 2024–2025
Тема перестала быть уделом самодельных обвязок. У OpenAI появился Assistants API с управлением тредами, а затем встроенная память в ChatGPT для потребителей. Anthropic развивает протокол MCP (Model Context Protocol) — стандарт, через который модель подключается к внешним источникам данных и инструментам, включая хранилища памяти. Отдельные фреймворки — LangChain/LangGraph, LlamaIndex — предлагают готовые модули памяти. Появились и специализированные сервисы вроде Mem0, которые берут на себя весь слой памяти.
Общий вектор: контекстное окно продолжит расти, но как транспорт, а не как хранилище. Решение, что запомнить и что подложить в окно перед ответом, всё чаще выносят в отдельный слой — потому что это дешевле, быстрее и предсказуемее, чем каждый раз грузить в модель всё подряд.
* Токен — единица, на которые модель дробит текст. Грубо: один токен — это примерно 3–4 символа русского текста, точное соотношение зависит от токенизатора модели.
** Эмбеддинг — числовой вектор, представляющий смысл текста. Близкие по смыслу фрагменты дают близкие векторы, что и позволяет искать по смыслу, а не по точному совпадению слов.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Anthropic — Model Context Protocol, OpenAI — Memory and new controls for ChatGPT
Частые вопросы
Если у модели окно на миллион токенов, зачем вообще нужна память?
Чем RAG отличается от долгосрочной памяти?
Модель сама запоминает то, о чём мы говорили?
Насколько дорого добавить память к агенту?
Может ли память навредить, а не помочь?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.