Ранее я уже писал о том, как лучше всего составлять промпты для нового поколения моделей Claude 5 и работать с ними итеративно, чтобы постепенно понять, что именно вы хотите создать.

Но когда вы отправляете Claude сообщение, сам промпт составляет лишь небольшую часть получаемого моделью контекста. Значительная его часть собирается из системного промпта, навыков, файлов CLAUDE.md, памяти и других источников. Мы называем это контекстной инженерией. От нее во многом зависит результат работы с Claude Code и собственными агентами.

В отличие от промпта, контекст используется сразу во множестве запросов, поэтому он не может быть настолько же конкретным. Как создавать общие инструкции и рекомендации для Claude, особенно если заранее неизвестно, с каким запросом придет пользователь?

По мере развития возможностей Claude эта задача неожиданно усложняется. Недавно мы заметили серьезные изменения в том, как следует составлять инструкции для нового поколения моделей. Мы удалили более 80% системного промпта Claude Code для Claude Opus 5 и Claude Fable 5, при этом наши тесты по программированию не показали измеримого ухудшения результатов.

Ниже мы собрали все, что узнали о промптинге для моделей этого класса, а также рекомендации по обновлению собственной контекстной инженерии. Эти практики уже встроены в claude doctor. Запустите команду /doctor в Claude Code, чтобы подобрать подходящий объем для навыков и файлов CLAUDE.md.

Перестаем сковывать Claude

Мы обнаружили, что слишком сильно ограничивали Claude Code: как системным промптом, так и файлами CLAUDE.md и навыками.

Например, при чтении расшифровок внутренней работы с Claude Code мы видим несколько противоречащих друг другу сообщений в рамках одного запроса. Системный промпт, навыки и запрос пользователя могут одновременно требовать «добавлять документацию там, где это уместно» и «НЕ добавлять комментарии».

Противоречивые инструкции в общем контексте Claude
Противоречивые инструкции в общем контексте Claude

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

Обычно Claude способен правильно понять намерение пользователя, однако из-за пересекающихся и конфликтующих сообщений модели приходится внимательнее обдумывать задачу, прежде чем решить, что делать.

Когда-то такие ограничения были необходимы для защиты от худших сценариев. Теперь мы выяснили, что многие из них можно удалить и позволить модели опираться на окружающий контекст и собственное суждение.

Кроме того, у Claude Code стало значительно больше инструментов. Раньше Claude в основном полагался на CLAUDE.md как на источник памяти, информации и инструкций. Теперь доступны память, артефакты и навыки, с помощью которых Claude может по-новому загружать контекст и передавать его между сеансами.

Если статья понравится — приглашаю в канал AI for Devs. Каждый день публикую похожие материалы: модели, агенты, практические кейсы и новости из мира AI.

Тогда и сейчас

Некоторые прежние практики контекстной инженерии со временем превратились в мифы.

Старые и новые практики контекстной инженерии
Старые и новые практики контекстной инженерии

Вместо жестких правил: самостоятельное решение. Вместо примеров: продуманные интерфейсы. Вместо контекста целиком: прогрессивное раскрытие. Вместо повторов: простые описания инструментов. Вместо памяти в CLAUDE.md: автоматическая память. Вместо простых спецификаций: насыщенные референсы.

Раньше: давайте Claude правила

Сейчас: доверьте Claude решение

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

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

Однако для части запросов эта инструкция была ошибочной. У пользователя могут быть собственные предпочтения по документации, а отдельным участкам очень сложного кода действительно могут потребоваться многострочные комментарии.

Без подобных защитных ограничений старые модели во многих случаях писали неправильные комментарии, и нам приходилось принимать этот компромисс. Новые модели обладают более развитым суждением и способны принимать такие решения без явных правил.

В новом системном промпте сказано:

Пиши код в стиле окружающего кода: соблюдай принятую плотность комментариев, правила именования и идиомы.

Раньше: давайте Claude примеры

Сейчас: проектируйте интерфейсы

Главное правило работы с инструментами раньше заключалось в том, чтобы показывать Claude примеры их использования. В случае новейших моделей мы обнаружили, что примеры могут ограничивать пространство исследования.

Длинное описание инструмента и короткий выразительный интерфейс
Длинное описание инструмента и короткий выразительный интерфейс

Слева: прежнее описание TodoWrite примерно на 9100 символов, со списками условий и подробными примерами. Справа: короткий интерфейс, в котором поведение задают описание, допустимые статусы и правило об одной активной задаче.

Вместо примеров лучше уделить больше внимания устройству инструментов, скриптов и файлов. Подумайте, какие параметры доступны Claude и как сделать их выразительнее.

Возьмем инструмент Todo. Уже сам список допустимых значений статуса, pending, in_progress и completed, подсказывает Claude, как им пользоваться. Инструкция о том, что одновременно только один пункт может иметь статус in_progress, дополнительно определяет требуемое поведение.

Раньше: помещайте все в начало

Сейчас: используйте прогрессивное раскрытие

Поскольку Claude Code создавался прежде всего для программирования, его системный промпт содержал подробные сведения о проверке кода и ревью. Они требовались не всегда, но в нужный момент были критически важны.

С тех пор Claude Code научился эффективно использовать прогрессивное раскрытие, то есть загружать нужный контекст в подходящий момент. Например, мы вынесли проверку и ревью кода в отдельные навыки, которые Claude Code может вызывать выборочно.

Прогрессивное раскрытие применимо не только к навыкам, но и к инструментам. Некоторые наши инструменты загружаются отложенно. Агент должен найти их полные определения через ToolSearch, прежде чем сможет ими воспользоваться. Благодаря этому мы можем предоставить больше инструментов, включая Task, не занимая ими контекст до момента, когда они действительно понадобятся.

Тот же подход работает с вашими файлами CLAUDE.md и SKILL.md. Распространено мнение, что их нужно превратить в центральное хранилище всех практик, которые когда-либо могут пригодиться, иначе Claude их не найдет. Вместо этого создайте дерево файлов, загружаемых в подходящий момент.

Раньше: повторяйте инструкции

Сейчас: пишите простые описания инструментов

Более ранним моделям Claude иногда требовалось повторять инструкции. Кроме того, они могли уделять указаниям в конце контекстного окна больше внимания, чем указаниям в начале. Поэтому системный промпт порой упоминал инструмент, а его описание повторяло те же инструкции.

Мы выяснили, что повторяющиеся примеры можно удалить, а инструкции по применению инструментов разместить в описаниях самих инструментов, а не в системном промпте.

Раньше: храните память в CLAUDE.md

Сейчас: используйте автоматическую память

Раньше мы советовали пользователям сохранять сведения в памяти Claude с помощью горячей клавиши #, которая автоматически записывала их в CLAUDE.md. Теперь Claude сам сохраняет воспоминания, относящиеся к текущей работе и пользователю.

Раньше: используйте простые спецификации

Сейчас: давайте насыщенные референсы

В режиме планирования Claude Code во многом полагался на Markdown-файлы с планами. Сохраненный план позволял Claude обращаться к нему по мере необходимости. Похожая практика заключалась в хранении спецификаций в кодовой базе, чтобы Claude мог сверяться с ними во время длительной работы над проектом.

Теперь Claude способен обрабатывать все более сложные референсы. Вместо простых Markdown-файлов модель может использовать HTML-артефакты, созданные новой функцией артефактов.

Референсом может служить и код. Спецификацией может быть подробный набор тестов или функция из другой кодовой базы, которую Claude нужно перенести.

Еще один вид референсов: рубрики оценки. Они позволяют Claude проверять соответствие результата вашим представлениям о качестве в определенной области, например о хорошем дизайне API. Для этого модель использует динамические рабочие процессы и запускает агентов-проверяющих с заданными рубриками.

Как применить это к своему контексту

Как все эти идеи выглядят вместе при сборке контекста?

Слои контекстного окна Claude
Слои контекстного окна Claude

Контекстное окно состоит из нескольких слоев: промпта пользователя, референсов, системного промпта, файлов CLAUDE.md, навыков и памяти. Размеры на схеме условны.

Системный промпт

Системный промпт тесно связан с контекстом продукта. Он сообщает Claude, в каком продукте работает модель и чем она занимается. Пользователю Claude Code почти наверняка не придется менять этот промпт. Но если вы создаете собственную среду для агента, системному промпту стоит уделить много внимания.

CLAUDE.md

Не перегружайте CLAUDE.md. Кратко опишите назначение репозитория, а большую часть токенов потратьте на неочевидные особенности кодовой базы. Например, в вашем проекте может быть принято хранить все типы в одном монолитном файле и нигде больше. Не записывайте очевидные сведения, которые Claude способен получить из файловой системы или репозитория.

Активно используйте прогрессивное раскрытие. Если у вас есть несколько особых инструкций по проверке работы, создайте навык проверки и укажите ссылку на него в CLAUDE.md.

Навыки

Относитесь к навыкам как к компактным руководствам, помогающим Claude находить информацию в нужный момент. Не перегружайте их ограничениями, кроме случаев, когда речь идет о действительно важных областях.

Для длинных навыков используйте прогрессивное раскрытие по максимуму: разделите материал на несколько файлов.

Лучше всего, когда навыки фиксируют конкретные взгляды, знания и практики, характерные именно для вас, вашей команды или продукта.

Референсы

Файлы можно упоминать через @, чтобы добавить их как референсы. Они дают Claude подробную информацию, относящуюся к текущему плану.

Референсами могут быть файлы спецификаций, макеты и даже целые кодовые базы. В большинстве случаев стоит предпочитать материалы в виде кода: они дают Claude точные инструкции с высокой детализацией на хорошо знакомом модели языке. Например, HTML-макет интерфейса обычно дает лучший результат, чем текстовое описание дизайна или скриншот.

Попробуйте упростить

Возможно, вам тоже стоит упростить системный промпт, навыки и файлы CLAUDE.md, как это сделали мы. Новая команда claude doctor помогает выполнить такую оптимизацию автоматически. Дополнительные рекомендации по работе с более совершенными моделями собраны в нашем полевом руководстве по Fable.

Русскоязычное сообщество про AI в разработке

Друзья! Эту статью подготовила команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-агентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!

Комментарии (0)