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 | Почти ноль в обычном 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.
Вывод: каждая строка в постоянных инструкциях оплачивается в каждом запросе, поэтому по умолчанию указывайте путь к инструкции, а не кладите её в контекст.
Проверь себя
Соглашение о том, как писать миграции БД, занимает сорок строк и нужно примерно раз в неделю. Куда его положить?
CLAUDE.md
, чтобы агент точно его не пропустил
CLAUDE.md
оплачиваются в каждом запросе каждой сессии ради правила, которое нужно раз в неделю, и заглушают остальные инструкции. Ручная вставка перекладывает работу на вас, и вы забудете именно тогда, когда это важно. Указатель почти ничего не стоит, а файл агент подтянет, когда задача этого потребует.
Кроме токенов в каждом запросе, чем ещё вы платите за длинный файл постоянных инструкций?
В репозитории есть AGENTS.md, и Claude Code его читал. Вы добавили CLAUDE.local.md со своими заметками, и агент перестал следовать правилам проекта. Что произошло?
CLAUDE.local.md
перезаписал содержимое
AGENTS.md
CLAUDE.md
-файл, и по умолчанию Claude Code больше не читает
AGENTS.md
AGENTS.md
только из домашней директории
AGENTS.md
, только когда в рабочей директории и выше нет
CLAUDE.md
,
.claude/CLAUDE.md
или
CLAUDE.local.md
. Личный файл попал в этот список. Вернуть оба можно настройкой
Project instructions
со значением
claude-md-and-agents-md
или импортом
@AGENTS.md
.
В постоянных инструкциях стоит «отмечай всё, что касается безопасности», и агент добавляет замечания о безопасности к задачам, где их быть не должно. Что это исправит?
Источники
- Anthropic, How Claude remembers your project
- Anthropic, Explore the context window
- Anthropic, Commands
- AGENTS.md, AGENTS.md
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.