TL;DR
Multi-Stage Counseling Framework — техника организации консультационного диалога через жёсткую последовательность этапов. LLM ведёт беседу по заданному плану: сначала выясняет контекст и цели, затем собирает критичные данные (предпочтения, ограничения), анализирует собранную информацию на основе внешней базы знаний, даёт рекомендацию и на финальном этапе проверяет понимание. Каждый этап завершается проверкой — готов ли пользователь перейти дальше.
LLM плохо работает в "свободной беседе" для задач, где важна полнота данных и точность рекомендаций. Модель может забыть спросить про критичные ограничения, дать совет на основе неполной информации или уйти в сторону от темы. В медицине это опасно — пропущенный вопрос про аллергию может привести к вредной рекомендации. В обычной версии (baseline с naive prompting) модель пропускала важные вопросы в 15% случаев и давала противопоказанные рекомендации в 14 из 169 диалогов.
Метод разбивает беседу на 5 фиксированных этапов, каждый с явной целью и проверкой завершения. LLM получает две инструкции: (1) какой этап сейчас активен и какую информацию нужно собрать, (2) как проверить готовность перехода на следующий этап. Дополнительно используется внешняя база знаний (загруженные документы) для точных рекомендаций и "thought injection" — явное задание логики рассуждений в промпте.
Схема метода
ЭТАП 1: Сбор контекста
→ Определение цели пользователя (конкретное решение или общая информация?)
ЭТАП 2: Скрининг предпочтений
→ Выявление приоритетов (цена, удобство, побочные эффекты)
ЭТАП 3: Скрининг ограничений
→ Сбор критичных данных (медицинская история, противопоказания)
ЭТАП 4: Анализ и рекомендация
→ Структурированное рассуждение с учётом всех данных
→ Рекомендация с обоснованием
ЭТАП 5: Проверка понимания
→ Генерация итогового резюме
Проверки на каждом этапе:
✓ Guardrail 1: Завершил ли LLM этап вопросом, ведущим к следующему?
✓ Guardrail 2: Учитывает ли рекомендация все собранные данные?
Все этапы выполняются в одном диалоге. Модель переходит к следующему этапу только после получения полных ответов на текущем.
Пример применения
⚠️ Метод НЕ работает для простых задач — если вопрос решается за 1-2 реплики, структура избыточна. Сильная зона: консультирование с множеством переменных и высокой ценой ошибки.
Задача: Основатель стартапа хочет выбрать тариф Яндекс.Облака, но не разбирается в технических деталях. Нужна консультация с учётом бюджета, текущей нагрузки и планов роста — если выбрать неправильно, либо переплатишь, либо сервис ляжет при росте трафика.
Промпт:
Ты — консультант по облачным решениям. Проведи меня через выбор тарифа Яндекс.Облака,
используя 5-этапный процесс:
ЭТАП 1: Цель
- Я уже знаю что хочу, или мне нужна общая информация?
- Какая задача: разработка, продакшн, тестирование?
ЭТАП 2: Приоритеты
- Что важнее: цена, производительность, гибкость масштабирования?
- Есть ли критичные требования (compliance, локация данных)?
ЭТАП 3: Ограничения
- Какой бюджет на месяц?
- Текущая или ожидаемая нагрузка (пользователи, трафик, данные)?
- Планы роста на 6-12 месяцев?
ЭТАП 4: Анализ и рекомендация
На основе собранных данных:
1. Оцени объём ресурсов (CPU, RAM, Storage)
2. Сравни доступные тарифы
3. Дай рекомендацию с обоснованием
4. Укажи риски и альтернативы
ЭТАП 5: Проверка
Резюмируй выбор и спроси, всё ли понятно.
Переходи к следующему этапу ТОЛЬКО когда я дал полные ответы на текущий.
В конце каждого этапа задавай вопрос, ведущий к следующему.
База знаний:
[Прикрепить документ с описанием тарифов Яндекс.Облака или вставить текст]
Начни с Этапа 1.
Результат: Модель проведёт структурированную беседу в 5 этапов. На каждом этапе будет задавать конкретные вопросы и не перейдёт дальше без полных ответов. Например, на Этапе 1 спросит про задачу и цель, завершит вопросом "Готов перейти к обсуждению приоритетов?". На Этапе 4 даст обоснованную рекомендацию с расчётом ресурсов и указанием, что учтено (бюджет 50к/мес, рост на 3x за полгода, нужна РФ-локация). Финальное резюме можно скопировать для обсуждения с командой.
Почему это работает
LLM в свободной беседе склонна к information drift — постепенному смещению фокуса. Пользователь задаёт вопрос, модель отвечает, но не собирает всю критичную информацию. Результат — рекомендация на основе неполных данных. В медицине это опасно (пропущенные противопоказания), в бизнесе — неэффективно (выбор не под реальные нужды). Модель может дать совет уже на 2-й реплике, не спросив про бюджет или планы роста.
Сильная сторона LLM — следовать явным структурированным инструкциям. Если задать чёткий план ("сначала спроси X, потом Y, потом Z") и условия перехода ("переходи дальше только когда..."), модель выполнит последовательность. Это как дать LLM чек-лист вместо размытой цели "помоги выбрать".
Метод использует эту силу через stage gating — контроль переходов между этапами. LLM знает: на этапе 2 нельзя давать рекомендацию, можно только собирать предпочтения. Это снижает hallucination (нет данных → нет выводов) и повышает completeness (все этапы пройдены → все данные собраны). В исследовании pass rate вырос с 85% до 98%, пропуски критичных вопросов исчезли.
Рычаги управления промптом:
- Количество этапов — уменьши для простых задач (3 вместо 5 для "выбрать хостинг"), увеличь для сложных (7 для "M&A сделка")
- Условия перехода — строгие ("все вопросы ответил") vs мягкие ("основное понял") — первое для критичных задач
- База знаний — загрузи документы для точных рекомендаций (прайс-листы, техдоки) или работай на знаниях LLM
- Guardrails — добавь проверки ("учтены ли все ограничения?", "есть ли риски?") для высокой цены ошибки
Шаблон промпта
Ты — {роль консультанта}. Проведи меня через {задачу}, используя {N}-этапный процесс:
ЭТАП 1: {Название этапа}
- {Вопрос 1}
- {Вопрос 2}
Цель: {что нужно выяснить}
ЭТАП 2: {Название этапа}
- {Вопрос 1}
- {Вопрос 2}
Цель: {что нужно выяснить}
[Повтори для всех этапов]
ЭТАП {N}: {Финальный этап}
- {Действие на финальном этапе}
Правила перехода:
- Переходи к следующему этапу ТОЛЬКО когда я дал полные ответы на текущий
- В конце каждого этапа задавай вопрос, ведущий к следующему
- На этапе анализа используй все собранные данные
База знаний:
{Прикрепить документ или вставить ключевую информацию}
Начни с Этапа 1.
Заполнение:
{роль консультанта}— "консультант по выбору CRM", "карьерный советник", "финансовый консультант"{задачу}— "выбор CRM для малого бизнеса", "смена профессии", "выбор брокера"{N}— количество этапов (обычно 3-5){Название этапа},{Вопрос 1-2},{что нужно выяснить}— конкретизируй под свою задачу{База знаний}— прикрепи PDF или вставь текст с фактами для рекомендаций
🚀 Быстрый старт — вставь в чат:
Вот шаблон Multi-Stage Counseling Framework. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какие этапы нужны, какие вопросы задавать на каждом этапе, и какую базу знаний использовать — потому что для разных задач критична разная информация (в медицине — противопоказания, в бизнесе — бюджет и рост, в карьере — навыки и рынок). Она возьмёт паттерн из шаблона и адаптирует под задачу.
Ограничения
⚠️ Не для простых задач: Если вопрос решается за 1-2 реплики ("столица Франции?", "курс доллара?"), 5-этапный процесс избыточен. Используй для задач, где важна полнота данных и обоснованность рекомендации.
⚠️ Требует дисциплины от пользователя: Метод работает, если пользователь отвечает на все вопросы. Если пропускать этапы или давать неполные ответы ("не знаю", "неважно"), рекомендация будет неточной. Модель не экстрасенс — garbage in, garbage out.
⚠️ База знаний критична для специфических доменов: Для медицины, финансов, tech модель без документов может hallucinate факты (устаревшие цены, неточные противопоказания). Загрузи актуальную информацию или явно ограничь область рекомендаций ("только общие принципы, конкретику уточни у специалиста").
Как исследовали
Исследователи из UNC School of Nursing построили SARHAchat — чатбот для консультирования по выбору методов контрацепции — и протестировали на 169 диалогах. Сравнивали с baseline: обычный ChatGPT с загруженными медицинскими документами (naive prompting без структуры этапов).
Два типа тестов:
- Контролируемое тестирование — реальные медсёстры и врачи общались с ботом как пациенты
- Синтетические диалоги — симулировали пациентов с разными медицинскими историями, предпочтениями, противопоказаниями
Медицинские эксперты оценивали каждый диалог по двум критериям:
- Medical safety (медицинская безопасность) — точность рекомендаций, отсутствие опасных советов, полнота скрининга
- Conversational quality (качество беседы) — естественность диалога, эмпатия, логичность переходов
Результаты показали резкий скачок: pass rate вырос с 85% до 98%. Что важнее — в baseline модель 14 раз рекомендовала противопоказанные методы контрацепции (опасно для здоровья!), в новой версии — ноль случаев. Также исчезли пропуски критичных вопросов про медицинскую историю (1 случай в baseline → 0 в новой версии). Ошибки в критичной информации упали с 11 до 3.
Почему такая разница? Baseline работал как "ChatGPT + документы" — модель могла уйти в сторону, пропустить вопросы, дать совет до сбора всех данных. Пациент спросил про "что-то удобное" → модель сразу рекомендовала таблетки, не спросив про курение и давление (противопоказание!). Structured flow заставил модель следовать строгому плану: сначала весь скрининг (этапы 1-3), потом анализ, потом рекомендация. Это не дало модели "срезать углы".
Инсайт для практики: Жёсткая структура этапов критична, когда цена ошибки высока. В медицине, финансах, юридических консультациях лучше перестраховаться и собрать все данные, чем дать быстрый, но неточный совет. Conversational quality тоже выросла (89% → 99% satisfactory) — пользователи оценили предсказуемость и полноту беседы.
Ресурсы
SARHAchat: An LLM-Based Chatbot for Sexual and Reproductive Health Counseling Демо системы: https://sarhachat.com/
Ссылки из исследования:
- CDC Medical Eligibility Criteria for Contraceptive Use, 2024: https://www.cdc.gov/mmwr/volumes/73/rr/rr7304a1.htm
- CDC Selected Practice Recommendations for Contraceptive Use, 2024: https://www.cdc.gov/mmwr/volumes/73/rr/rr7303a1.htm
Jiaye Yang, Xinyu Zhao, Tianlong Chen, Kandyce Brennan — University of North Carolina at Chapel Hill
