Microsoft выпустила язык разметки для работы с LLM

Microsoft презентовала POML (Prompt Orchestration Markup Language) — язык разметки для структурирования промптов к языковым моделям. По сути, это попытка привнести порядок в хаос современного промпт-инжиниринга через HTML-подобный синтаксис.

Что предлагают

Вместо традиционного текстового промпта вида «Ты эксперт по X, сделай Y, учитывая Z», Microsoft предлагает писать так:

<poml> <role>You are a patient teacher</role> <task>Explain photosynthesis</task> <img src="diagram.png" /> <output-format>Keep it under 100 words</output-format> </poml>

Основная идея — разделить промпт на семантические компоненты (<role>, <task>, <example>), добавить возможность работы с внешними данными (<document>, <table>, <img>) и ввести систему стилей в духе CSS для управления форматированием.

Технические детали

Шаблонизатор и переменные. POML включает встроенный движок шаблонов с поддержкой переменных {{ }}, циклов for, условий if и определения переменных через <let>. Это позволяет динамически генерировать промпты на основе входных данных.

Разделение контента и презентации. Через <stylesheet> можно управлять тем, как промпт будет представлен модели — уровнем детализации, форматом синтаксиса и другими параметрами. Microsoft утверждает, что это помогает справиться с чувствительностью LLM к формату входных данных.

Инструментарий разработки. Выпущены SDK для Node.js и Python, а также расширение для VS Code с подсветкой синтаксиса, автодополнением и возможностью предпросмотра промптов. Для работы нужно настроить API-ключи к выбранной модели.

Практическая польза под вопросом

Идея структурировать промпты выглядит логично — особенно для сложных систем с множеством компонентов. Но есть несколько моментов, которые вызывают скепсис:

Избыточная сложность. Для простых промптов POML добавляет лишний слой абстракции. То, что можно написать в три строки текста, превращается в XML-документ с кучей тегов.

Привязка к экосистеме. Хотя проект и открытый, создание собственного формата разметки часто ведёт к vendor lock-in. Сегодня это open source от Microsoft, завтра — часть Azure AI Studio за подпиской.

Решение несуществующей проблемы? Большинство разработчиков справляются с промпт-инжинирингом через обычные шаблонизаторы (Jinja2, Handlebars) или просто f-строки в Python. POML предлагает специализированное решение там, где универсальные инструменты работают вполне нормально.

Где может пригодиться

Несмотря на скептицизм, у POML есть потенциальные ниши:

  • Энтерпрайз-системы с десятками различных промптов, где важна стандартизация и поддерживаемость кода.
  • Мультимодальные приложения, работающие с изображениями, таблицами и документами одновременно.
  • Команды без опыта в программировании, которым проще работать с декларативной разметкой, чем с кодом.

Итог

POML — это попытка Microsoft формализовать и стандартизировать работу с промптами. Инструмент может найти свою аудиторию в корпоративном сегменте, где любят структуру и процессы. Для большинства же разработчиков это выглядит как overengineering — решение, которое усложняет простые вещи без очевидной выгоды.

Посмотрим, приживётся ли подход. История IT полна примеров как успешных стандартов (JSON, Markdown), так и забытых попыток всё усложнить (помните SOAP?). POML пока больше похож на второй вариант.

Подписывайтесь на Telegram Нейрократия.

1
2 комментария