Новые правила context engineering для моделей Claude 5

Новые правила context engineering для моделей Claude 5

@ai_longreads

Anthropic удалила более 80% системного промпта Claude Code для моделей нового поколения — без потерь в тестах на программирование. Разбор того, какие практики управления контекстом устарели и чем их заменить в системных промптах, skills и CLAUDE.md.

Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.


Новые правила context engineering для моделей Claude 5

The new rules of context engineering for Claude 5 models Автор: Thariq (@trq212) Оригинальный текст:

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

Но когда вы отправляете сообщение Claude, промпт — лишь малая часть контекста, который он получает. Бо́льшая часть контекста собирается из вашего системного промпта, Skills, файлов CLAUDE.md, памяти и других источников. Мы называем это context engineering (управление контекстом), и это сильно влияет на результаты, которые вы получаете при работе с Claude Code или при создании собственных агентов.

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

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

Вот что мы узнали о промптинге этого нового класса моделей и как вы можете использовать это, чтобы обновить свой context engineering. Мы заложили эти лучшие практики в claude doctor — используйте команду /doctor в Claude Code, чтобы привести к нужному размеру ваши skills и файлы CLAUDE.md.

Снимаем с Claude оковы

В целом мы обнаружили, что чрезмерно ограничивали Claude Code — как через системный промпт, так и в файлах CLAUDE.md и в skills.

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

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

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

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

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

Ряд прежних лучших практик context engineering превратился в мифы. В их числе:

Тогда: давайте Claude правила. Сейчас: позвольте Claude полагаться на суждение

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

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

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

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

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

Тогда: давайте Claude примеры. Сейчас: проектируйте интерфейсы

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

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

Например, в случае с инструментом Todo сам факт того, что статус перечислен как enumeration из pending, inprogress и completed, подсказывает Claude, как им пользоваться. А инструкция держать в статусе inprogress только один элемент помогает задать нужное нам поведение.

Тогда: выкладывайте всё сразу. Сейчас: используйте progressive disclosure

Поскольку Claude Code был сфокусирован на программировании, наш системный промпт включал подробную информацию о том, как проводить code review и верификацию. Она требовалась не всегда, но когда требовалась — была критически важной.

С тех пор Claude Code стал очень хорошо владеть progressive disclosure (постепенное раскрытие: загрузка нужного контекста в нужный момент). Например, мы вынесли верификацию и code review в отдельные skills, которые Claude Code может вызывать выборочно.

Но progressive disclosure — не только для skills, мы применяем его и к инструментам. Часть наших инструментов работает в режиме «отложенной загрузки»: это значит, что агент должен сначала найти их полные определения через ToolSearch, прежде чем использовать. Это позволяет нам иметь больше инструментов (например, наши инструменты Task), которые не занимают контекст, пока не понадобятся.

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

Тогда: повторяйтесь. Сейчас: простые описания инструментов

Более ранним моделям Claude иногда требовались повторяющиеся инструкции, и они с большей вероятностью следовали указаниям в конце контекстного окна, а не в начале. Из-за этого в нашем системном промпте порой были упоминания инструментов в основном системном промпте — вдобавок к инструкциям в описании самого инструмента.

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

Тогда: память в файлах CLAUDE.md. Сейчас: авто-память

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

Тогда: простые спецификации. Сейчас: богатые референсы

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

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

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

Ещё одна форма референсов — рубрики (rubrics). Рубрики позволяют Claude пытаться проверять ваш вкус в конкретной области (например, как выглядит хороший дизайн API), используя динамические workflow и запуская агентов-верификаторов с этими рубриками.

Применяем это к вашему контексту

Если собрать всё вместе — как это выглядит, когда вы формируете свой контекст?

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

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

CLAUDE.md

Держите CLAUDE.md лёгким и кратко описывайте, для чего нужен ваш репозиторий, но бо́льшую часть tokens (токенов) тратьте на подводные камни внутри кодовой базы. Например, у вас код может быть организован так, что типы лежат в одном монолитном файле и больше нигде. Избегайте констатации «очевидных» вещей, которые Claude и так узнает, посмотрев на файловую систему или репозиторий.

Для более подробных деталей используйте progressive disclosure: например, если у вас есть несколько уникальных инструкций по проверке работы, создайте skill для верификации и сошлитесь на него из CLAUDE.md.

Skills

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

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

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

Референсы

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

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

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

По всему вашему системному промпту, skills и файлам CLAUDE.md вам, возможно, придётся упрощать — так же, как это сделали мы. Мы выпустили новую команду claude doctor, которая поможет сделать это в том числе автоматически. Более подробно о промптинге именно продвинутых моделей читайте в нашем полевом руководстве по Fable.


Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!

Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot

Report Page