Plain Text vs XML or Markdown: на чём писать промпты для ИИ-кодера?
Структура — это новый язык общения с ИИ. Особенно когда дело касается кода.
Есть миф: чтобы попросить ИИ написать код, достаточно набросать запрос в чат «как есть». Plain text, без правил. Сработает? Иногда. Будет эффективно? Редко.
Почему ИИ «понимает» структурированный промпт (с тегами, отступами, чёткими блоками) лучше, чем простой текст?
Ясность ролей. Когда вы явно прописываете <role>Ты senior Java-разработчик</role>, ИИ не гадает, в каком стиле писать — он сразу включает нужный режим.
Разделение задач. Отдельный блок с требованиями, примером и самим заданием помогает модели не путать условие с контекстом. Это как дать не кучу деталей, а чертёж со схемой сборки.
Контроль формата. Хотите получить ответ в виде JSON, код с комментариями или готовый модуль? Скажите это явно в теге <output_format>. ИИ не будет добавлять от себя лишних пояснений, если вы просите только код.
Как это работает на практике?
Вместо:
«Напиши на Java метод, который проверяет, является ли строка палиндромом. Игнорируй регистр и пробелы. С использованием StringBuilder.»
Структурируем:
<role>
Ты senior Java-разработчик, который строго следует code convention и пишет надежный production-ready код.
</role>
<task>
Напиши публичный статический метод для проверки, является ли строка палиндромом.
</task>
<requirements>
- Название метода: `isPalindrome`
- Параметры: `String input`
- Возвращаемый тип: `boolean`
- Игнорировать регистр символов (привести к нижнему регистру).
- Удалить все не-буквенные символы (пробелы, знаки препинания).
- Использовать `StringBuilder` для разворота строки.
- Добавить JavaDoc комментарий.
- Продемонстрировать работу метода в методе `main`.
</requirements>
<output_format>
Предоставь готовый к компиляции Java-код класса `PalindromeChecker` без лишних объяснений.
</output_format>
Второй вариант даст более точный и готовый к использованию результат. Меньше правок — быстрее результат.
Но! Не всегда нужно усложнять.
Для простых задач вроде «напиши регулярное выражение для email» или «объясни этот код» достаточно plain text. Не стоит делать XML-каркас для одноразового запроса.
Если хотите писать код с ИИ быстрее и точнее — учитесь структурировать промпты. Но используйте сложные форматы там, где они действительно нужны.
1 минута
17 сентября 2025