TL;DR
Prompt Chaining — техника разбиения сложной задачи на последовательность более простых промптов, где результат каждого шага передаётся как вход для следующего. Multi-agent workflow — подход, где каждый промпт выполняет отдельную роль в общем процессе (аналитик → бизнес-эксперт → писатель → валидатор). Вместо одного громоздкого запроса с кучей инструкций создаёшь конвейер из специализированных шагов.
LLM плохо справляются с множественными одновременными инструкциями в одном промпте. Модель теряет фокус, путается в приоритетах, игнорирует часть правил, выдаёт противоречивую информацию. Особенно это заметно на задачах, где нужно одновременно анализировать данные, применять бизнес-логику, соблюдать формат и проверять точность. Попытка упаковать всё в один промпт приводит к нестабильным результатам — то работает, то нет.
Решение — разделить ответственность. Первый промпт интерпретирует данные без оценок. Второй находит закономерности и значимые тренды. Третий формулирует выводы в нужном стиле. Четвёртый проверяет результат на ошибки. Каждый шаг делает одну вещь хорошо, а не пытается угодить всем требованиям сразу. Между шагами ты копируешь вывод предыдущего и вставляешь как контекст в следующий.
Схема метода
Вариант 1: Последовательные запросы (prompt chaining)
ШАГ 1 (Запрос 1): Роль "Аналитик данных" → Преобразует таблицу в текстовые наблюдения
ШАГ 2 (Запрос 2): Роль "Бизнес-аналитик" + вывод из Шага 1 → Находит ключевые тренды
ШАГ 3 (Запрос 3): Роль "Репорт-писатель" + вывод из Шага 2 → Формулирует краткий отчёт
ШАГ 4 (Запрос 4): Роль "Валидатор" + исходные данные + отчёт → Проверяет на ошибки
Вариант 2: Один промпт с симуляцией агентов (для продвинутых)
Один промпт содержит:
- Описание 4 ролей с чёткими обязанностями
- Псевдокод цикла: Agent_1 → Agent_2 → Agent_3 → Agent_4
- Инструкцию показывать вывод каждого агента отдельно
Пример применения
Задача: Анализ финансовой сделки для принятия решения об инвестиции
Представь: сидишь с партнёром, обсуждаете стартап. У тебя есть финансовый отчёт, но нужно быстро понять — что там происходит, это нормально или тревожно, и как объяснить это инвестору не на языке бухгалтера.
Промпт (4 последовательных запроса):
ЗАПРОС 1:
Ты — финансовый аналитик. Перед тобой данные:
- Выручка Q1: 2.5М₽, Q2: 3.8М₽
- Расходы Q1: 1.8М₽, Q2: 3.2М₽
- Маржа Q1: 28%, Q2: 16%
Задача: Опиши что произошло с каждым показателем. Только факты, никаких оценок.
---
ЗАПРОС 2:
Ты — бизнес-консультант. Вот наблюдения аналитика:
[вставь вывод из Запроса 1]
Задача: Какие тренды здесь ключевые? Что вызывает беспокойство? Какие гипотезы?
---
ЗАПРОС 3:
Ты — инвест-консультант, готовишь краткую справку для инвестора.
[вставь вывод из Запроса 2]
Задача: Сформулируй 3 главных тезиса. Максимум 4 предложения. Тон: спокойно-аналитический, без паники и без эйфории.
---
ЗАПРОС 4:
Ты — risk-аналитик. Проверь отчёт:
Исходные данные: [данные из Запроса 1]
Итоговый отчёт: [вывод из Запроса 3]
Задача: Есть ли расхождения? Что упущено? Что преувеличено?
Результат:
Ты получишь 4 вывода:
- Сухие факты без интерпретаций
- Бизнес-гипотезы и приоритеты
- Краткую справку в нужном тоне
- Список замечаний к точности
Каждый шаг фокусируется на своей задаче. Никакой каши из "анализируй + формулируй + проверь" в одном запросе.
Почему это работает
Проблема: LLM теряет фокус при множественных инструкциях. Если в одном промпте написано "извлеки данные + найди тренды + соблюдай формат + проверь точность", модель начинает жонглировать приоритетами. Результат непредсказуем: то забудет формат, то пропустит тренд, то нафантазирует несуществующие цифры.
Сильная сторона LLM: Чёткие ролевые инструкции. Когда модели говоришь "ты — бизнес-аналитик, только анализируешь тренды, никаких выводов", она хорошо держит границы роли. Особенно если дать конкретный формат вывода: "список из 3 пунктов" или "таблица с колонками".
Механика метода: Разбиваешь задачу на роли, каждая роль — отдельный промпт. Вывод одной роли → вход для следующей. Получается конвейер: данные → интерпретация → бизнес-смысл → финальная формулировка → проверка. Каждый этап делает одно действие качественно, а не размазывает внимание.
Рычаги управления:
- Число шагов — для простых задач хватит 2 (анализ + формулировка), для сложных можно 5-6 (добавить роль "эксперта по контексту", "критика", "редактора")
- Роли — замени "аналитик" на конкретное имя/персонаж для более яркого выполнения роли
- Формат вывода — укажи "только список", "таблица", "JSON" для каждого шага — проще парсить и передавать дальше
- Условие завершения — добавь в последний шаг "если есть критические ошибки, укажи какие" вместо пассивной проверки
Шаблон промпта
ЗАПРОС 1 — Интерпретация данных:
Ты — {роль_1}. Перед тобой {описание_данных}.
Задача: {что_сделать_с_данными}. Только факты, без оценок.
Формат вывода: {формат_1}
ЗАПРОС 2 — Анализ трендов:
Ты — {роль_2}. Вот данные от предыдущего эксперта:
[вставь вывод из Запроса 1]
Задача: {что_найти_или_оценить}
Формат вывода: {формат_2}
ЗАПРОС 3 — Формулировка выводов:
Ты — {роль_3}. На основе анализа:
[вставь вывод из Запроса 2]
Задача: Сформулируй {что_нужно}. Тон: {стиль}. Ограничение: {лимиты}
Формат вывода: {формат_3}
ЗАПРОС 4 — Валидация:
Ты — {роль_4}. Проверь результат:
Исходные данные: {данные}
Итоговый вывод: [вставь из Запроса 3]
Задача: Есть ли ошибки? Что упущено? Что противоречит исходным данным?
Подставь:
{роль_N}— конкретная роль: аналитик, бизнес-консультант, копирайтер, критик, валидатор{описание_данных}— что за информация: таблица, текст, список событий{что_сделать}— действие для этого шага: интерпретируй, найди тренды, сформулируй кратко{формат_N}— структура вывода: список, таблица, 3 тезиса, JSON
🚀 Быстрый старт — вставь в чат:
Вот шаблон Prompt Chaining + Multi-Agent. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какие роли нужны, какой формат вывода, сколько шагов — потому что структура метода требует декомпозиции задачи. Она возьмёт паттерн и создаст цепочку промптов под твою ситуацию.
Ограничения
⚠️ Множественные запросы: Каждый шаг — отдельный запрос к модели. Если шагов 5 — это 5 запросов. Платные API считают каждый. В бесплатных версиях ChatGPT/Claude есть лимиты на число сообщений в час.
⚠️ Копирование между шагами: Нужно вручную копировать вывод каждого шага и вставлять в следующий промпт. Если шагов много — утомительно. Автоматизация требует API или скрипта.
⚠️ Потеря контекста: Каждый новый запрос не помнит предыдущие, если не вставишь вывод явно. Забыл скопировать → цепочка сломалась, начинай сначала.
⚠️ Не для простых задач: Если задачу решает один промпт — не усложняй. Prompt chaining имеет смысл когда одиночный промпт нестабилен или игнорирует часть инструкций.
Как исследовали
Исследователи из Chalmers University и Mid Sweden University тестировали два подхода для автоматизации финансовой отчётности в компании Getinge AB. Задача: создать систему, которая читает таблицы с данными по продажам/заказам и генерирует текстовый комментарий для отчёта — что выросло, что упало, какие регионы и продукты ключевые.
Сначала пробовали один промпт — засунуть всё (данные + инструкции + формат) в один запрос. Модели (LLaMA 3.2, Qwen 2.5, GPT-4o) выдавали нестабильные результаты: то пропускали важные тренды, то галлюцинировали несуществующие цифры, то игнорировали формат.
Тогда разбили задачу на 4 агента:
- Data Analyst — читает таблицу, переводит в текст ("продажи X выросли на Y%")
- Business Analyst — находит значимые тренды (что главный драйвер роста, что проседает)
- Report Writer — формулирует краткий отчёт в корпоративном стиле
- Validator — сверяет итоговый текст с исходными данными, ищет ошибки
Каждый агент — отдельный промпт с чёткой ролью и форматом вывода. Результат одного агента копировался в следующий промпт как входные данные.
Вердикт экспертов:
GPT-4o генерировал более лаконичные тексты, но иногда пропускал ключевые факторы или путал приоритеты (называл "главным драйвером" сразу 3 вещи). Локальные модели (LLaMA 3.1) были более описательными, но медленнее и требовали больше итераций в промптах.
Оба подхода сократили время на черновик отчёта, но финальная проверка человеком всё равно оставалась обязательной — модели иногда ошибались в региональной атрибуции или переоценивали незначительные изменения.
Ключевой инсайт: Чем сложнее задача, тем сильнее падает качество при попытке решить её одним промптом. Декомпозиция на роли стабилизирует результат — каждый шаг делает своё дело, ошибки локализуются и проще отлавливаются.
Адаптации и экстраполяции
💡 Адаптация для креативных задач
Метод отлично работает не только для анализа данных, но и для создания контента, где нужны последовательные итерации.
Пример: Написание продающего текста
ЗАПРОС 1 — Исследователь:
Ты — маркетинговый исследователь. Изучи продукт: {описание}.
Задача: Выпиши 5 болей целевой аудитории, которые решает этот продукт.
ЗАПРОС 2 — Копирайтер:
Ты — копирайтер. Вот боли аудитории:
[вывод из Запроса 1]
Задача: Напиши 3 варианта заголовка. Каждый бьёт в одну из болей.
ЗАПРОС 3 — Редактор:
Ты — главред. Вот заголовки:
[вывод из Запроса 2]
Задача: Выбери лучший. Объясни почему. Предложи доработку.
🔧 Техника: Добавить "вывод мыслей" на каждом шаге
Если хочешь видеть как модель рассуждает, добавь в каждый промпт:
Формат вывода:
1. <мысли>: Твои рассуждения (2-3 предложения)
2. <результат>: Финальный вывод
Так ты видишь не только ответ, но и логику. Полезно для отладки — если результат странный, смотришь в <мысли> и понимаешь где свернуло не туда.
🔧 Техника: Динамическое ветвление
Добавь условный шаг после анализа:
ЗАПРОС 2.5 — Классификатор:
На основе анализа выше — задача простая или сложная?
- Если простая → переходи к Запросу 3 (формулировка)
- Если сложная → переходи к Запросу 2b (углублённый анализ)
LLM не выполнит ветвление автоматически, но ты смотришь на ответ и сам решаешь какой путь выбрать.
Ресурсы
Comparing Open-Source and Commercial LLMs for Domain-Specific Analysis and Reporting: Software Engineering Challenges and Design Trade-offs
Theo Koraag, Niklas Wagner, Felix Dobslaw, Lucas Gren
Chalmers University of Technology, University of Gothenburg, Mid Sweden University
