Least-to-Most Prompting

[object Object]

Least-to-Most Prompting — это техника, при которой задача разбивается на зависимые подзадачи, расположенные от простой к более сложной. Важно не просто перечислить шаги, а выстроить такую цепочку, где каждый следующий шаг реально использует результат предыдущего. В 2026 эту технику полезно воспринимать как sequential dependency management, а не как ещё один вариант фразы "реши по шагам".

Если итог зависит от нескольких промежуточных результатов, безопаснее считать не всё сразу, а собирать ответ по частям. Least-to-Most именно это и делает.

Суть в двух словах

Least-to-Most полезен, когда:

  • есть явная зависимость шагов друг от друга;
  • ошибка на старте ломает всё решение;
  • задачу можно естественно разложить от базовых фактов к выводу;
  • one-shot reasoning часто перескакивает через промежуточные вычисления.

Типичные кейсы:

  • word problems;
  • pricing и финмодели;
  • логические задачи;
  • multi-hop analysis по документу;
  • report generation, где сначала собираются факты, потом вывод.
ПромптClaude Sonnet 4.6
Разбей задачу от простого к сложному и реши последовательно.

У компании 3 тарифа: Basic 1200 ₽, Pro 3000 ₽, Team 9000 ₽. Клиентам дали скидки: 10% на 40 Basic, 15% на 18 Pro, 5% на 6 Team. Затем сверху действует квартальный rebate 12 000 ₽ на общий счёт. Сколько компания получит?

Сначала:
1. Посчитай цену каждой группы после скидки.
2. Посчитай сумму по всем группам.
3. Примени общий rebate.
4. Дай финальный ответ.
Ответ модели
  1. Цена каждой группы после скидки:
  • Basic: 1200 × 40 = 48 000 ₽; после 10% скидки = 43 200 ₽
  • Pro: 3000 × 18 = 54 000 ₽; после 15% скидки = 45 900 ₽
  • Team: 9000 × 6 = 54 000 ₽; после 5% скидки = 51 300 ₽
  1. Общая сумма: 43 200 + 45 900 + 51 300 = 140 400 ₽

  2. После rebate: 140 400 − 12 000 = 128 400 ₽

  3. Финальный ответ: 128 400 ₽

Что делает эту технику отдельной, а не просто "step by step"

Есть три разных режима, которые часто смешивают:

  1. CoT просит модель рассуждать.
  2. Plan-and-Solve просит сначала построить план, потом выполнить.
  3. Least-to-Most требует выстроить зависимую лестницу подзадач, где простые результаты становятся входом для более сложных.

То есть здесь акцент не на красивом плане и не на длинном reasoning, а на правильной очередности зависимостей.

Когда Least-to-Most даёт реальную пользу

Плюсы

  • Снижает риск пропуска промежуточных шагов
  • Хорошо подходит для задач с естественной иерархией зависимостей
  • Упрощает debugging: видно, на каком шаге сломалась цепочка
  • Полезен как deterministic scaffold даже для сильных reasoning-моделей

Минусы

  • Не даёт преимуществ, если шаги независимы
  • Ранние ошибки распространяются на всё решение
  • Плохо работает, когда задача вообще не поддаётся аккуратной декомпозиции
  • Увеличивает latency и длину ответа

Где техника особенно сильна

  • расчётные задачи с несколькими уровнями промежуточных величин;
  • legal / policy analysis, где сначала надо выделить факты, потом применить правила;
  • аналитические memo, где сначала собираются сигналы, затем группируются, затем формируется вывод;
  • data tasks, где сначала извлекаются числа, потом считаются метрики, потом делается интерпретация.

Где она обычно избыточна

  • простые factual questions;
  • свободное письмо;
  • brainstorming;
  • задачи, где ветки независимы и лучше параллелятся через Branch-Solve-Merge;
  • workflow, где нужен не порядок зависимостей, а модульная маршрутизация через DECOMP.

Хорошая формула для промпта

Практически useful prompt обычно выглядит так:

  1. Сначала определить подзадачи.
  2. Упорядочить их от простого к сложному.
  3. На каждом шаге явно использовать только уже полученные результаты.
  4. В конце дать финальный answer отдельно от промежуточных вычислений.
Если вы не можете коротко объяснить, почему шаг 3 зависит от шагов 1 и 2, у вас, скорее всего, не Least-to-Most, а просто список пунктов.

Практический паттерн в production

На практике технику удобно делать не одним длинным монологом, а двухфазно:

  1. decompose
  2. solve sequentially

Это даёт два плюса:

  • можно проверить качество декомпозиции до выполнения;
  • можно логировать и валидировать каждый шаг отдельно.

Частые ошибки

Самая частая ошибка — заставлять модель одновременно и придумывать шаги, и сразу решать задачу длинным потоком. Тогда она легко теряет структуру и начинает импровизировать в середине цепочки.

Ещё три типичных промаха:

  • шаги не упорядочены по зависимости;
  • в один шаг засунуты две разные операции;
  • сложный inferential leap назван "простым шагом", хотя на деле он самый рискованный.

Сравнение с соседними техниками

Least-to-Most
Лучше там, где решение строится как цепочка зависимых промежуточных результатов
Plan-and-Solve
Лучше там, где важен общий план, но шаги не обязательно образуют строгую лестницу зависимости
Least-to-Most
Последовательная зависимая декомпозиция
Branch-Solve-Merge
Параллельная декомпозиция на независимые ветки
Least-to-Most
Одна линейная цепочка подзадач
DECOMP
Модульная система обработчиков и маршрутизации по типам задач

Техническая реализация

Минимальный паттерн

def least_to_most(task, decompose_fn, solve_fn):
    subtasks = decompose_fn(task)
    solved = []

    for subtask in subtasks:
        answer = solve_fn(
            task=task,
            subtask=subtask,
            previous_steps=solved,
        )
        solved.append({"subtask": subtask, "answer": answer})

    return solved[-1]["answer"], solved

Что полезно валидировать

Перед выполнением цепочки полезно проверить:

  • не слишком ли много шагов;
  • действительно ли шаги образуют dependency chain;
  • нет ли дублирующих подзадач;
  • можно ли нормализовать output каждого шага.

Когда нужен app-side orchestration

Если задача high-stakes, не стоит полагаться на один long response. Лучше:

  • хранить подзадачи как отдельные объекты;
  • запускать каждую подзадачу отдельным вызовом;
  • писать промежуточные ответы в trace;
  • валидировать вычисления и extraction кодом там, где это возможно.

Practical routing idea

Хороший production routing выглядит так:

  • direct answer для простых задач;
  • Plan-and-Solve для умеренно сложных;
  • Least-to-Most для зависимых многошаговых задач;
  • BSM для независимых критериев;
  • DECOMP для сложного orchestration с разными skill lanes.

Проверяйте не только финальный ответ

Если downstream cost ошибки высок:

  • логируйте все промежуточные шаги;
  • считайте число шагов;
  • отмечайте шаг, на котором появилась первая несогласованность;
  • добавляйте selective verification на ранние критичные стадии.

Проверьте себя

Проверьте себя

1. Когда Least-to-Most обычно полезнее обычного CoT?

2. Что лучше выбрать для независимых критериев вроде code review по отдельным осям?

3. Главная operational ошибка при Least-to-Most?