Системные запросы
Тема дорожной карты · Claude от Anthropic
Параметр system в Messages API задаёт Claude роль, scope, формат вывода и политики безопасности до любого user-сообщения. В отличие от истории чата, системный промпт — это не запись в messages, а отдельное поле верхнего уровня; его можно дробить на сегменты с cache_control для prompt caching. Хороший системный промпт описывает роль, перечисляет доступные инструменты и политики, даёт пару примеров и фиксирует поведение при отказе. Anthropic публикует дефолтные системные промпты Claude.ai для прозрачности. Системные запросы играют ключевую роль в обеспечении стабильности и предсказуемости ответов Claude, что особенно важно при работе с критически важными данными или приложениями.
Как это работает
Системные запросы — это ремесло написания промптов, стабильно дающих желаемый output. Основные техники включают чёткое определение роли и задачи, пошаговую декомпозицию ("Сначала, ... Потом, ..."), явный output-формат (XML/JSON), few-shot-примеры, цепочку мысли (Claude часто выигрывает от "think step by step"), ограничения (длина, тон, формат) и структурированный input (XML-теги для маркировки секций). System-промпт задаёт постоянный контекст; user/assistant-ходы определяют разговор. Например, можно использовать системные запросы для настройки Claude на работу с определёнными типами данных или для выполнения конкретных задач, таких как обработка запросов пользователей или анализ данных.
Когда применять
Тратьте время на промпты до fine-tuning — хорошо инженерный промпт часто бьёт fine-tuned модель. XML-теги (<question>, <context>, <examples>) — Claude обращает на них особое внимание. Всегда указывайте output-формат явно. Для сложных задач prefill assistant-ответа желаемой стартовой структурой — якорит. Тестируйте промпты против edge cases до production. Это особенно важно при работе с критически важными данными или приложениями, где предсказуемость и стабильность ответов Claude имеют первостепенное значение.
Типичные ошибки
Ловушки Системные запросы: расплывчатые промпты ("summarize this" — какой тон? длина? для кого?); не тестируют на разнообразных input (работает на любимом примере, падает на реальных данных); слишком много инструкций (Claude меньше внимания середине очень длинных промптов — критичную инфу вперёд); prompt injection (недоверенный input, перебивающий инструкции — sanitization + границы system-промпта). Эти ошибки могут привести к непредсказуемому поведению Claude, что может быть критичным для сложных задач или критически важных данных.