О чём этот мануал
Для тех, кто только начинает работать с LLM через промпты
✍️
Plain Text
Обычный текст, как сообщение в чате
📄
Markdown (.md)
Текст с разметкой: заголовки, списки, блоки кода
🔀
Разница
Когда это важно, а когда — нет
Главный тезис: Markdown — это не магия. Для коротких задач разницы почти нет. Он реально помогает, когда промпт сложный: несколько ролей, правил, примеров и контекстов одновременно.
Что такое промпт вообще
Промпт — это то, что ты пишешь модели. Может быть одним предложением или многостраничным документом. Claude читает и то, и другое. Вопрос в том, насколько точно он понимает что ты хочешь.
Когда задача простая — «переведи это на английский» — формат не важен. Когда задача сложная — «ты старший разработчик Go, проверь этот код на безопасность, игнорируй стиль, отвечай только на русском, формат: JSON» — структура начинает иметь значение.
Зачем использовать Markdown
Три реальных причины и одна антипричина
Причина 1 — Чёткие границы секций. Заголовки (
##) создают явные разделы. Модель понимает, что «Роль», «Задача» и «Ограничения» — разные блоки, а не один поток мыслей.Причина 2 — Переиспользование. Сохранил файл
prompt.md → загрузил в следующую сессию. Не надо объяснять контекст заново каждый раз.Причина 3 — Читаемость для себя. Через неделю ты сам поймёшь что написал. Особенно если промпт редактируется и итерируется.
Антипричина: Markdown — не способ «обмануть» модель или получить более умные ответы. Это просто лучшая организация информации. Плохой промпт в Markdown остаётся плохим промптом.
Что помогает Claude читать промпт
Конкретные элементы разметки
| Элемент | Синтаксис | Зачем нужен |
|---|---|---|
| Заголовок раздела | ## Роль |
Разделяет логические блоки промпта |
| Список правил | - правило 1 |
Каждое правило — отдельный элемент, не теряется в тексте |
| Блок кода | ```go |
Явно отделяет код от инструкций |
| Выделение | **важно** |
Акцентирует критические ограничения |
| Таблица | | col | col | |
Структурированные входные данные |
Живые примеры
Тот же смысл — разная подача
Пример 1 — Задача ревью кода
📝 Plain Text
ты опытный go разработчик проверь мой код на безопасность не смотри на стиль отвечай только на русском список проблем с описанием и как исправить вот код func login(w http.ResponseWriter, r *http.Request) { user := r.FormValue("user") pass := r.FormValue("pass") query := "SELECT * FROM users WHERE name='" + user + "' AND pass='" + pass + "'" }
✨ Markdown
## Роль Ты — senior Go разработчик специализирующийся на безопасности. ## Задача Проверь код на уязвимости. **Стиль и форматирование — игнорируй.** ## Формат ответа - Язык: русский - Список проблем: уязвимость → как исправить ## Код ```go func login(w http.ResponseWriter, r *http.Request) { user := r.FormValue("user") pass := r.FormValue("pass") query := "SELECT * FROM users WHERE " + "name='" + user + "' AND pass='" + pass + "'" } ```
Что меняется
В plain text версии «не смотри на стиль» может быть проигнорировано — оно тонет в потоке. В markdown это выделено жирным в отдельном блоке. Код явно отделён от инструкций — нет риска что модель воспримет часть кода как текстовую команду.
Пример 2 — Сложный system prompt (загружаемый файл)
📝 Plain Text
ты помогаешь разработчикам университета СВФУ отвечай только на русском языке фокусируйся на go и sql server не давай советы по другим языкам если вопрос не по теме скажи что не можешь помочь ответы должны быть краткими без лишних вступлений всегда показывай примеры кода
✨ Markdown (.md файл)
# Системный промпт — СВФУ Dev Assistant ## Роль Ты — технический ассистент команды разработки СВФУ. ## Правила - Язык ответов: **только русский** - Стек: Go, SQL Server - Вопросы вне стека → вежливый отказ - Без вступительных фраз («Конечно!» и т.д.) - Всегда включай примеры кода ## Запрещено - Советы по PHP, Python, JS (если не спросят) - Длинные теоретические вступления
Почему это удобнее как файл
Этот промпт загружается один раз в начале сессии. Если работаешь над разными проектами — у тебя несколько файлов: svfu-dev.md, code-review.md, sql-helper.md. Переключаешься между задачами без перепечатки контекста.
Пример 3 — Когда plain text полностью ок
Короткие задачи не нуждаются в Markdown. «Переведи на английский», «что такое mutex», «исправь опечатки» — здесь структурированный промпт только замедлит тебя. Пиши как в чате.
Claude vs другие модели
Как разные LLM реагируют на структуру промпта
Все современные большие модели понимают Markdown. Разница — в том, насколько точно они следуют структуре при сложных многосекционных промптах.
| Модель | Следование структуре | Plain text → Markdown | Особенность |
|---|---|---|---|
| Claude (Anthropic) | Высокое | Хорошо разграничивает роли, ограничения и задачи как отдельные блоки. Строже следует правилам из списков. | |
| ChatGPT (OpenAI) | Среднее | Хорошо работает с обоими форматами. При сложных промптах структура помогает, но модель и так неплохо справляется с «длинным потоком». | |
| Grok (xAI) | Среднее | Разумная обработка структуры, но иногда может отступить от жёстких ограничений из ## Запрещено блоков. |
|
| DeepSeek | Среднее | Хорошо воспринимает структурированные промпты, особенно технические. Разрыв с plain text меньше выражен для коротких задач. | |
| Qwen (Alibaba) | Базовое | Понимает Markdown, но при сложных промптах с множеством ограничений точность выполнения ниже. Структура помогает, но менее стабильно. |
В чём Claude отличается
Claude обучался с особым вниманием к чёткому следованию инструкциям. Это значит:
- Блок
## Ограниченияс жёсткими правилами — Claude следует им точнее - Явно заданный формат ответа (
## Формат) — Claude редко от него отступает - Разделение «что делать» и «чего не делать» — воспринимается как два отдельных контракта
⚠️ Это сравнение основано на общих наблюдениях. Конкретные результаты зависят от версии модели и задачи.
Шпаргалка
Быстрый справочник — сохрани и используй
Шаблон сложного промпта (.md)
# Название / контекст (одна строка — о чём этот промпт) ## Роль Ты — [кто]. Специализация: [что]. ## Задача [Что конкретно нужно сделать. Одно предложение на задачу — лучше.] ## Контекст - [Важная деталь 1] - [Важная деталь 2] ## Ограничения - **Обязательно:** [что должно быть в ответе] - **Запрещено:** [чего быть не должно] ## Формат ответа - Язык: [русский / английский] - Структура: [список / JSON / prose / код] - Длина: [краткий / детальный] ## Входные данные [Текст / код / данные для обработки]
Используй Markdown когда
- Промпт длиннее 5–6 предложений
- Есть несколько правил или ограничений
- Нужно передать код + инструкции вместе
- Промпт будет переиспользоваться
- Работаешь с system prompt / персонажем
Plain text достаточно когда
- Одна простая задача
- Нет сложных ограничений
- Это разовый вопрос в чате
- Итеративный диалог («а теперь измени X»)
- Задача вписывается в 1–2 предложения
Золотые правила промпта (любой формат)
| 🎯 | Одна задача — один промпт. «Переведи и отрефактори и добавь комментарии» — плохо. Разбей на шаги. |
| 📐 | Формат ответа явно. Если нужен JSON — напиши «верни JSON». Если список — «верни нумерованный список». |
| 🔤 | Язык ответа явно. По умолчанию Claude отвечает на языке вопроса, но при mixed-промптах лучше указать. |
| ❌ | Не/запрещено. Негативные ограничения (не используй библиотеки кроме stdlib) работают — пиши их явно. |
| 💾 | Сохраняй хорошие промпты. Если получилось хорошо — сохрани как .md файл, не теряй. |