Branch-Solve-Merge

[object Object]

Branch-Solve-Merge, или BSM, — это техника, при которой задача разбивается на независимые ветки, каждая ветка решается отдельно, а потом результаты объединяются в один итог. В 2026 её удобно воспринимать как parallel multi-aspect evaluation pattern: она особенно полезна там, где один большой ответ должен учитывать несколько осей качества или несколько независимых критериев.

Если задачу можно разделить на независимые части, не обязательно решать всё последовательно. Можно отдельно обработать каждую часть и потом собрать результат. В этом и смысл BSM.

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

BSM особенно полезен, когда:

  • критерии независимы;
  • нужен multi-aspect review;
  • удобно параллелить работу;
  • один общий prompt слишком размывает фокус.

Частые сценарии:

  • code review;
  • article review;
  • vendor comparison;
  • due diligence;
  • multi-criteria scoring;
  • synthesis из нескольких исследовательских веток.
ПромптClaude Sonnet 4.6
Используй Branch-Solve-Merge.

Задача: оцени лендинг B2B SaaS-продукта по 4 независимым аспектам: позиционирование, доверие, UX ясность, SEO базового уровня. Сначала оцени каждый аспект отдельно, потом собери единый вердикт.
Ответ модели

Branch 1 — Позиционирование: 7/10. Ценность понятна, но ICP обозначен расплывчато. Branch 2 — Доверие: 5/10. Есть logos, но мало proof points и кейсов. Branch 3 — UX ясность: 8/10. CTA и структура понятны. Branch 4 — SEO: 6/10. Заголовки читаемы, но недоработаны semantic keywords.

Merged verdict: лендинг уже читаемый и конверсионно вменяемый, но сильнее всего проседает trust layer; главный приоритет — добавить кейсы, конкретные outcomes и усилить ICP framing.

Что отличает BSM от других decomposition-подходов

BSM не про общий план и не про зависимую лестницу шагов. Он про independent branches.

Если задача разбивается на аспекты, которые:

  • можно анализировать отдельно;
  • не требуют жёсткой последовательности;
  • потом надо привести к единому выводу,

то BSM обычно оказывается естественнее и качественнее, чем один длинный ответ.

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

Плюсы

  • Позволяет глубже проработать каждый критерий отдельно
  • Хорошо сочетается с параллельным execution
  • Снижает размывание фокуса в одном большом prompt
  • Даёт хорошие traces для review и debugging

Минусы

  • Плохо подходит для зависимых шагов
  • Требует хорошего merge, иначе итог несогласован
  • Может дублировать анализ между ветками
  • Увеличивает число вызовов и стоимость

Лучшие прикладные кейсы

BSM особенно практичен для:

  • code review по отдельным осям: correctness, security, performance, maintainability;
  • контент-аудита по quality, clarity, SEO, audience fit;
  • product/competitor comparison по pricing, UX, integrations, governance;
  • screening кандидатов или vendor proposals по rubric criteria;
  • аналитических мемо, где сначала идут независимые lenses, потом executive synthesis.

Когда технику лучше не брать

BSM не стоит использовать, если:

  • шаги зависят друг от друга;
  • данные для веток сильно пересекаются, а split искусственный;
  • нужен один план действий, а не разбор по осям;
  • merge не может надёжно разрешать конфликты между ветками.

В этих случаях лучше подходят:

  • Least-to-Most;
  • Plan-and-Solve;
  • DECOMP.

Ключевая сложность — merge

Большинство проблем BSM происходят не в branch и не в solve, а в merge.

Плохой merge:

  • просто склеивает outputs;
  • не разрешает противоречия;
  • не расставляет приоритеты;
  • не даёт decision или ranked recommendation.

Хороший merge:

  • нормализует шкалы и оценки;
  • выделяет главное;
  • разрешает конфликты между ветками;
  • возвращает ясный итог для downstream use.
Если ветки отдают scores, хорошо сначала нормализовать их в структуру, а уже потом просить итоговый synthesis. Это даёт merge-модели гораздо более устойчивый вход.

Практический workflow

Как выбрать хорошие branches

Хороший branch set обычно:

  • покрывает разные decision dimensions;
  • минимально пересекается по смыслу;
  • даёт outputs одного уровня детализации;
  • позволяет человеку быстро понять, почему итог получился именно таким.

Плохой branch set выглядит так:

  • одна ветка про strategy, другая про опечатки, третья про всё остальное;
  • критерии дублируются между ветками;
  • часть веток требует tools, часть просто болтает свободным текстом без rubric;
  • merge потом вынужден нормализовать несопоставимые куски.

Практически полезно сначала сформулировать один общий rubric, а уже потом разложить его по веткам. Тогда branching остаётся управляемым и не превращается в случайный набор prompt-ролей.

Чем BSM полезен в production

Он даёт очень удобные traces:

  • видно, какая ветка привела к плохому итогу;
  • можно selectively rerun only one branch;
  • легко добавлять новые аспекты без переписывания всей системы;
  • удобно делать human review only for risky branches.

Это делает BSM не просто prompt-техникой, а удобным evaluation workflow pattern.

Что измерять

Для BSM особенно полезны:

  • branch disagreement rate;
  • merge defect rate;
  • доля случаев, где rerun одной ветки меняет финальный verdict;
  • latency per branch;
  • human agreement on final merge.

Если система стабильно ошибается в одной и той же ветке, это уже не проблема всей техники, а локальный дефект конкретного branch handler или rubric.

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

Branch-Solve-Merge
Независимые ветки, которые можно решать параллельно
Least-to-Most
Последовательная зависимая лестница шагов
Branch-Solve-Merge
Часто ветки одного уровня и одного формата
DECOMP
Модули могут быть разных типов и включать сложную маршрутизацию
Branch-Solve-Merge
Разные аспекты одной задачи
Multi-Agent Debate
Несколько агентов спорят о той же задаче или решении

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

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

Ещё часто ломают BSM так:

  • веток слишком много;
  • ветки пересекаются по смыслу;
  • merge не знает, как решать конфликты;
  • в каждой ветке используется слишком свободный output без rubric.

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

Базовый паттерн

import asyncio


async def branch_solve_merge(task, branches, solve_fn, merge_fn):
    branch_outputs = await asyncio.gather(
        *[solve_fn(task=task, branch=branch) for branch in branches]
    )

    final = await merge_fn(task=task, branch_outputs=branch_outputs)
    return {"branches": branch_outputs, "final": final}

Когда BSM особенно хорош технически

Он очень хорошо ложится на:

  • async execution;
  • queue-based workflows;
  • rubric scoring;
  • evaluator pipelines;
  • judge systems, где разные branches проверяют разные dimensions.

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

  • branch definition;
  • branch latency;
  • branch score/confidence;
  • disagreement between branches;
  • merge rationale;
  • final recommendation.

Хорошая branch taxonomy для code review

  • correctness
  • security
  • performance
  • maintainability
  • test quality

Именно такая структура обычно даёт больший signal, чем один общий "сделай code review".

Когда нужен second-pass merge

Иногда merge itself стоит проверять отдельно, если:

  • branch outputs конфликтуют;
  • итог идёт в executive decision;
  • ошибки дорогие;
  • система генерирует ranked recommendation, а не просто summary.

Тогда полезен ещё один lightweight verification step поверх merge.

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

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

1. Когда BSM обычно подходит лучше всего?

2. Какое слабое место у BSM чаще всего самое критичное?

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