TL;DR
PromptTailor — метод превращения коротких пользовательских намерений в развёрнутые промпты через структурированную трёхшаговую оптимизацию. Система разворачивает минимальный ввод ("хочу черновик обзора по безопасности путешествий") в детальный промпт с ролью, контекстом, форматом и требованиями к выводу. Каждый шаг уточняет промпт: сначала анализ намерения, затем предложения по улучшению, наконец — финальная версия.
Главная находка исследования — концепция "capabilities" (возможностей). LLM часто сталкивается с дилеммой: промпт который точно следует пользовательскому запросу может быть неоптимальным для качества ответа. Например, пользователь просит "краткий финансовый отчёт", но для качественного отчёта нужна "идентификация трендов рынка" — возможность которую пользователь не упомянул. Исследователи решили это через механизм балансировки: модель собирает возможности из трёх источников — (1) что явно упомянул пользователь, (2) что можно вывести из его запроса, (3) что объективно нужно для качественной работы агента. Затем балансирует между ними.
Метод работает в три шага общения с моделью: Шаг 1 — модель разбирает намерение на "цель", "контекст", "желаемый результат" и собирает возможности. Шаг 2 — модель пересматривает список возможностей и даёт 5 конкретных предложений по оптимизации (роль, терминология, контекст, детали, формат). Шаг 3 — модель генерирует финальный оптимизированный промпт. Исследователи показали что эта структура даёт результаты сопоставимые с методом Evoke (9 вызовов модели), но требует всего 3 вызова.
Схема метода
ШАГ 1: Анализ намерения
Ввод: Короткое намерение пользователя + предпочтения
Процесс:
→ Разбор на "цель", "контекст", "желаемый результат"
→ Сбор capabilities из 3 источников:
• Явные (что сказал пользователь)
• Выведенные (что подразумевается)
• Необходимые (что нужно для качества)
→ План агента (высокоуровневый)
→ Базовый промпт
Вывод: Структурированный анализ + первая версия промпта
ШАГ 2: Предложения по оптимизации
Ввод: Результаты Шага 1
Процесс:
→ Ревизия и ребалансировка списка capabilities
→ Генерация 5 предложений:
1. Определить роль агента
2. Использовать точную терминологию
3. Добавить фоновый контекст
4. Дополнить недостающие детали
5. Указать формат вывода
Вывод: Оптимизированный список capabilities + 5 рекомендаций
ШАГ 3: Финальная генерация
Ввод: План и предложения из Шагов 1-2
Процесс: Синтез финального промпта
Вывод: Развёрнутый оптимизированный промпт
(Все 3 шага — отдельные запросы к модели)
Пример применения
⚠️ Ограничения метода: Исследование показало что метод особенно эффективен для сложных открытых задач где короткий промпт не раскрывает всех требований. Для простых однозначных задач ("переведи текст", "найди столицу") трёхшаговая оптимизация избыточна. Метод работает лучше на слабых моделях (до 8B параметров), где качество промпта критично. На сильных моделях (70B+) улучшение есть но меньше.
Задача: Ты запускаешь телеграм-канал про нейросети для маркетологов. Нужен контент-план на месяц. Пишешь в чат: "Хочу контент-план для телеграм-канала про нейросети в маркетинге. Аудитория — маркетологи малого бизнеса. Предпочитаю практичные кейсы без сложной технической терминологии."
Промпт (3 последовательных запроса):
# Запрос 1: Анализ намерения
Проанализируй моё намерение и создай базовый промпт для агента.
Моё намерение: "Хочу контент-план для телеграм-канала про нейросети в маркетинге.
Аудитория — маркетологи малого бизнеса. Предпочитаю практичные кейсы без сложной
технической терминологии."
Выполни:
1. Разбери намерение на:
• Цель (purpose)
• Контекст (context)
• Желаемый результат (desired outcome)
2. Собери список "capabilities" (возможностей агента) из трёх источников:
• Явно упомянутые в моём запросе
• Выведенные из контекста
• Объективно необходимые для качественного выполнения задачи
3. Создай краткий план агента (2-3 предложения)
4. Напиши базовый промпт для этого агента
---
# Запрос 2: Предложения по оптимизации
На основе предыдущего анализа:
1. Пересмотри список capabilities — сбалансируй между:
• Тем что я явно хотел
• Тем что нужно для качественного результата
2. Дай 5 конкретных предложений по улучшению промпта:
• Роль агента
• Точная терминология
• Фоновый контекст
• Недостающие детали
• Формат вывода
---
# Запрос 3: Финальный промпт
Создай оптимизированный промпт на основе плана и предложений выше.
Результат:
После трёх шагов получишь развёрнутый промпт (200-400 слов) примерно такой структуры:
- Роль: "Ты — контент-стратег для телеграм-каналов в нише edtech и marketing"
- Контекст: Описание аудитории, их болей, уровня технической подготовки
- Требования к контенту: Баланс между обучающими постами, кейсами, новостями
- Формат вывода: Таблица с датами, темами, форматами постов, краткими описаниями
- Дополнительные детали: Периодичность, тональность, примеры рубрик, хуки для вовлечения
Модель в Шаге 1 вытащит явные требования ("практичные кейсы", "без терминологии") + добавит неявные но важные ("вовлечение аудитории", "регулярность публикаций", "баланс форматов"). В Шаге 2 предложит добавить роль ("контент-стратег"), указать структуру вывода ("таблица с датами"), уточнить тональность. В Шаге 3 синтезирует всё в один промпт который сразу даёт качественный результат.
Почему это работает
Слабость LLM: Модели чувствительны к качеству промпта особенно на лёгких версиях (до 8B). Короткий промпт упускает важные детали — модель не знает какую роль взять, какой формат вывода, какие нюансы контекста учесть. Пользователь часто не знает что нужно указать явно. Результат — размытый ответ который требует доработки.
Сильная сторона LLM: Модели хорошо работают со структурированными инструкциями если дать им метазадачу — не сразу выполнить запрос, а сначала разобрать ЧТО от них хотят. Модель умеет анализировать намерения, выводить неявные требования, достраивать контекст. Если попросить модель сначала подумать над структурой задачи, она сама добавит недостающие элементы.
Как метод использует это: PromptTailor разворачивает одношаговую генерацию в трёхшаговый процесс рефлексии. Вместо "вот запрос → вот ответ" модель проходит через "анализ → предложения → синтез". На каждом шаге модель уточняет понимание задачи. Ключевой механизм — capabilities — заставляет модель балансировать между буквальным следованием запросу и добавлением того что объективно нужно для качества. Например, пользователь не упомянул "структуру вывода" но модель добавит это в список необходимых возможностей на Шаге 2.
Рычаги управления:
- Источники capabilities — можешь явно указать "учитывай только мои явные требования" или наоборот "добавь всё что считаешь нужным" → контролируешь баланс между точным следованием и оптимизацией
- Число шагов — можешь сократить до 2 (анализ + генерация) для простых задач или растянуть до 4 (добавить шаг валидации) → экономия токенов vs глубина проработки
- 5 предложений в Шаге 2 — замени на другие критерии под свою задачу (например для технического текста: "точность терминов, ссылки на стандарты, структура документа, уровень детализации, примеры кода")
- Формат вывода каждого шага — попроси "в виде JSON" или "списком" вместо абзацев → удобнее парсить и передавать в следующий шаг
Шаблон промпта
# ЗАПРОС 1: Анализ намерения
Проанализируй моё намерение и создай базовый промпт для агента.
Моё намерение: {твоё_намерение_и_предпочтения}
Выполни:
1. Разбери намерение на три компонента:
• Цель (purpose) — зачем мне это нужно
• Контекст (context) — в какой ситуации буду применять
• Желаемый результат (desired outcome) — что конкретно хочу получить
2. Собери список "capabilities" (возможностей агента):
Источник A: Возможности явно упомянутые в моём запросе
Источник B: Возможности выведенные из контекста запроса
Источник C: Возможности объективно необходимые для качественного выполнения задачи
3. Создай краткий план агента (2-3 предложения): что агент будет делать
4. Напиши базовый промпт для этого агента
Формат вывода:
[Цель]
[Контекст]
[Желаемый результат]
[Capabilities — Источник A]
[Capabilities — Источник B]
[Capabilities — Источник C]
[План агента]
[Базовый промпт]
---
# ЗАПРОС 2: Предложения по оптимизации
Используй результаты из Запроса 1.
1. Пересмотри список capabilities:
• Сбалансируй между тем что я явно хотел (Источник A+B)
и тем что нужно для качества (Источник C)
• Создай оптимизированный список capabilities
2. Дай 5 конкретных предложений по улучшению промпта:
Предложение 1 — Роль агента:
Какую роль/экспертизу должен взять агент для этой задачи?
Предложение 2 — Точная терминология:
Какие специфичные термины использовать для ясности?
Предложение 3 — Фоновый контекст:
Какую дополнительную информацию нужно предоставить агенту?
Предложение 4 — Недостающие детали:
Что ещё нужно уточнить для полноты?
Предложение 5 — Формат вывода:
Как структурировать результат (длина, формат, элементы)?
Формат вывода:
[Оптимизированный список capabilities]
[5 предложений по улучшению — пронумерованный список]
---
# ЗАПРОС 3: Финальный промпт
На основе плана агента из Запроса 1 и предложений из Запроса 2,
создай финальный оптимизированный промпт.
Промпт должен:
• Чётко определять роль агента
• Включать необходимый контекст
• Использовать точную терминологию
• Содержать все важные детали
• Указывать формат вывода
Формат вывода:
[Готовый оптимизированный промпт — 200-400 слов]
Как использовать:
- {твоё_намерение_и_предпочтения} — подставь свой короткий запрос (1-3 предложения) + любые предпочтения ("предпочитаю короткие ответы", "работаю в финтехе", "нужно для клиента")
- Запросы 1, 2, 3 отправляй последовательно — каждый следующий использует результат предыдущего
- Можешь копировать вывод модели между запросами вручную или попросить модель "используй свой предыдущий ответ"
🚀 Быстрый старт — вставь в чат:
Вот шаблон трёхшагового метода оптимизации промпта PromptTailor.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про твоё намерение и предпочтения — это нужно для сбора capabilities из трёх источников (явные, выведенные, необходимые). Она возьмёт структуру из шаблона и проведёт тебя через 3 шага: анализ → предложения → финальный промпт.
Ограничения
⚠️ Избыточность для простых задач: Метод создан для открытых сложных задач где качество промпта критично. Для простых запросов ("переведи текст", "реши уравнение", "найди информацию") три шага — overkill. Используй когда короткий промпт систематически даёт размытый результат.
⚠️ Больше токенов: Три последовательных запроса тратят больше токенов чем прямой запрос. Для лёгких моделей и задач где нужно много итераций — выгодно (один хороший промпт лучше десяти правок). Для разовых задач или дорогих моделей — оцени trade-off.
⚠️ Эффект сильнее на слабых моделях: Исследование показало что улучшение особенно заметно на моделях до 8-9B параметров (Llama3-8B, Mistral-7B, Gemma2-9B). На Llama3-70B улучшение есть но скромнее. Если работаешь с GPT-4 или Claude Opus — эффект будет меньше чем на лёгких моделях.
⚠️ Capabilities требуют понимания: Механизм балансировки между "что хочет пользователь" и "что нужно для качества" работает если модель понимает домен. Для узкоспециализированных или редких доменов модель может не угадать необходимые capabilities.
Как исследовали
Исследователи из Whitman College решили проблему отсутствия данных для обучения: взяли три мощные модели (GPT-4o-mini, Claude 3 Haiku, Grok-3-mini) и попросили их сгенерировать синтетический датасет из 12,300 диалогов оптимизации промптов по 41 домену — от юридических советов до кулинарии. Каждая модель симулировала пользователя с намерением и предпочтениями, потом проходила через четыре шага оптимизации. Затем файн-тюнили квантизованную 4-bit версию Llama3-8B с LoRA адаптером на этих данных — получили компактную модель-оптимизатор которая может работать на edge-устройствах.
Ключевая идея — distillation: сильные модели знают КАК оптимизировать промпты, эти знания "переливаются" в слабую модель через примеры. Исследователи обнаружили интересную проблему на ранних стадиях: если просить LLM "сгенерировать промпт" напрямую, модель путала это с академическими промптами для эссе. Решение — сначала попросить создать план агента, потом промпт для этого агента. Структура избавила от двусмысленности.
Для оценки создали LLM-as-a-Judge на базе OpenAI o1-mini который делал парные сравнения: оригинальный промпт vs оптимизированный. Не абсолютные оценки (они arbitrary), а именно "какой лучше" по двум метрикам — (1) соответствие намерению пользователя, (2) общее качество ответа. Каждое сравнение повторяли 5 раз, выбирали по моде. Тестировали на 410 примерах из отложенного набора.
Что удивило: Метод показал результаты сопоставимые с Evoke (state-of-the-art оптимизатором) но требовал втрое меньше вызовов модели — 3 против 9. Это критично для edge-устройств где каждый вызов дорог. Ещё удивило что оптимизированные промпты помогали даже моделям сильнее чем оптимизатор — Llama3-70B (в 8+ раз больше параметров) всё равно выигрывала от промптов созданных 8B моделью. Это означает что качество промпта важнее размера модели-оптимизатора.
Ablation study на механизм capabilities: сравнили модель с capabilities vs без. Результат — capabilities реально работают: модель обученная с этим механизмом генерировала промпты которые давали лучшие ответы в 212 случаях против 171. Логика "собрать возможности из трёх источников + сбалансировать" оказалась не просто теоретической красотой а практически полезной техникой.
Оригинал из исследования
Исследователи не дают один цельный промпт — они описывают структуру синтетического датасета на котором обучали модель. Эта структура и есть метод. Вот как они инструктировали LLM генерировать тренировочные примеры:
Turn 2: Intent Understanding and Base Prompt Formulation
In this stage, the LLM is instructed to perform the following steps:
(1) Intent and Preference Categorization: Convert raw user intents and
preferences into two distinct categories: "purpose" and "context."
(2) Desired Outcome Analysis: Carefully analyze the desired outcome
(or output) the user expects from the LLM agent.
(3) Capability Information Gathering:
• Explicit/Inferred Capabilities: Extract any capabilities explicitly
mentioned in or inferred from the user's original intent
• Task-Required Capabilities: Assess the type of LLM agent required
for the user's task, and identify its essential capabilities
(4) Agent Plan Generation: Provide a short, high-level plan for the agent.
(5) Initial Prompt Generation: Generate a simple, foundational prompt
for the agent.
Turn 3: Prompt Optimization Suggestions
In this stage, the LLM is instructed to:
First, carefully review and briefly summarize the information passed from
the previous turn, including the purpose, context, and desired outcome.
Subsequently, the model rebalances the capability information from the
last turn to generate an optimized list of capabilities.
Finally, it produces five concrete suggestions for optimizing the original
agent prompt:
(1) define an appropriate role for the agent
(2) use precise, domain-specific terminology
(3) provide any necessary extra background context
(4) add missing details for completeness
(5) specify the desired output format, length, and formatting
Turn 4: Final Prompt Generation
We asked the LLM to generate an optimized prompt based on the plan
and suggestions they provided.
Контекст: Это инструкции которые исследователи давали GPT-4o-mini, Claude 3 Haiku и Grok-3-mini для создания 12,300 синтетических диалогов. Каждый диалог содержал эти 4 шага. Затем на этих примерах файн-тюнили Llama3-8B чтобы она научилась повторять эту структуру. Ты можешь использовать эту же структуру вручную в чате с любой моделью — попроси её следовать этим шагам последовательно.
Адаптации и экстраполяции
💡 Адаптация: Двухшаговая версия для быстрых задач
Если три шага избыточны но хочешь структурности — схлопни Шаги 1 и 2:
# Шаг 1: Анализ + Предложения
Проанализируй моё намерение и дай рекомендации по промпту.
Намерение: {твоё_намерение}
1. Разбери на: цель, контекст, желаемый результат
2. Собери capabilities:
• Из моего запроса (явные + выведенные)
• Необходимые для качества
3. Дай 3 ключевых предложения:
• Роль агента
• Формат вывода
• Один критичный контекст который я упустил
---
# Шаг 2: Финальный промпт
На основе анализа создай оптимизированный промпт.
Эффект: Экономия токенов (~30-40% от трёхшагового), сохранение структурности. Подходит когда намерение относительно ясное но нужна "полировка".
🔧 Техника: Capabilities как чек-лист для ручной оптимизации
Если не хочешь три запроса — используй концепцию capabilities вручную:
Перед тем как дать задачу модели, потрать 30 секунд:
1. Что я ЯВНО хочу? (список)
2. Что я подразумеваю но не сказал? (список)
3. Что объективно нужно для качества задачи? (список)
Добавь пункты из списка 3 которые не конфликтуют со списками 1-2.
Пример:
- Явное: "Напиши пост про AI в HR"
- Подразумеваемое: "Для LinkedIn", "Серьёзный тон"
- Нужно для качества: "Конкретные примеры инструментов", "Цифры/кейсы", "Структура с подзаголовками"
Финальный промпт = явное + подразумеваемое + отфильтрованное из "нужно для качества".
💡 Адаптация: Промпт-оптимизатор для команды
Если несколько человек работают с LLM в одной компании — создай переиспользуемый процесс:
# Шаблон запроса в корпоративный чат с LLM
Я: {задача_одним_предложением}
Контекст команды (не меняй каждый раз):
• Работаем в {индустрия}
• Аудитория: {кто}
• Тон: {формальный/неформальный/etc}
• Формат по умолчанию: {списки/абзацы/таблицы}
Оптимизируй промпт:
1. Вытащи capabilities которые я подразумеваю но не назвал
2. Добавь {1-2} недостающих capabilities критичных для качества
3. Создай промпт с учётом контекста команды
4. Покажи мне промпт — я подтвержу или скорректирую
5. Выполни задачу по утверждённому промпту
Эффект: Стандартизация промптов в команде + ускорение через контекст по умолчанию. Каждый член команды получает согласованное качество.
Ресурсы
PromptTailor: Multi-turn Intent-Aligned Prompt Synthesis for Lightweight LLMs
Авторы: Yizhou Xu, Janet Davis
Whitman College, Department of Computer Science
Датасет и шаблоны: https://github.com/riverside234/data-template
Методы упомянутые в исследовании: - Evoke (Hu et al., 2023) — итеративная оптимизация через reviewer-author диалог - ExpertPrompting (Xu et al., 2023) — генерация task-specific expert personas - Multi-expert Prompting (Long et al., 2024) — симуляция нескольких экспертных точек зрения - Chain-of-Thought (Wei et al., 2022) — базовый метод рассуждений
