Декомпозиция сложных задач

Когда задача слишком большая для одного промпта, её разбивают на шаги и решают по очереди — точность и контроль резко растут.

Декомпозиция — разбиение сложной задачи на меньшие подзадачи, каждая из которых решается отдельным, более простым промптом.

Почему один большой промпт ломается

Если попросить модель «прочитай 20 страниц, найди проблемы, предложи решения, напиши план и оформи отчёт» одним запросом, она сделает всё поверхностно и часть требований потеряет. Внимание модели «размазывается» по слишком многим целям сразу. Дробление возвращает фокус.

Два вида декомпозиции

  • Внутри одного промпта: явно перечислить шаги и попросить пройти их по порядку. Подходит для средней сложности.
  • Цепочка промптов: выход одного запроса становится входом следующего. Подходит для сложного пайплайна, где между шагами нужна проверка или код.

Пример: разбор статьи

Сложную задачу «сделай конспект-аналитику» разложим на три шага.

// Шаг 1 — извлечение
Извлеки из текста 5 главных тезисов в виде списка.
Только тезисы, без оценок.
Текст: """..."""
// Шаг 2 — критика (на вход — тезисы из шага 1)
Для каждого тезиса ниже укажи одно слабое место
или недостающее доказательство.
Тезисы:
1. ...
2. ...
// Шаг 3 — синтез
На основе тезисов и замечаний напиши вывод в 3 предложениях:
что автор доказал, а что осталось спорным.

Каждый шаг прост, проверяем и при необходимости переисполняем независимо. Это и надёжнее, и дешевле в отладке, чем один монолит.

Когда дробить

ПризнакДействие
Много разнородных подцелейРазбить на шаги
Нужна проверка между этапамиЦепочка промптов
Модель теряет часть требованийДробить
Задача простая и однороднаяОдин промпт

Плюс декомпозиции для отладки

Когда пайплайн разбит, легко найти, на каком шаге всё пошло не так, и чинить именно его. В монолитном промпте такой локализации нет — приходится переписывать целиком.

Итог

  • Большая задача в одном промпте решается поверхностно — внимание размазывается.
  • Дробите: либо шаги внутри промпта, либо цепочка из отдельных запросов.
  • Каждый шаг проще, проверяем и переисполним отдельно.
  • Декомпозиция упрощает отладку: видно, где именно сбой.
Проверьте себя
1. Почему один промпт с множеством разнородных целей часто проваливается?
AМодель не умеет читать длинный текст
BВнимание модели размазывается по целям, и часть требований теряется или делается поверхностно
CAPI не принимает длинные промпты
DЭто всегда дороже
2. В чём отличие цепочки промптов от шагов внутри одного промпта?
AЦепочка дешевле всегда
BВ цепочке выход одного запроса становится входом следующего, что позволяет проверку между этапами
CЭто одно и то же
DШаги внутри промпта невозможны
3. Какое преимущество даёт декомпозиция при отладке?
AНикакого
BВидно, на каком конкретном шаге произошёл сбой, и чинится именно он
CОна убирает необходимость тестировать
DОна отключает галлюцинации
Поддержать проект