Контекст - ограниченный ресурс, и понимать, что его заполняет, важнее любых трюков экономии. Расходуют его не только ваши сообщения: загруженные инструкции, содержимое прочитанных файлов, вывод инструментов, изображения, инструкции подгруженных skills и summaries после сжатия - всё это занимает место. Практическое следствие простое: длинный чат становится ненадёжным, если принятые решения растворяются в шуме. Не объём разговора сам по себе полезен, а плотность релевантного в нём.
Отсюда дисциплина сжатия и удержания цели. /compact применяют после завершённого этапа, а не посреди неразрешённого инцидента: сжатие в неудачный момент рискует унести именно тот контекст, который вам ещё нужен. /goal удерживает краткую формулировку цели по ходу работы, но не заменяет подробный контракт задачи - это напоминание о направлении, а не полный набор границ и проверок. Одно держит фокус, другое задаёт рамки; путать их не стоит.
Memories - отдельный механизм со своими правилами и своим риском. Они могут подмешиваться в будущие сессии, то есть влиять на поведение агента за пределами текущего разговора. Отсюда два требования: их проверяют - потому что устаревшая или неверная заметка будет тихо влиять на работу, - и в них не хранят секреты, потому что память переживает сессию и доступна дальше. Memories полезны, пока это устойчивые наблюдения, а не свалка временного состояния задачи.
Ключевой навык управления контекстом - класть знание туда, где ему место, а не сваливать всё в разговор. Одноразовое ограничение живёт в текущем prompt или /goal. Команды и соглашения репозитория - в AGENTS.md. Повторяемая процедура - в skill. Механическая политика - в sandbox, permissions, rules или hook. Долгосрочное знание - в отревьюенных инструкциях, а не в авто-памяти. У каждого типа знания своё правильное место, и выбор места важнее, чем набить одно всем подряд.
Полезно один раз свести это соответствие в таблицу, чтобы не изобретать под каждую задачу новую сущность. Ниже - карта: какое знание куда. К ней возвращаются, когда рука тянется положить процедуру в prompt или политику в память: у каждого механизма своя семантика загрузки и своя цена в контексте. Правильно размещённое знание подгружается тогда, когда нужно, а не висит в каждом разговоре, занимая место и снижая плотность релевантного.
Три механизма легко спутать, и книга разводит их намеренно: техническая граница выполнения, момент запроса подтверждения и политика для конкретных префиксов команд - это три разных вещи. Sandbox определяет, что вообще можно тронуть; approvals - когда действие должно остановиться и спросить; execpolicy - судьбу конкретной команды по её префиксу. О них подробно в следующей части, но упомянуть здесь важно: контекст и стоимость нельзя путать с безопасностью, у них разные механизмы.
| Знание | Лучшее место |
|---|---|
| Одноразовое ограничение | Текущий prompt или /goal |
| Команды и conventions репозитория | AGENTS.md |
| Повторяемая процедура | Skill |
| Механическая policy | Sandbox, permissions, rules или hook |
| Долгосрочное знание команды | Отревьюенные инструкции, не auto-память |
Стоимость снижают конкретными приёмами, не ухудшая результат. Держат разговор плотным: не вставляют большие логи, а сохраняют файл и дают путь; ограничивают исследование конкретной точкой входа; отдают шумное чтение subagent и возвращают сводку; сжимают историю на естественной границе; начинают новую сессию под новую задачу. Более дешёвую модель берут лишь там, где качество измерено. Узкий контекст - это и дешевле, и умнее, чем один огромный разговор, в котором тонет главное.
Типичные провалы вокруг контекста предсказуемы. Растить один чат бесконечно, пока решения не растворятся в шуме. Сжать историю посреди инцидента и потерять нужное. Хранить в memories секреты или временное состояние. И свалить в разговор то, чему место в AGENTS.md, skill или политике. Кладите знание по назначению, сжимайте на границе этапа, проверяйте memories и держите контекст плотным - тогда длинная работа остаётся и надёжной, и управляемой по стоимости.