Структура модуля
AI не тупеет. У него заканчивается внимание.
«AI nimani ko'rmoqda — va nimani unutib qo'ydi»Эта техника — самая полезная в курсе. Но решать тебе. Один навык: видеть что у агента в контексте, что он уже потерял, и чем его дозаправить. Без этого Claude Code превращается в гадалку к третьему часу работы.
Hook — почему сильный AI к вечеру тупеет.Nega kuchli AI kechqurun ahmoqlashadi
Утром ты открыл claude в ~/mars/src/. Идея — переписать роутер уведомлений. Утро шло гладко: агент прочитал 12 файлов, нашёл нужный модуль, предложил план. Ты согласился. Он сделал. Тесты зелёные.
Дальше ты остался в том же чате. Добавил вторую задачу. Третью. К обеду — рефактор миграций. К пяти — обсуждали ещё кусок sales-воронки.
В семь вечера попросил «запусти тесты которые мы прошли утром». И тут он начал переписывать совсем другой файл. Не помнит, что вы решили утром. Уверенно идёт в стену.
Это не баг. Это не «модель устала». Это context rot — и это первое, чему учится оператор.
Три навыка, которые я проверю
- Запускать
/compactдо того как агент начал галлюцинировать в длинной сессии — по наблюдаемым сигналам, а не по таймеру. - Делегировать
ExploreилиPlansub-agent (built-in или свой через/agents), когда задача требует исследования файлов, а не правки. - Объяснять, что survives
/compact, что нет, и почему project-rootCLAUDE.md— единственный надёжный носитель правил для длинной сессии.
Mental model — context window как working memory.Context window — bu working memory
Anthropic в сентябре 2025 выпустили длинный пост про context engineering — это центральный источник этого модуля. Ниже — три цитаты verbatim, под каждой моя версия по-русски. Если язык поплыл — оригинал рядом, доверять надо ему.
1. Attention budget — внимание как бюджет, не как полка
«Like humans, who have limited working memory capacity, LLMs have an "attention budget" that they draw on when parsing large volumes of context. Every new token introduced depletes this budget by some amount.»
Почему это так — Anthropic дают архитектурный ответ. Трансформер позволяет каждому токену смотреть на каждый другой токен. Для n токенов — это n² попарных связей. Удвоил контекст — учетверил нагрузку на attention.
«These factors create a performance gradient rather than a hard cliff: models remain highly capable at longer contexts but may show reduced precision for information retrieval and long-range reasoning compared to their performance on shorter contexts.»
context overflow. Ты увидишь, что агент уверенно делает не то.Anthropic сами не определились. Academy («AI Capabilities and Limitations», lesson 8) формулирует это как «cliff» — резкий обрыв, когда модель перестаёт справляться. Engineering-блог («Effective context engineering», Sep 2025) — как «gradient», плавная деградация. Мы взяли gradient — он лучше описывает то, что эмпирически видно на benchmark'ах (long-context retrieval). Но если будешь читать Academy и встретишь «cliff» — не удивляйся, это не противоречие источников, это два разных способа описать одно явление.
2. Context rot — не «забыл», а «размылось»
Anthropic вводят термин context rot: чем больше токенов в окне, тем хуже модель достаёт из них информацию. Это не баг конкретной модели — это свойство трансформера.
Правило оператора: если ты замечаешь нарушение конвенции, лишние Read'ы, или «уверенную ерунду» — это не повод писать жёстче промпт. Это сигнал применить технику из следующего раздела.
3. Anatomy of effective context — что вообще держать в окне
«Good context engineering means finding the smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome.»
Anthropic называют это «Goldilocks zone» — между двумя ошибками: с одной стороны brittle hardcoded if-else в промпте, с другой — vague high-level guidance, рассчитанный на «модель сама догадается». Хороший контекст — specific enough to verify, flexible enough to think.
Для оператора это значит: CLAUDE.md — не «всё, что я знаю про проект». Это plant конкретных правил, которые ты сможешь проверить, что они применились. Если правило нельзя проверить по diff'у — оно зря в контексте.
Три техники long-horizon из Anthropic blog.Uzun masofa uchun uchta texnika
Это сердце модуля. Anthropic выделяют три приёма для задач, которые не помещаются в одно окно. Каждой — соответствие в Claude Code. Учи как пары «техника → команда».
Сожми диалог, оставь смысл
Берём длинный чат у границы окна, суммируем, начинаем новое окно с этой выжимки. В Claude Code — команда /compact.
Пиши заметки на диск
Агент или ты ведёт NOTES.md / todo-list вне контекста. Подгружается обратно когда нужно. Это agentic memory.
Делегируй в чистое окно
Sub-agent работает в своём context window, читает 15 файлов в своём окне, возвращает в main только сжатый summary (1-2K токенов).
Compaction — /compact в Claude Code
«In Claude Code… we implement this by passing the message history to the model to summarize and compress the most critical details. The model preserves architectural decisions, unresolved bugs, and implementation details while discarding redundant tool outputs or messages. The agent can then continue with this compressed context plus the five most recently accessed files.»
Ещё важный факт из Claude Code docs (docs/04-claude-code-memory.md): project-root CLAUDE.md survives compaction. После /compact Claude перечитывает его с диска и снова инжектит в сессию. Это значит:
/compactCLAUDE.md (re-injected с диска — единственный подтверждённый survivor по docs)~/.claude/CLAUDE.md и nested CLAUDE.md из subdirectories автоматически подгружаются Claude Code при старте, но это другая механика, не survivor /compact'аПрактическое следствие. Если в течение длинной сессии ты сказал агенту «вот эта функция — не трогать никогда» — после /compact это исчезнет. Если хочешь чтобы пережило — допиши в CLAUDE.md через команду /memory (старый #-shortcut Anthropic объявили устаревшим в Academy lesson 9).
$ /compact ⠋ Summarizing conversation… ⠙ Preserving: 3 architectural decisions, 2 open bugs, recent file edits ⠹ Discarding: 28 stale tool outputs, 41 redundant turns ✓ compacted 142k → 18k tokens (-87%) ✓ CLAUDE.md re-injected from disk /Users/rus/mars/src/CLAUDE.md ✓ 5 recent files kept in context src/notify/router.py src/notify/handlers.py src/notify/__init__.py tests/test_notify.py CLAUDE.md › можем продолжать. что дальше?
Structured note-taking — NOTES.md и agentic memory
«Structured note-taking, or agentic memory, is a technique where the agent regularly writes notes persisted to memory outside of the context window. These notes get pulled back into the context window at later times.»
NOTES.md. Длинная задача — записал прогресс. Новая сессия — прочитал NOTES.md, продолжил. Контекст между сессиями не тратится на пересказ.Три практических места, где это уже работает в Claude Code (не надо ничего настраивать):
NOTES.md в корне репы (ты ведёшь руками или просишь агента)CLAUDE.md через команду /memory/memory — оно сразу в окне, при /compact переживёт сжатие, в новой сессии подгрузится автоматически.Write-back vs in-context — ключевое различие. CLAUDE.md = in-context, всегда занимает место в окне. NOTES.md = write-back, лежит на диске, грузится по запросу. Используй CLAUDE.md для правил, NOTES.md для прогресса.
Sub-agents — делегирование в чистый context
«Each subagent might explore extensively, using tens of thousands of tokens or more, but returns only a condensed, distilled summary of its work (often 1,000-2,000 tokens). This approach achieves a clear separation of concerns—the detailed search context remains isolated within sub-agents, while the lead agent focuses on synthesizing and analyzing the results.»
Built-in sub-agents в Claude Code — три штуки, доступны сразу:
Explore · Haiku · read-onlyPlan · inherits model · read-onlygeneral-purpose · all toolsКогда какой приём. Anthropic в blog дают ориентир:
Demo — ментор рефакторит ~/mars/src/ весь день.Mentor butun kun ~/mars/src/ refactor qiladi
Сценарий из жизни. Зухра, ментор Python из Юнусобода (вечер, после смены — помогает Mars IT с внутренним скриптом): разнести роутер уведомлений на два модуля. Большая репа, длинный день, всё что мы только что разобрали — здесь по шагам.
Зухра в 14:30 имеет 118k токенов в контексте (из 200k). К 18:42 — ещё хуже. На каком шаге, по-твоему, агент начнёт ошибаться? И что Зухра сделает первым, когда заметит? Запиши свои два ответа, потом проверь ниже.
10:14 · Утро, чистый context
$ claude ✓ CLAUDE.md loaded ~/mars/src/CLAUDE.md (2,140 tokens) ✓ user CLAUDE.md loaded ~/.claude/CLAUDE.md (1,820 tokens) › разнеси src/notify/router.py на router.py + handlers.py. публичный API не ломать. план сначала, код потом. ⠋ Using Plan sub-agent… (не флудит main context) ✓ план готов: 1. вынести 4 хендлера в handlers.py 2. router.py оставить как dispatcher 3. __init__.py — сохранить старые имена для обратки 4. tests/test_notify.py — поправить импорты, не логику
Note: Зухра в plan mode. Plan sub-agent не флудит main — main context видит только финальный план.
14:30 · Пообедала, добавила ещё задачу
После реализации Зухра не закрыла чат, а добавила: «теперь поправь миграции». Потом «посмотри warning в sales-воронке». Чат разросся до 118k токенов. CLAUDE.md где-то в начале, обсуждение notify-роутера в середине.
18:42 · Context rot ловится
› запусти тесты которые мы прошли утром ⠋ Reading tests/test_billing.py… ⠋ Reading tests/test_billing_v2.py… ⚠ агент пошёл в billing утром был notify. он не помнит. › Escape (остановить) › ты идёшь не туда. утром был notify, не billing. да, извините — посмотрю tests/test_notify.py… ⚠ через 2 turn'а опять предложилف-string в child-friendly коде что прямо запрещено в CLAUDE.md
Что произошло: CLAUDE.md в начале окна, его правила «выцвели» под весом 156k токенов посередине. Утренний контекст про notify тоже выцвел. Агент уверенно идёт в стену.
18:45 · Лечение — /compact + Explore
› /compact ⠋ Summarizing… preserving: notify split (DONE), migrations (DONE), sales warning (OPEN — root cause unclear) ✓ compacted 156k → 14k tokens (-91%) ✓ CLAUDE.md re-injected › sales warning остался открытым. найди что там в воронке через Explore, не флуди main контекст. ⠋ Delegating to Explore subagent… ⠋ Explore reading: src/sales/*.py (~22 files)… ⠋ Explore: targeted grep for warning source… ✓ Explore returned summary (28k tokens explored → 1.4k returned) warning источник: src/sales/funnel.py:241 unused import after refactor 12 days ago fix: удалить строку 11.
Что Зухра выиграла: main context — 14k вместо 156k. Explore прошарил 22 файла, но в main вернул только адрес проблемы и решение. Утренние правила из CLAUDE.md снова «свежие». Можно продолжать.
/compact + изолированный поиск через Explore. Главное — ты видишь что вернулось в mainКак это выглядит для Тимура (Python олимп 12–14, Чиланзар)
У Тимура другой сценарий: ученик решил задачу с olymp.uz криво — длинное решение в 200 строк, работает, но судья даёт TLE. Тимур хочет показать рефактор через похожие решения, которые уже есть в его репе подготовки.
Вместо того чтобы пускать main-агента читать ~40 файлов прошлых задач и забивать контекст — Тимур делегирует Explore sub-agent: «найди в ~/olymp-prep/ задачи на префиксные суммы, верни 2-3 эталонных решения и в чём отличие от текущей».
Что получает в main: 1.5K токенов summary — ссылки на файлы и ключевая идея. Что НЕ попадает в main: 35k токенов сырых решений. Дальше с учеником обсуждает уже выжимку — внимание агента не размазано.
Та же техника, другая задача. Compaction Тимур почти не использует — его сессии короче. Но sub-agents — каждый день.
Упражнение — 3 probe Before-and-After.Uchta probe — Before va After
Адаптация упражнения из Anthropic «AI Capabilities and Limitations», урок 9. Сделай все три probe руками. Без этого следующая твоя длинная сессия будет такая же как у всех — на удачу.
Открой claude в одной репе дважды
Берём твою CLAUDE.md, которую ты сделал в Модуле 1.
- В репе без CLAUDE.md запусти
claude. Запрос: «добавь функцию X, оформление как в этом проекте». Запиши: сколько уточняющих вопросов агент задал и попал ли в стиль. - В той же репе с CLAUDE.md запусти
claude. Тот же запрос. Запиши те же два числа. - Сравни. Если разницы нет — у тебя слабая CLAUDE.md, перепиши конкретнее.
Похорони важный constraint в середине
Этот probe вытащит «lost in the middle» — то самое падение recall в середине окна, про которое Anthropic пишут в «AI Capabilities and Limitations».
- Длинный чат. 30+ turns: попроси агента читать разные файлы, обсуждать рефакторинг, переключаться между темами.
- На turn'е ~10–15 встрой критический constraint: «никогда не используй библиотеку
requestsв этом проекте, толькоhttpx». Не повторяй потом. - На turn'е 30+ попроси код, в котором естественно появилась бы
requests(HTTP-запрос). Запиши: агент использовалrequests? илиhttpx? - Запиши тот же constraint в
CLAUDE.mdкомандой/memory. Открой чистую сессиюclaudeв той же репе. Сделай тот же запрос. Запиши результат.
CLAUDE.md чистой сессии. Шаг 3 vs шаг 4 — два независимых результата, сравниваешь напрямую.Посмотри что осталось в main
- Стартует чистый
claude. Спроси: «опиши структуруsrc/api/(или любая твоя папка с 10+ файлов)». Дай агенту прочитать всё в main context. Сделай/costили/transcript— запиши сколько токенов в окне. - Стартует чистый
claude. Спроси: «используй Explore sub-agent чтобы описать структуруsrc/api/». Дай ему отработать. Сделай/cost. Запиши снова. - Сравни числа. Должно быть разница в 3-10×.
Перед тем как проверять себя — пауза на 60 секунд
Эти ответы остаются у тебя — мы их не отправляем. Это просто способ заякорить два момента, на которых модуль вырывается из «прочитал и забыл».
Quiz — проверь себя за 3 минуты.O'zingni sina — 3 daqiqada
Три вопроса. Если хотя бы один ошибся — вернись к соответствующему разделу. Это не отметка, это твоя страховка перед следующей длинной сессией.
Ты работаешь над рефактором ~/mars/src/ 3 часа подряд в одной сессии. Сначала агент точно правил файлы по конвенции из CLAUDE.md. Теперь стал её нарушать. Что произошло?
Что делает /compact в Claude Code?
/clear, не /compact.Когда уместен sub-agent (по Anthropic blog)?
/compact, /memory, /agents, /cost, sub-agents, hooks
Что дальше — Модуль 5.Keyingisi — Modul 5
Свои sub-agents и Agent Skills
Ты теперь умеешь видеть что у агента в окне. В следующем модуле — собрать свои собственные sub-agents (например homework-checker для проверки ДЗ группы) и Agent Skills (pygame-starter под возраст детей), которые сжимают повторяющуюся работу в одну команду. То что сейчас занимает у тебя вечер — будет занимать 5 минут.
Atribuция и лицензия
Этот модуль адаптирован Mars IT School (2026) на основе:
— Anthropic Engineering Blog «Effective context engineering for AI agents» (Sep 2025) — центральный источник, цитаты verbatim.
— «AI Capabilities and Limitations» — Anthropic Academy, 2026, секция Working Memory (уроки 8, 9).
— «AI Fluency: Framework & Foundations» — Dakan, Feller, Anthropic, 2025 (CC BY-NC-SA 4.0).
— Claude Code documentation (claude.com/docs) — определения /compact, sub-agents, what survives compaction.
— «Claude Code in Action» и «Introduction to Subagents» — Anthropic Academy, 2026.
Наша адаптация — CC BY-NC-SA 4.0. Можно копировать, ремиксить, использовать в обучении — с указанием Mars IT School и сохранением той же лицензии.