- Главная
- Искусственный интелект
- Начальный контекст сессии: что видит агент
Начальный контекст сессии: что видит агент
Мы разобрали на прошлом уроке, как настроить разрешения агента, чтобы он не делал ничего неожиданного. Но каждый разговор с агентом начинается с одного и того же: в его контекст загружается информация, которую вы не писали и не выбирали вручную. Агент получает «паспорт» проекта при старте — и от содержимого этого паспорта зависит, насколько правильно он поймёт вашу задачу. В этом уроке разберём, что именно попадает в контекст сессии при запуске, кто это определяет и как на это можно влиять.
Что такое начальный контекст
Агент не стартует с пустым окном: в момент создания сессии harness собирает набор данных и помещает их в контекст, чтобы агент понимал, кто он, где работает и как должен себя вести. Этот набор становится фундаментом, на котором строится всё остальное общение.
Начальный контекст отличается от информации, которую вы добавляете по ходу диалога, двумя свойствами. Во-первых, он не зависит от вашего запроса — вы не контролируете каждый элемент напрямую. Во-вторых, он занимает токены ещё до того, как вы что-то спросили: чем тяжелее начальный контекст, тем меньше окна остается для вашей задачи. Понимание состава начального контекста — это понимание скрытых расходов каждой сессии.
Из чего собирается начальный контекст
Состав начального контекста зависит от harness, но общие элементы совпадают у всех инструментов. Если разложить типовую загрузку, получается четыре источника, каждый со своей ролью и своим объёмом.
| Источник | Что попадает в контекст | Размер |
|---|---|---|
| Системный промпт | Описание роли агента, базовые правила поведения, формат ответов | Несколько сотен токенов — малая, но постоянная часть |
| Файлы инструкций | AGENTS.md, .cursorrules и аналогичные файлы в корне проекта |
От нескольких сотен до тысяч токенов — зависит от проекта |
| Память (memory) | Сохранённые заметки из предыдущих сессий | Растёт со временем — от нуля до тысяч токенов |
| Файлы проекта | Код, README, конфиги, которые агент просит прочитать или которые загружаются по правилам | От нуля до всего проекта — самый вариативный источник |
Первые три источника загружаются автоматически при старте почти любого harness. Четвёртый — файлы проекта — зависит от настроек: некоторые агенты читают всю структуру проекта, другие — только точечные файлы по правилам. Разница между «загрузить всё» и «загрузить только README» может составлять десятки тысяч токенов.
Системный промпт
Она описывает, как агенту следует себя вести: какие инструменты ему доступны, как форматировать ответы, в каком стиле общаться с пользователем. Вы не видите этот промпт в обычной работе, но он занимает токены в каждой сессии, и его объём фиксирован.
От системного промпта зависит «личность» агента: его манера отвечать, расположенность к использованию определённых инструментов, базовые ограничения. Его нельзя изменить простой правкой — обычно он встроен в сам harness или поставляется с ним. Полезно хотя бы раз заглянуть в документацию harness, чтобы понять, какой промпт он передаёт модели, — это объясняет многие паттерны поведения агента «из коробки».
Если системный промпт кажется слишком длинным или содержит правила, которые вам не нужны, проверьте, можно ли его переопределить. Некоторые harness позволяют передать свой системный промпт через переменную окружения или конфигурационный файл. Даже небольшое сокращение системного промпта экономит сотни токенов в каждой сессии — а за день таких сессий может быть десяток.
Файлы инструкций: AGENTS.md
AGENTS.md (или его аналоги — .cursorrules, CLAUDE.md, инструкции проекта) — это текст, который вы кладёте в корень проекта, чтобы влиять на поведение агента.
В отличие от системного промпта, этот файл полностью в вашей власти: вы решаете, что в него писать, и агент получит его при старте сессии в этом проекте. Это главный инструмент управления начальным контекстом изнутри проекта.
Содержимое AGENTS.md напрямую влияет на то, как агент воспринимает ваш проект. Если там написано «этот проект использует React и TypeScript», агент будет предлагать решения в этих терминах, даже если вы забыли упомянуть стек в запросе. Если там написаны правила коммитов, агент будет их соблюдать. AGENTS.md работает как «преамбула» к каждой сессии, и его объём становится частью начального контекста.
Важный нюанс: AGENTS.md загружается при каждом старте, и его токены тратятся даже на те сессии, где он не нужен. Сессия «просто посмотреть файл» платит теми же токенами за весь AGENTS.md, что и сессия по рефакторингу всего проекта. Поэтому стоит держать AGENTS.md настолько лаконичным, насколько возможно, и выносить объёмные инструкции в отдельные файлы, которые агент читает по требованию (progressive disclosure).
Что помнит агент между сессиями
Когда агент сохраняет заметку в память, эта заметка загружается в начальный контекст при старте следующей сессии. Так агент «помнит» важные факты о проекте, не храня их в самой модели.
Память — двухсторонний инструмент. С одной стороны, она избавляет от повторения одних и тех же инструкций в каждом запросе: написали один раз «проект использует ESLint с Airbnb-конфигом» и больше не вспоминаете. С другой — каждая заметка в памяти увеличивает начальный контекст, и накопленные заметки могут незаметно съедать тысячи токенов. Со временем память превращается из полезного помощника в «токенный балласт», который нужно чистить.
Разные harness по-разному решают, что попадает в память. В некоторых агент записывает заметки сам, когда считает нужным; в других вы даёте команду «запомни».
Полезно раз в несколько сессий просматривать, что сохранено в памяти, и удалять устаревшие записи — это прямая экономия начального контекста.
Как управлять начальным контекстом
Полностью контролировать начальный контекст вы не сможете — системный промпт и базовые механизмы harness остаются «за кадром». Но три параметра в вашей власти: AGENTS.md, память и файлы проекта, которые загружаются автоматически.
- AGENTS.md. Держите коротким, выносите детали в подфайлы. Начинайте с одного абзаца о проекте и добавляйте правила только после того, как они реально понадобились.
- Память. Чистите регулярно: удаляйте устаревшие заметки, объединяйте похожие. Память не должна расти бесконтрольно.
- Автозагрузка файлов. Проверьте, читает ли ваш harness README, package.json, tsconfig.json и другие файлы при старте. Если автоматически загружается много — настройте исключения или отключите ненужное.
Кроме того, разные команды и запросы полезны для разных профилей начального контекста. Например, короткая задача «обнови версию в package.json» не требует полного AGENTS.md с правилами код-стайла. В таких случаях можно стартовать новую сессию с минимальным контекстом, запустив агента без загрузки файлов инструкций. Умение выбирать «вес» сессии под задачу — навык, который приходит с практикой.
Создайте два сценария старта: «быстрый» — для мелких задач без инструкций, и «полный» — для серьёзной работы над проектом. Быстрый старт экономит токены в 80% случаев: вы открываете сессию, задаёте вопрос и закрываете, не расходуя контекст на файлы, которые не понадобились. Настройте для этого отдельный алиас или команду быстрого запуска harness.
Цена начального контекста
Проблема усугубляется с ростом проектов. В большом монорепозитории AGENTS.md может занимать 2000-3000 токенов, память — ещё 1000-2000, а автозагрузка конфигов — ещё несколько сотен. Итоговый начальный контекст в 5-6 тысяч токенов — не редкость для зрелого проекта. Это означает, что 15-20% окна заняты до того, как вы задали первый вопрос, и граница Dumb Zone приближается на 15-20% быстрее.
Единственный способ бороться с этим — измерять и минимизировать. Некоторые harness показывают размер начального контекста при старте, другие — нет. Даже если инструмент этого не делает, можно оценить объём «вручную»: подсчитайте токены в AGENTS.md, в заметках памяти и в автозагружаемых файлах. Зная эти цифры, вы можете осознанно решать, что стоит держать, а что пора убрать.
Итоги
AGENTS.md, памяти и автоматически загружаемых файлов проекта.Управлять напрямую можно двумя последними: держите файлы инструкций компактными, чистите память и настраивайте автозагрузку под свои задачи. Чем легче начальный контекст, тем больше окна остаётся для работы и тем дольше сессия остаётся в Smart Zone.
В следующем уроке разберём проблему избыточности контекста: как выглядит ситуация, когда в сессии слишком много информации, и почему это хуже, чем её нехватка.
Глоссарий
- Начальный контекст (initial context) — информация, загружаемая в сессию агента до первого запроса пользователя.
- Системный промпт (system prompt) — фиксированная инструкция, которую harness передаёт модели при старте каждой сессии.
- AGENTS.md — файл инструкций в корне проекта, определяющий поведение агента в этом проекте.
- Память (memory, auto-memory) — механизм сохранения заметок между сессиями, загружаемых в начальный контекст.
- Progressive disclosure — принцип, при котором объёмные инструкции выносятся в отдельные файлы и загружаются по требованию, а не при старте.
- Токен — единица измерения текста, используемая LLM для обработки и ограничения контекстного окна.
- Context window — максимальный объём текста (в токенах), который модель может обработать за один раз.
- Smart Zone — продуктивный диапазон заполнения context window, в котором агент рассуждает качественно.
- Dumb Zone — состояние сессии, в котором переполненный контекст снижает качество работы агента.
- Harness — программа-оболочка, через которую пользователь взаимодействует с LLM и управляет агентом.
- Сессия (session) — один непрерывный разговор с агентом, ограниченный context window.
- Statelessness — свойство LLM не сохранять информацию между запросами, требующее внешних механизмов памяти.