Синтаксис в промпте: когда искусственные команды срабатывают
Модель воспринимает синтаксис вроде [BEGIN], {STOP}, ### не благодаря волшебству разметки, а потому что встречала подобные структуры в исходных текстах. Если паттерн часто появлялся вместе с определённым поведением, модель усвоила эту связь. Но это работает только в пределах её обучающей выборки.
Встроенные форматы — JSON, XML, Markdown — срабатывают надёжнее всего, потому что это реальные языки с широким применением. Придуманные разделители типа === SECTION === работают менее стабильно, и их влияние сильно зависит от того, как часто они встречались в корпусе.
Структура вместо синтаксиса
Главное открытие последних лет: синтаксис помогает, но вторичен. Первичны логический порядок, контрастное выделение секций и ясное разделение ролей. Модель может проигнорировать [SKIP] и обработать текст, но едва ли проигнорирует явное разделение на две части, если в первой идёт контекст, а во второй — задача.
Хорошая разметка работает как якорь для внимания модели, а не как команда. Вместо попытки придумать новый синтаксис полезнее выстроить информацию так, чтобы важные части стояли отдельно, в привычных разделителях или просто в отдельных абзацах.
Промпты, которые полагаются на нестандартные символы и команды, часто ломаются при небольших изменениях модели или версии. Текст, построенный на логике и стандартных разделителях, переносится между моделями гораздо надёжнее.