Перейти к тексту

Claude Code: работа с coding-агентом5. Как направлять агента

Push и point: что агент читает в каждой сессии

Засчитывается, когда отвечены все вопросы квиза

Зачем это нужно

Вчера вы полчаса объясняли агенту, что в Cadence после изменения схемы нужно обновить seed-скрипт. Сегодня новая session, и агент снова об этом не знает. Это не сбой: модель stateless и ничего не переносит из сессии в сессию. Всё, что агент должен знать о ваших правилах, попадает к нему только через контекст.

Отсюда вопрос всего раздела: какие инструкции должны доходить до агента каждый раз и как их доставлять, не повторяя вручную. Ответ начинается с того, что за каждую строку в контексте приходится платить.

Как это устроено

Context load: две цены одной строки

Session состоит из turn-ов, а каждый turn — из множества запросов к модели. Каждый запрос несёт всю историю и всё, что загружено в начале. Строка, которую harness положил в контекст при старте, уходит модели в каждом запросе до конца сессии. Кэширование снижает цену, но не убирает её.

Цен две:

  • Токены. Вы платите за строку в каждом запросе, нужна она сейчас или нет.
  • Внимание. Каждая лишняя инструкция делает остальные чуть тише. Документация Claude Code говорит прямо: длинные файлы инструкций занимают больше контекста и хуже соблюдаются.

Сумму этих двух цен будем называть context load.

Push: инструкция всегда в контексте

Push — инструкция лежит в контексте с первого запроса. Агент не может её пропустить, но вы платите за неё в каждой сессии, даже когда задача её не касается.

В Claude Code главный канал push — файлы инструкций проекта. Claude Code читает CLAUDE.md в начале каждой сессии. Открытый формат AGENTS.md понимают многие агенты, и Claude Code тоже: если в рабочей директории и выше нет CLAUDE.md, .claude/CLAUDE.md или CLAUDE.local.md, он загружает AGENTS.md. Если есть оба файла, по умолчанию читается только CLAUDE.md.

Point: инструкция в окружении, в контексте — указатель

Point — полный текст лежит в репозитории, а в контексте остаётся одна строка: «когда делаешь такую-то работу, прочитай вот это». Это context pointer. В большинстве turn-ов он почти ничего не стоит, а нужный текст агент подтянет сам, когда задача совпадёт с условием.

Разница видна на схеме: при push в контекст попадает весь текст правил, при point — одна строка, а сам текст читается, только когда задача совпала с условием.

Push кладёт в контекст всё правило, point — одну строкуСлева при push все сорок строк правил лежат в контексте каждого запроса. Справа при point в контексте лежит одна строка-указатель, и агент читает документ, только когда задача совпала с условием указателя.PointPushзадача совпалаКонтекст: 1строка-указательДокумент врепозиторииКонтекст: 40строк правил
Стратегия Цена Когда доступна
Push В каждом запросе Всегда
Point Почти ноль в обычном turn-е Когда она нужна

Почему push промахивается

Агент не знает, когда правило уместно, и применяет его везде. В оригинале курса есть показательный случай: в постоянных инструкциях claude.ai стояло «я работаю под PCI DSS, отмечай всё, что касается безопасности». На вопрос о шоколадном торте модель дала рецепт и добавила совет учесть требования PCI DSS. Правило, которое всегда на виду, срабатывает и там, где не должно.

Поэтому практика этого курса — point по умолчанию. Push оставляем для того, что нужно в каждой сессии.

Практика

Откройте Claude Code в Cadence и выполните /context. Команда показывает, чем заполнено окно, в том числе какие файлы CLAUDE.md и auto memory загрузились при старте. Найдите строку с файлами инструкций и запишите, сколько токенов они занимают ещё до вашего первого промпта. Это и есть цена push, которую вы платите в каждом запросе этой сессии.

Затем откройте файл инструкций проекта и для каждого раздела спросите себя: нужен ли он в большинстве задач? Разделы, которые нужны раз в неделю, отметьте: это кандидаты на point в следующих Bite-ах.

Подводные камни

  • CLAUDE.local.md выключает AGENTS.md. Личный файл считается CLAUDE.md-файлом, и после его появления Claude Code перестаёт читать AGENTS.md проекта. Если нужны оба, в /config выставьте для Project instructions значение claude-md-and-agents-md или импортируйте @AGENTS.md из CLAUDE.md.
  • Инструкции — контекст, а не конфигурация. Claude Code не гарантирует их выполнения. Чтобы запретить действие при любом решении агента, нужен hook, а не строка в CLAUDE.md.

Вывод: каждая строка в постоянных инструкциях оплачивается в каждом запросе, поэтому по умолчанию указывайте путь к инструкции, а не кладите её в контекст.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.