- Главная
- Искусственный интелект
- Сессии и контекст: как работает память агента
Сессии и контекст: как работает память агента
В предыдущем уроке мы разобрали, что один шаг агента состоит из множества запросов к провайдеру, и каждый следующий запрос несёт в себе всё, что было до него. Но где именно «всё это» хранится между запросами? Ответ — в сессии и в её контексте. В этом уроке разберём, что такое сессия, что такое контекстное окно (context window), что в него попадает и почему со временем каждый запрос становится дороже.
Что такое сессия
Сессию можно сравнить с рабочим столом. Вы раскладываете на нём документы, делаете пометки, перемещаете вещи. Пока стол не убран, всё остаётся на своих местах и вы можете в любой момент вернуться к любой детали. Когда вы убираете стол (закрываете сессию), все эти вещи исчезают из поля зрения, и новая сессия начинается с чистого листа.
В разных инструментах сессии называются по-разному: диалог, чат, thread, контекстная сессия. Смысл один — это контейнер, который хранит историю взаимодействия и передаёт её модели в каждом запросе.
Что такое контекстное окно
Размер окна у разных моделей разный. Современные модели имеют окна от 8 тысяч до 200 тысяч токенов и более. Для сравнения: 8 тысяч токенов — это примерно 20-25 страниц текста, а 200 тысяч — уже целая книга. Но важно понимать: большой размер окна — это не «бесплатная память», а скорее «большой чемодан»: носить его можно, но каждый раз, когда вы его несёте, вы платите за вес.
| Размер окна | Примерный объём текста |
|---|---|
| 8 000 токенов | 20-25 страниц |
| 32 000 токенов | 80-100 страниц |
| 128 000 токенов | 300-400 страниц |
| 200 000 токенов | 500-600 страниц |
Ключевой момент: окно — это потолок, но не рекомендация. Заполнять его целиком не нужно и, как мы увидим в уроке про Smart Zone, даже вредно для качества рассуждений.
Что попадает в контекст
- Системный промпт — глобальные инструкции агента: кто он, какие у него правила и ограничения. Этот блок присутствует в каждом запросе.
- История сообщений — ваши сообщения, ответы агента и промежуточные результаты работы инструментов.
- Инструкции проекта — содержимое файлов вроде AGENTS.md, которые агент загружает при старте сессии.
- Описания инструментов — схемы доступных функций, которые отправляются в каждом запросе и занимают тысячи токенов.
- Содержимое файлов — файлы, которые агент прочитал по ходу работы, попадают в контекст целиком или частично.
- Выводы команд — результаты выполнения bash-команд, тестов, сборок добавляются в историю как сообщения.
Обратите внимание на последние два пункта: именно они чаще всего «съедают» контекст незаметно. Вывод команды на 500 строк или файл на 2 000 строк — это десятки тысяч токенов, которые будут отправляться в каждом последующем запросе.
Как контекст растёт между шагами
Контекст сессии не пересобирается с нуля перед каждым запросом — он накапливается.
Каждый новый шаг добавляет в историю новые сообщения, и каждый следующий запрос к модели содержит весь предыдущий контекст плюс новые данные.
Посмотрим на простой пример. Вы просите агента починить баг в модуле авторизации.
Шаг 1: запрос (история = системный промпт + ваше сообщение, 4 000 токенов)
Шаг 2: запрос (история + содержимое файла auth.ts, 12 000 токенов)
Шаг 3: запрос (история + вывод тестов, 15 000 токенов)
Шаг 4: запрос (история + ещё одна правка, 18 000 токенов)
К четвёртому запросу модель получает уже 18 000 токенов, хотя ваше исходное сообщение занимало всего пару сотен. Именно поэтому, как мы говорили в уроке про шаги, один короткий вопрос в конце длинной сессии может стоить дороже длинного вопроса в начале.
Из этого следует важное правило: стоимость шага пропорциональна накопленному контексту, а не длине последнего сообщения. Рост контекста — это не баг, а следствие того, что модель должна «помнить» всё, что было раньше, чтобы работать согласованно.
Пределы контекстного окна
- Ошибка переполнения — запрос отклоняется, потому что он превышает лимит модели. Это худший сценарий: работа прерывается, и вы теряете ход.
- Автоматическое сжатие (compaction) — harness сам сокращает историю, оставляя краткую выжимку. Тема compaction будет подробно разобрана в одном из следующих уроков.
- Отбрасывание старых сообщений — самые ранние сообщения удаляются, чтобы освободить место. Риск: агент «забывает» важные детали из начала сессии.
Ни один из вариантов не является бесплатным: в любом случае часть информации теряется или искажается. Поэтому правильная стратегия — не дожидаться упора в потолок, а управлять контекстом осознанно: следить за его ростом и вовремя начинать новую сессию или чистить историю.
Следите за числом токенов накопленного контекста в статусной строке или логах вашего harness. Когда контекст заполнен примерно на 30-40%, начинайте планировать: либо завершайте текущую задачу, либо готовьтесь к следующей сессии. Это проще, чем потом разбираться с потерянной информацией после автосжатия.
Как harness управляет контекстом
Одна из ключевых настроек — что попадает в контекст автоматически, а что нет. Например, harness может загружать в контекст инструкции проекта при старте, но не читать файлы, пока модель сама не запросит их через инструмент. Такая модель работы называется «чтение по требованию» и позволяет держать контекст лёгким.

Другая важная деталь — как harness обрабатывает выводы инструментов. Одни harness-ы добавляют каждый вывод в историю как отдельное сообщение, другие обрезают длинные выводы или сохраняют только фрагменты. От этой логики напрямую зависит, как быстро растёт ваш контекст.
Наконец, harness управляет и тем, что отправляется в запрос, а что остаётся «за кадром». Часть информации может храниться локально и подгружаться только по необходимости. Понимание настроек своего harness — это первый шаг к осознанному управлению контекстом, к которому мы вернёмся в практических уроках.
Сессия и контекст: в чём разница
Сессия и контекст — связанные, но не одинаковые понятия, и их часто путают. Разграничим их чётко.
| Сессия | Контекст |
|---|---|
| Период непрерывной работы | Содержимое, которое отправляется модели |
| Имеет начало и конец | Имеет размер и потолок |
| Хранит историю и состояние | Является «срезом» этой истории на момент запроса |
| Управляется пользователем | Управляется harness и моделью |
Простая метафора: сессия — это комната, в которой вы работаете, а контекст — это стол, на который выкладываются документы в каждый конкретный момент. Комната может быть большой, но на стол помещается только ограниченное количество бумаг.
Из этой разницы следует практический вывод: когда вы начинаете новую сессию, вы не «теряете» модель — вы теряете накопленный контекст. Модель та же, но она больше не видит историю предыдущей работы, поэтому ей придётся объяснять всё заново. Это ключевая идея, на которой строится управление сессиями.
Почему пустой контекст — это тоже проблема
Агент с пустым контекстом — это новый сотрудник в первый день работы: он не знает архитектуры, не знает ваших предпочтений и будет задавать сотни уточняющих вопросов или принимать решения наугад. Поэтому в контекст обязательно нужно класть минимум: инструкции проекта, ключевые факты о задаче и сжатый итог предыдущей работы.
Искусство управления контекстом — это баланс между двумя крайностями: переполненным окном, где всё дорого и качество рассуждений падает, и пустым контекстом, где агент работает «вслепую». Этот баланс — центральная тема всего курса, и в следующем уроке мы разберём его главный инструмент.
Прежде чем начинать новую сессию, попросите агента сформировать краткую выжимку: что сделано, какие решения приняты, что осталось. Эту выжимку можно вставить в начало следующей сессии как «память» — так вы сохраняете ключевой контекст, не таща за собой всю историю и не тратя токены на устаревшие детали.
Типичные ошибки
- Путать сессию и контекст: сессия — это период работы, контекст — то, что видит модель в конкретный запрос.
- Считать, что большой context window означает «можно не следить за контекстом» — окно лишь потолок, а не рекомендация.
- Игнорировать рост контекста до упора в лимит, а потом удивляться дорогим запросам и автосжатию.
- Начинать новую сессию на каждый вопрос без передачи итогов — агент теряет всю память о проекте.
- Не настроить «чтение по требованию» и позволять harness тянуть в контекст лишние файлы и выводы команд.
Итоги
Контекст растёт с каждым шагом, потому что каждый запрос несёт всю предыдущую историю, и именно этот рост определяет стоимость работы. Управлять контекстом — значит держать его достаточно полным для понимания задачи, но достаточно лёгким, чтобы не упираться в потолок и не терять качество.
В следующем уроке разберём ключевую концепцию курса — Smart Zone и Dumb Zone: как заполнение контекстного окна влияет на способность агента рассуждать и почему нужно оставаться в «умной зоне».
Глоссарий
- Сессия (session) — период непрерывной работы агента с общей историей, от запуска до завершения.
- Context window — максимальный объём токенов, который модель обрабатывает за один запрос.
- Токен — минимальная единица текста, которой модель считает вход и выход.
- Системный промпт — глобальные инструкции агента, присутствующие в каждом запросе.
- История сообщений — накопленная переписка и результаты инструментов, передаваемые модели.
- Harness — программа, связывающая пользователя и модель: собирает запросы, выполняет инструменты, ведёт контекст.
- Compaction — автоматическое сжатие истории при приближении к лимиту окна.
- Чтение по требованию — стратегия, при которой файлы попадают в контекст только по явному запросу модели.
- Инструкции проекта — файлы вроде AGENTS.md, задающие правила работы агента в конкретном проекте.
- Smart Zone / Dumb Zone — концепция деградации рассуждений агента по мере заполнения контекста.