Структурирование промптов с помощью XML-тегов
- Почему теги в стиле XML дают Claude чёткие границы между частями промпта
- Как оборачивать инструкции, документы, примеры и правила форматирования в именованные теги
- Как просить Claude о выводе с тегами, который можно надёжно разобрать
- Когда стоит размечать тегами — и когда не стоит перебарщивать
Когда промпт смешивает инструкции, документ, примеры и вопрос, модель может слить их воедино. Теги в стиле XML — это чистый способ пометить каждую часть, и Claude реагирует на них особенно хорошо.
Идея
Оберните каждый раздел в именованный тег, чтобы было однозначно, что есть что:
Структура промпта с тегами
<instructions>
Summarize the document for a busy executive. Use only the document; if a fact
isn't there, say so.
</instructions>
<document>
{paste the long document here}
</document>
<format>
3 bullet points, then a one-line "decision needed".
</format>Теги — это просто текст, который вы придумываете — <document>, <example>, <context>, <rules> — но они дают модели чёткие границы.
Почему это помогает
- Отделяет данные от инструкций — модель с меньшей вероятностью подчинится постороннему тексту внутри вставленного документа (мягкая защита от инъекций в промпт — см. /docs/security/prompt-injection).
- Снижает «оно проигнорировало часть моего промпта». Каждая часть чётко разграничена.
- Упрощает разбор вывода — вы можете попросить Claude поместить ответ в теги <answer> и надёжно его извлечь.
- Сочетается с few-shot (/docs/prompting/few-shot) — оборачивайте каждый пример в <example>.
Четыре выгоды подробнее:
- Отделяет данные от инструкций — модель с меньшей вероятностью подчинится постороннему тексту внутри вставленного документа (мягкая защита от инъекций в промпт).
- Снижает «оно проигнорировало часть моего промпта». Каждая часть чётко разграничена.
- Упрощает разбор вывода — вы можете попросить Claude поместить ответ в теги
<answer>и надёжно его извлечь. - Сочетается с few-shot — оборачивайте каждый пример в
<example>.
Запрос вывода с тегами
Guided walkthrough1 of 3
- Скажите модели, какие именно теги использовать для рассуждений и для итогового ответа.
- Ваш код может взять только содержимое <answer>, игнорируя рассуждения.
- Хорошо сочетается со структурированным выводом (/docs/api/structured-output), когда вам нужны машиночитаемые результаты.
Запрос вывода с тегами
Put your reasoning in <thinking> tags and your final answer in <answer> tags.
Тогда ваш код может взять только содержимое <answer>. Хорошо сочетается со структурированным выводом, когда вам нужны машиночитаемые результаты.
Советы
- Будьте последовательны — открывайте и закрывайте каждый тег; используйте одни и те же имена.
- Называйте теги осмысленно (<contract>, а не <x>).
- Не перебарщивайте с тегами в тривиальных промптах — используйте это, когда действительно есть несколько разных частей.
- Будьте последовательны — открывайте и закрывайте каждый тег; используйте одни и те же имена.
- Называйте теги осмысленно (
<contract>, а не<x>). - Не перебарщивайте с тегами в тривиальных промптах — используйте это, когда действительно есть несколько разных частей.