Anthropic сократила системный промпт, направляющий Claude Code, на 80% и сообщила, что это не повлияло на его способность писать код. Эксперимент показывает, что по мере роста возможностей больших языковых моделей (LLM) разработчики могут убирать громоздкие вспомогательные инструкции, не жертвуя производительностью.

Почему этот промпт был важен изначально

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

Разрыв между моделями сокращается

Эти лишние правила скрывали «разрыв в возможностях моделей» (model gap) — разницу между тем, что модель могла делать на самом деле, и тем, чего требовало приложение. В 2024 году разработчикам приходилось прописывать строгие ограничения, чтобы, например, модель не злоупотребляла комментариями в коде. Сегодня та же модель может понять желаемый стиль из одной инструкции, например: «соответствуй существующему стилю кода». Правила превратились из помощи в шум.

Что меняется в контекстном инжиниринге

Сокращение со стороны Anthropic отражает более широкий сдвиг в том, как разработчики структурируют промпты:

  • Разовые критические инструкции — сформулируйте правило один раз и позвольте модели его запомнить.
  • Параметры на основе инструментов вместо few-shot примеров — описывайте структуру входных и выходных данных в схеме инструмента (tool schema) и позволяйте модели заполнять их.
  • Прогрессивное раскрытие — давайте только тот контекст, который необходим для текущего шага, добавляя больше информации позже, если потребуется.
  • Перенос статических указаний в описания инструментов — такие вещи, как «используй camelCase для переменных», должны быть в спецификации инструмента, а не в системном промпте.
  • Замена жестко заданных правил эвристиками — позволяйте модели самой решать, когда применимо правило, вместо того чтобы навязывать его безусловно.

Эти тактики работают, потому что модель уже знает многие конвенции, которые раньше требовали явного подтверждения.

Риск чрезмерного сокращения

Та же очистка, которая идет на пользу передовым (frontier) моделям, может навредить более мелким. Anthropic отмечает, что такие модели, как Haiku, все еще полагаются на более развернутые промпты, чтобы не сбиваться с пути. Избыточное удаление инструкций у менее способной модели может вернуть ошибки, которые исходный промпт пытался предотвратить: несогласованность именований, избыточные комментарии или пропущенные граничные случаи.

Как провести аудит собственных промптов

Если вы поддерживаете пайплайн генерации кода, аудит промпта может помочь выявить «мертвый груз». Практический чек-лист выглядит так:

  • Оптимизируйте плотность инструкций — приведите объем руководств в соответствие с моделью, которую вы фактически используете.
  • Удалите дублирующиеся инструкции — если правило встречается и в системном промпте, и в описании инструмента, оставьте его только один раз.
  • Превратите рабочие примеры в более сложные схемы — замените конкретные примеры перечислениями типов параметров или enum.
  • Вынесите ситуационные детали вовне — перенесите большие блоки справочной информации в отдельные файлы, которые модель сможет запрашивать по требованию.
  • Удалите правила, описывающие исчезнувшие паттерны поведения — если модель больше не добавляет ненужные комментарии, удалите правило «без комментариев».

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

  1. Базовый уровень (Baseline) — измерьте производительность с полным промптом.
  2. Удаление — уберите потенциально лишнюю строку или блок.
  3. Повторный запуск — выполните те же пять задач.

Если результат изменился, вы нашли строку, которая все еще имеет значение. Если нет — строку можно смело удалять.

На что разработчикам стоит обратить внимание дальше

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

Источник: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9