Кодинг-агент отработал 40 минут над рефакторингом, и на 41-й выдаёт странное предложение — как будто забыл всё, что делал ранее. Это не баг модели: агент переслал 14 534 токена на «привет» в Codex, а на 417-м ходу контекст заполнился настолько, что модель начала терять нити. Разработчик Mohammed Reschreiter сократил этот «пустой» расход на 80% — и в статье покажем, как.
Что такое контекст агента и почему это считается
Контекст — это всё, что модель видит при каждом запросе: системный промпт, определения инструментов, история диалога, содержимое прочитанных файлов. Модель ничего не «помнит» между ходами. Каждый раз она получает полный «мешок» текста и генерирует ответ заново (Claude Code Docs, Explore the context window).
Размер контекстного окна задаёт потолок — но не гарантию качества. Когда окно заполняется на 40–50%, деградирует внимание модели: она пропускает инструкции, путает переменные, галлюцинирует имена файлов. Автор одной из частых статей на Хабре формулирует проблему прямо:
Мы складываем состояние задачи в историю чата и надеемся, что модель удержит его сама. Не удержит.
— «Проблема не в промпте: как Claude Code плывет на длинных задачах», Habr, март 2026
Чем больше окно, тем дольше агент может работать без потери качества. Но и тем дороже каждый ход: агент пересылает весь контекст при каждом запросе к модели.
Контекстные окна: сравнение моделей на момент публикации
| Модель | Нативное окно | Расширяемое до | Где используется |
|---|---|---|---|
| Claude Opus 5 | 1M токенов | — | Claude Code, API |
| Claude Sonnet 5 | 1M токенов | — | Claude Code, API |
| Claude Fable 5 | 1M токенов | — | Claude Code |
| GLM-5.3 | 1M токенов | — | Open-weight, Claude Code, Ollama |
| Qwen3.8-Flash-Next | 262 144 | 1M токенов | Ollama, vLLM, SGLang |
| GPT-5.6 | 258 000 | — | Codex, API |
Данные по Claude — из документации Claude Code, по GLM-5.3 — из карточки модели на Hugging Face, по Qwen3.8-Flash-Next — из карточки модели, по Codex — из кейса m-reschreiter (контекст 258K в Codex CLI).
Миллион токенов — это примерно 750 000 слов, или ~2000 страниц текста. Звучит много, но агент съедает это быстрее, чем кажется: один файл на 500 строк — это ~3 000 токенов, вывод тестов — ещё 1 000–5 000, каждая итерация тула — от 500 до 10 000. На практике агенты работают в окне от 200K до 1M и ограничиваются компакцией задолго до лимита.
Из чего состоит контекст: реальные цифры
Автор Mohammed Reschreiter провёл бенчмарк: отправил одно слово «hi» четырём разным агентам и посмотрел, сколько токенов потрачено до первого реального действия (m-reschreiter.at):
| Агент | Тулов на старте | Токены turn zero | % от окна |
|---|---|---|---|
| Codex | 79 (100+ с плагинами) | 14 534 | 6.0% (из 258K) |
| Antigravity (Gemini) | 17 | 19 900 | — |
| Claude Code | 8–10 встроенных (30–40+ с MCP) | 3 500–14 000+ | — |
| Pi (4 тула) | 4 | 3 600 | 1.3% (из 272K) |
Antigravity с 17 тулами потратил больше Codex с 79 — потому что «лишние» тулы в Antigravity не дублируют shell-команды, а каждый несёт полную JSON-схему с описаниями параметров. Ключевая проблема: на 90% ходов агенту нужны только базовые операции (чтение, запись, shell), но все схемы загружаются и оплачиваются на каждом ходу.

Кейс m-reschreiter: минус 80% контекстного оверхеда
Mohammed Reschreiter (автор denkr.ai и агента Pi) опубликовал детальный разбор 28 августа 2026 (оригинал, обсуждение на HN). Публикация вызвала дискуссию — в частности, вопрос о влиянии на промпт-кеширование (об этом — ниже).
Проблема
Каждый агент при старте загружает JSON-схемы всех доступных тулов. В Codex это 79 инструментов с полными описаниями параметров. Даже если агенту нужны только read/bash/edit/write, модель «видит» модули управления сайтами, спавнеры подагентов, редакторы изображений и плагины безопасности. Reschreiter называет это «attention dilution» — переполнение пространства решений неактуальными опциями.
Решение: два принципа
Принцип 1. Консолидация по действию вместо CRUD. Вместо четырёх отдельных тулов (memory_read, memory_write, memory_update, memory_delete) — два: memory_read (поиск и получение) и memory_write с параметром action (create | update | delete). Схема одного тула на 15–20% больше, чем одного CRUD-тула, но заменяет три определения. Экономия на схемах — ~50%.
Принцип 2. Динамическая загрузка тулов. Вместо постоянного подключения всех инструментов — старт с четырьмя базовыми (read, bash, edit, write). Остальные тулы переходят в режим «standby» и активируются по demand через команду в shell:
pi-tool activate browser_use
При активации схема тула добавляется в контекст. Через 2 хода неиспользования TTL-счётчик обнуляет тул и контекст сжимается обратно. Вместо JSON-схемы в 500+ токенов для standby-тула — одна строка текста (~5–10 токенов) в списке доступных инструментов.
Результаты за 417 ходов
| Метрика | Статичный подход (Codex) | Pi + динамические тулы | Сокращение |
|---|---|---|---|
| Turn zero overhead | 14 500–19 900 | 3 600 | –75% до –82% |
| Активных схем | 17–79+ | 4 базовых | –76% до –95% |
| Ходов с кэш-миссом из-за тулов | — | 5 из 417 (1.2%) | — |
За сессию из 417 ходов с 669 вызовами тулов — 98.1% операций прошли через 4 базовых инструмента. Динамическая активация тулов вызвала кэш-мисс всего 5 раз за всю сессию (оригинал).

Возражение с HN: а кэш?
На HN один из комментаторов высказал сомнение: каждое подключение/отключение тула ломает кэш-префикс (тред). Другой добавил: удаление тулов — «instant cache nuke». Reschreiter ответил телеметрией: активация тулов отвечала за 1.2% кэш-мисс (5 из 417 ходов). Основные причины сброса кэша — компакция и чтение больших файлов (40%), смена модели (20%) и idle-timeout (13%). Подробнее про механику кэша — в статье «Промпт-кеширование: как экономить на API агентов».
Паттерны, которые работают
1. AGENTS.md как постоянный контекст
Файл AGENTS.md (или CLAUDE.md в Claude Code) загружается в начале каждой сессии и переживает компакцию. Это единственный способ гарантированно донести до агента правила, которые не потеряются при сжатии контекста.
Иерархия файлов в Claude Code (документация):
— Организация — /Library/Application Support/ClaudeCode/CLAUDE.md (macOS), все сотрудники
— Пользователь — ~/.claude/CLAUDE.md, все проекты
— Проект — ./CLAUDE.md, команда через git
— Локальный — ./CLAUDE.local.md, только вы
Аналогичные файлы существуют у других агентов: Codex читает AGENTS.md, OpenCode — AGENTS.md и CLAUDE.md. Стандарт описан в статье «AGENTS.md: файл-конвенций, который понимают все AI-агенты».
Практическое правило: держите файл короче 200 строк. Всё, что не касается всего проекта — выносите в path-scoped rules или скиллы, чтобы грузилось по требованию, а не тратило контекст на каждом ходу.
2. Компакция: сжатие контекста на лету
Компакция заменяет историю диалога структурированным резюме. В Claude Code команда /compact, в Codex — автоматическая при приближении к лимиту. Что происходит после сжатия (документация):
| Что было | После компакции |
|---|---|
| Системный промпт | Не меняется |
| Корневой CLAUDE.md | Перечитывается с диска |
| Вложенные CLAUDE.md | Потеряны до повторного чтения |
| Skill-инструкции | Перечитываются (лимит 5 000 токенов/скилл) |
| Прочитанные файлы | Claude перечитывает до 5 последних |
Приём с фокусом: запускайте компакцию с указанием, что важно сохранить:
/compact focus on the auth bug fix и список изменённых файлов
Без фокуса автоматическая компакция выбирает, что оставить, по своим эвристикам — и может выбросить как раз то, что вам нужно.
Команда /autocompact 500k позволяет запускать компакцию раньше — при 500K токенах вместо лимита модели. Полезно, если вы замечаете деградацию качества до заполнения окна.
3. Сабагенты: изоляция тяжёлых задач
Сабагент работает в собственном контекстном окне. Когда вы делегируете ему исследование большого файла или поиск по кодовой базе — основное окно остаётся чистым. В родительскую сессию возвращается только резюме.
Используй сабагентов, чтобы исследовать, как система аутентификации
обрабатывает обновление токена и есть ли готовые OAuth-утилиты.
Подход m-reschreiter идёт дальше: динамическая активация тулов работает в сабагентах аналогично основной сессии — по 4 базовых тула на агента, специализированные — по demand.
4. /clear между задачами
Самый недооценённый инструмент. Старая история не просто занимает окно — она стоит токенов на каждом ходу. Один вопрос «а что там с ошибкой?» в сессии, открытой весь день, пересылает контекст за весь день. Команда /clear обнуляет историю, сохраняя только системный промпт и файлы памяти (документация).
5. Точечные инструкции вместо размазанных
m-reschreiter фиксирует ещё один паттерн: моделям «нравится overthinking». Когда агенту даётся размытая задача, модель начинает «исследовать» контекст, читает лишние файлы, генерирует промежуточные резюме — и сжирает окно. Решение — формулировать задачу точно:
| Размыто | Точно |
|---|---|
| «Исправь баг в авторизации» | «Добавь проверку refresh_token в middleware/auth.py:37. Если token пустой — верни 401» |
| «Улучши тесты» | «Добавь 3 теста в test_auth.py: edge cases для expired, malformed и отсутствующего токена» |
Точная инструкция = меньше ходов = меньше контекста = ниже стоимость.
Практика по инструментам
Claude Code
/context— показывает, что занимает окно/compact [фокус]— сжатие с указанием приоритетов/clear— обнуление истории между задачами/autocompact 500k— досрочная компакция- Сабагенты — автоматические при исследовании больших файлов
- Deferred Tool Loading — автоматическая отложенная загрузка тулов при превышении 10% окна (документация)
Подробнее про контекст Claude Code — в статье «Контекст Claude Code: как управлять памятью агента».
Codex (OpenAI)
Codex загружает все подключённые тулы при старте сессии. На момент публикации (Codex 0.151.0) — 79 тулов по умолчанию, 100+ с плагинами и MCP-серверами. Контекстное окно — 258K токенов (GitHub Releases).
Приёмы экономии:
— Отключайте неиспользуемые MCP-серверы до старта сессии
— Используйте extensions для фильтрации результатов тулов — Codex 0.151.0 позволяет перехватывать MCP tool results (Changelog)
— Начинайте новую сессию при смене задачи
OpenCode
OpenCode поддерживает файлы AGENTS.md и CLAUDE.md, подключение провайдеров через Zen. Контекстное окно зависит от выбранной модели. Приёмы те же: короткие файлы памяти, /clear между задачами, делегирование сабагентам.
Промпт-кеширование и контекст
Длинные сессии без кэширования были бы разорительными: агент пересылает весь контекст на каждом ходу, и за 50 ходов с контекстом 200K токенов набегает 10 миллионов входных токенов. С кэшированием по префиксу (Anthropic: чтение за 0.1× от ставки входа) тот же объём обходится в ~$2.4 вместо $20 (блог Anthropic).
Ключ к кэшу — стабильный префикс: системный промпт и определения тулов не меняются, а история растёт в хвосте. Динамическая загрузка тулов (кейс m-reschreiter) затрагивает префикс, но телеметрия показывает: 98.8% ходов шли с нулевым штрафом за тулы (оригинал).
Детальный разбор ставок и механики — в статье «Промпт-кеширование: как экономить на API агентов».
Российские реалии
Тема оптимизации контекста в рунете освещена — в основном для Claude Code:
- «Проблема не в промпте: как Claude Code плывет на длинных задачах» (Habr, март 2026) — деградация длинных сессий, context engineering
- «/compact в Claude Code: как работает сжатие контекста» (okhlopkov.com) — что переживает компакция, стоимость холодного возобновления
- «Как правильно начинать новую сессию в Claude Code?» (vc.ru) — практика работы с сессиями
Отдельного русскоязычного разбора динамической загрузки тулов и оптимизации контекста для «общих» агентов (не только Claude Code) на момент публикации нет.
Доступность агентов из РФ:
| Инструмент | Доступ из РФ | Оплата |
|---|---|---|
| Claude Code | Без VPN не запустится (Anthropic не поддерживает РФ) | Карты РФ не работают; UnionPay/крипта/юрлицо за рубежом |
| Codex | Нужен аккаунт OpenAI (РФ не в списке поддерживаемых) | Аналогично |
| OpenCode | Работает без VPN, подключает бесплатные модели через Zen | Бесплатно через провайдеры |
| Локальные модели (Ollama) | Без ограничений | Только железо |
Обзор способов оплаты — в статье про установку Claude Code и в практическом опыте «Как стать вайбкодером». Для старта без VPN и зарубежных карт подойдёт OpenCode с бесплатными моделями или локальные модели через Ollama — обзор в статье про локальные нейросети для кодинга.
Честные ограничения
- Миллион токенов — не бесконечная память. Даже 1M контекста деградирует по мере заполнения. Это просто больший запас, а не решение проблемы.
- Компакция — потеря данных. Резюме не хранит всех деталей. Вложенные CLAUDE.md и path-правила теряются до повторного чтения файла.
- Динамическая загрузка тулов — не готовое решение для всех. Кейс m-reschreiter реализован на Pi (open-source агент с lifecycle-хуками). Claude Code и Codex не дают прямого контроля над набором тулов — Deferred Tool Loading работает автоматически и не настраивается.
- Агенты разных поколений — разные окна. Codex с 258K и Claude Opus 5 с 1M — разница в 4 раза. Тот же код, те же файлы, разная ёмкость контекста.
- Overthinking — проблема промпта, а не контекста. Точная инструкция снижает расход токенов больше, чем любая техническая оптимизация.
- Из РФ — двойное ограничение. Технические проблемы контекста не исчезают, к ним добавляется доступ к самим сервисам.
Вывод
Контекст — главный ресурс кодинг-агента: он конечен, дорожает по мере заполнения и теряет детали при компакции. Три уровня оптимизации:
- На уровне инструмента: короткие файлы AGENTS.md (менее 200 строк),
/clearмежду задачами,/compactс фокусом, делегирование сабагентам - На уровне архитектуры: консолидация CRUD-тулов в action-based, динамическая загрузка инструментов по demand (как в Pi), отключение неиспользуемых MCP-серверов
- На уровне промпта: точные инструкции вместо размытых, ограничение scope задачи, избегание overthinking
Кейс m-reschreiter показывает: даже при статичном наборе тулов 98% ходов обходятся 4 инструментами. Разница между 14 500 и 3 600 токенами на старте — это не теория, а реальная телеметрия за 417 ходов.
Дальше по теме: контекст Claude Code, промпт-кеширование, AGENTS.md: файл-конвенций, агентный кодинг: что это.
