Структурирование промптов с помощью XML-тегов
Когда промпт смешивает инструкции, документ, примеры и вопрос, модель может слить их воедино. Теги в стиле 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> — но они дают модели чёткие границы.
Почему это помогает
- Отделяет данные от инструкций — модель с меньшей вероятностью подчинится постороннему тексту внутри вставленного документа (мягкая защита от инъекций в промпт).
- Снижает «оно проигнорировало часть моего промпта». Каждая часть чётко разграничена.
- Упрощает разбор вывода — вы можете попросить Claude поместить ответ в теги
<answer>и надёжно его извлечь. - Сочетается с few-shot — оборачивайте каждый пример в
<example>.
Запрос вывода с тегами
Put your reasoning in <thinking> tags and your final answer in <answer> tags.
Тогда ваш код может взять только содержимое <answer>. Хорошо сочетается со структурированным выводом, когда вам нужны машиночитаемые результаты.
Советы
- Будьте последовательны — открывайте и закрывайте каждый тег; используйте одни и те же имена.
- Называйте теги осмысленно (
<contract>, а не<x>). - Не перебарщивайте с тегами в тривиальных промптах — используйте это, когда действительно есть несколько разных частей.