


Три воркфлоу-паттерна для ИИ-агентов: когда какой использовать
ИИ-агенты принимают решения самостоятельно, а воркфлоу задают этим решениям структуру. Они выстраивают порядок действий, который направляет возможности агентов на сложные задачи, где нужна координация шагов, предсказуемый результат и выверенная последовательность.
Когда над задачей работают несколько агентов, главный вопрос — какой паттерн подойдет для вашей проблемы.
Команда Anthropic работала с десятками команд, которые строят ИИ-агентов, и в продакшене три паттерна покрывают подавляющее большинство задач: последовательный, параллельный и оценщик-оптимизатор.
Каждый из них решает свой тип проблем, и если выбрать не тот паттерн, вы заплатите за это задержками, лишними токенами или ненадежностью. В этой статье разберем все три паттерна: когда какой подходит и как их комбинировать.
Как воркфлоу и агенты работают вместе
Если вы когда-нибудь управляли командой, вы уже понимаете суть воркфлоу.
Представьте сборочную линию на производстве. На каждой станции стоит специалист, который сам принимает решения по своему участку работы. Но общий поток спроектирован заранее, даже если отдельные шаги включают динамические решения вроде маршрутизации или повторных попыток.
Агентные воркфлоу работают по тому же принципу.
Воркфлоу не заменяют автономность агентов, а задают рамки, в которых эта автономность проявляется.
Полностью автономный агент решает все сам: какие инструменты использовать, в каком порядке выполнять задачи и когда остановиться.
Воркфлоу добавляет структуру: задает общий поток, расставляет контрольные точки и определяет границы для каждого шага. При этом внутри этих границ агент по-прежнему может действовать динамически.
Каждый шаг воркфлоу все еще использует способность агента рассуждать и работать с инструментами, но общая оркестрация следует заданному пути. Воркфлоу-паттерн дает вам интеллект агента внутри каждого шага и предсказуемый процесс на уровне всей задачи.
Паттерны агентных воркфлоу
В продакшене чаще всего встречаются три паттерна. Стоит думать о них как о строительных блоках, а не жестких шаблонах — по мере роста требований вы будете их комбинировать и вкладывать друг в друга.
Первый — последовательный воркфлоу. Он нужен, когда задачи нужно выполнять в фиксированном порядке.
Второй — параллельный воркфлоу. Он нужен, когда независимые задачи можно распределить между агентами и выполнять одновременно.
Третий — оценщик-оптимизатор. Он нужен, когда результат требует итеративной доработки.
У каждого паттерна свои задачи и свои компромиссы по сложности, стоимости и производительности.
| Паттерн | Какую проблему решает | Когда использовать | Компромисс | Выгода |
| Последовательный | Задачи зависят друг от друга: шаг Б требует результат шага А | Многоэтапные процессы, пайплайны обработки данных, циклы «черновик — ревью — финал» | Увеличивает задержку, потому что каждый шаг ждет завершения предыдущего | Может повысить точность, потому что каждый агент фокусируется на одной задаче |
| Параллельный | Задачи независимы, но выполнять их по очереди слишком долго | Оценка по нескольким измерениям, код-ревью, анализ документов | Стоит дороже из-за параллельных API-вызовов и требует стратегии агрегации | Может ускорить выполнение и разделить зоны ответственности между командами |
| Оценщик-оптимизатор | Качество первого черновика недостаточно | Техническая документация, коммуникации с клиентами, генерация кода по стандартам | Умножает расход токенов и добавляет время на итерации | Может давать лучшие результаты через структурированные циклы обратной связи |
Начинать стоит с самого простого паттерна, который решает вашу задачу. По умолчанию лучше выбрать последовательный. К параллельному стоит переходить, когда задержка становится узким местом и задачи не зависят друг от друга. Оценщик-оптимизатор стоит добавлять только тогда, когда вы можете измерить улучшение качества.
Последовательный воркфлоу
Последовательный воркфлоу выполняет задачи в заранее определенном порядке.
Агенты на каждом этапе обрабатывают входные данные, принимают решения, вызывают нужные инструменты и передают результат на следующий этап. Получается четкая цепочка операций, в которой результаты проходят через систему линейно.

Когда использовать. Последовательные воркфлоу хорошо работают, когда задача естественно разбивается на отдельные этапы с четкими зависимостями. Вы жертвуете некоторой скоростью ради более высокой точности, потому что каждый агент фокусируется на конкретной подзадаче вместо того, чтобы пытаться справиться со всем сразу.
Последовательный воркфлоу подойдет для многоэтапных процессов, где каждый шаг зависит от результата предыдущего. Он хорошо работает в пайплайнах трансформации данных, где каждый этап добавляет конкретную ценность. Также он подходит для задач, которые нельзя распараллелить из-за внутренних зависимостей, и для итеративных циклов улучшения вроде «черновик — ревью — финал».
Когда не использовать. Последовательный воркфлоу не нужен, если один агент справляется со всей задачей, или если агентам нужно взаимодействовать друг с другом, а не просто передавать работу по цепочке. Если вы заставляете задачу влезть в последовательные шаги, хотя она к этому не располагает, вы добавляете сложность без пользы.
Примеры. Последовательные воркфлоу хорошо подходят для задач, где каждый шаг — это по-настоящему разная работа. Например, можно сначала сгенерировать маркетинговый текст, а потом перевести его на несколько языков. Или можно извлечь данные из документов, валидировать их по схеме и загрузить в базу данных. Пайплайны модерации контента тоже хорошо ложатся на последовательный паттерн: извлечь контент, классифицировать его, применить правила модерации и направить по нужному маршруту.
Практический совет. Сначала стоит попробовать весь пайплайн как одного агента, где шаги — просто часть промпта. Если результат достаточно хорош, вы решили задачу без лишней сложности. Разбивать на многошаговый воркфлоу стоит только тогда, когда один агент не справляется надежно.
Параллельный воркфлоу
Параллельный воркфлоу распределяет независимые задачи между несколькими агентами, которые работают одновременно. Вместо того чтобы ждать, пока один агент закончит, прежде чем запускать следующего, вы запускаете несколько агентов сразу и объединяете их результаты.
Этот паттерн может заметно ускорить работу, когда задачи не зависят друг от друга.
По подходу он напоминает паттерн fan-out/fan-in из распределенных систем. Вы отправляете одну и ту же или связанную работу нескольким агентам, каждый обрабатывает ее независимо, а затем вы агрегируете или синтезируете их результаты. Агенты не передают работу друг другу — они действуют автономно и каждый вносит свой вклад в общую задачу.

Когда использовать. Параллельный воркфлоу имеет смысл, когда работу можно разделить на независимые подзадачи, которые выигрывают от одновременной обработки, или когда нужно получить несколько точек зрения на одну проблему. Этот паттерн также дает разделение зон ответственности: разные инженеры могут владеть отдельными агентами и оптимизировать их независимо, не мешая друг другу. Для сложных задач обработка каждого аспекта отдельным вызовом часто дает лучшие результаты, чем попытка уместить все в один вызов.
Параллельный воркфлоу стоит рассмотреть, когда разные агенты отвечают за разные аспекты задачи — например, один обрабатывает запросы, а другой проверяет их на безопасность. Он также хорошо подходит для сценариев оценки, где каждый агент оценивает результат по своему измерению качества. Еще один вариант — паттерн голосования, когда несколько агентов анализируют один и тот же контент, а вы агрегируете их оценки.
Когда не использовать. Параллельный воркфлоу не подойдет, если агентам нужен накопленный контекст или они должны строить работу на результатах друг друга. Его также лучше не использовать, когда ограничения ресурсов вроде квот на API делают параллельную обработку неэффективной, или когда у вас нет четкой стратегии для обработки противоречивых результатов от разных агентов. Если агрегация результатов становится слишком сложной или ухудшает качество, параллельный воркфлоу того не стоит.
Примеры. Параллельные воркфлоу хорошо работают для автоматизации оценок, когда каждый агент проверяет свои метрики качества. Код-ревью тоже хорошо ложится на этот паттерн: несколько агентов могут одновременно проверять разные категории уязвимостей. Анализ документов — еще один сильный кейс: можно параллельно извлекать ключевые темы, анализировать тональность и проверять факты, а затем объединить выводы.
Практический совет. Стратегию агрегации стоит продумать до того, как вы начнете реализовывать параллельных агентов. Будете ли вы брать результат большинства? Усреднять оценки уверенности? Доверять самому специализированному агенту? Четкий план синтеза результатов не даст вам оказаться в ситуации, когда агенты выдали противоречивые результаты, а способа их разрешить нет.
Оценщик-оптимизатор
Паттерн оценщик-оптимизатор объединяет двух агентов в итеративном цикле: один генерирует контент, другой оценивает его по конкретным критериям, и генератор дорабатывает результат на основе этой обратной связи. Цикл продолжается, пока результат не достигнет нужного порога качества или не будет исчерпан лимит итераций.
Ключевая идея в том, что генерация и оценка — это разные когнитивные задачи. Если их разделить, каждый агент может специализироваться: генератор фокусируется на производстве контента, оценщик — на последовательном применении критериев качества.

Когда использовать. Этот паттерн работает, когда у вас есть четкие, измеримые критерии качества, которые ИИ-оценщик может применять последовательно, и когда разрыв между первой попыткой и финальным качеством достаточно значителен, чтобы оправдать дополнительные токены и задержку.
Оценщик-оптимизатор стоит рассмотреть для генерации кода с конкретными требованиями — стандартами безопасности, бенчмарками производительности, гайдлайнами стиля. Он также подходит для профессиональных коммуникаций, где важны тон и точность формулировок. В целом этот паттерн полезен в любом сценарии, где качество первого черновика стабильно не дотягивает до требований.
Когда не использовать. Оценщик-оптимизатор не нужен, если качество первой попытки уже соответствует вашим требованиям — в этом случае вы просто тратите токены на ненужные итерации. Этот паттерн также не подходит для приложений реального времени, где нужен мгновенный ответ, для простых рутинных задач вроде базовой классификации и для случаев, когда критерии оценки слишком субъективны, чтобы ИИ-оценщик мог их последовательно применять. Если для задачи существуют детерминистические инструменты — например, линтеры для стиля кода — лучше использовать их. Также этот паттерн лучше пропустить, когда ограничения ресурсов перевешивают улучшение качества.
Примеры. Оценщик-оптимизатор хорошо подходит для генерации API-документации: генератор пишет документацию, оценщик проверяет ее на полноту, ясность и точность относительно кодовой базы. Для создания клиентских коммуникаций: генератор готовит письмо, оценщик проверяет тон и соответствие политикам. Для генерации SQL-запросов: генератор пишет запрос, оценщик проверяет его на эффективность и безопасность.
Практический совет. Критерии остановки стоит определить до того, как вы начнете итерации. Нужно задать максимальное количество итераций и конкретные пороги качества. Без этих ограничений можно попасть в дорогой цикл, где оценщик продолжает находить мелкие замечания, а генератор продолжает править, но качество выходит на плато задолго до остановки. Важно понимать, когда «достаточно хорошо» — это действительно достаточно.
Как выбрать нужный паттерн
Выбор воркфлоу-паттерна зависит от структуры задачи, требований к качеству и ограничений по ресурсам.
Прежде чем выбирать паттерн, стоит попробовать решить задачу одним вызовом агента. Если результат соответствует вашим требованиям, задача решена. Если нет, нужно определить, в чем именно результат не дотягивает — это подскажет, к какому паттерну обратиться.
Вот несколько вопросов, которые помогут определиться. Справляется ли один агент с задачей? Если да, воркфлоу не нужен. Есть ли в задаче четкие последовательные зависимости? Тогда подойдет последовательный воркфлоу. Можно ли обрабатывать подзадачи независимо и одновременно, и поможет ли это ускорить работу? Тогда стоит рассмотреть параллельный воркфлоу. Улучшается ли качество заметно при итеративной доработке? Тогда стоит рассмотреть оценщик-оптимизатор.
После выбора паттерна стоит продумать несколько вещей. Во-первых, обработку ошибок: нужно определить поведение при сбоях и логику повторных попыток для каждого шага. Во-вторых, ограничения по задержке и стоимости: они определяют, сколько агентов вы можете запустить и сколько итераций можете себе позволить. В-третьих, измерение улучшений: стоит зафиксировать базовый результат одного агента, чтобы понимать, действительно ли воркфлоу помогает.
Эти паттерны не исключают друг друга — их можно вкладывать друг в друга по мере роста сложности. Например, воркфлоу оценщик-оптимизатор может использовать параллельную оценку, когда несколько оценщиков одновременно проверяют разные измерения качества. Или последовательный воркфлоу может включать параллельную обработку на определенных этапах, где несколько независимых операций выполняются перед переходом к следующему шагу.
Главное — соразмерять сложность паттерна с реальными требованиями. Не стоит добавлять параллельную обработку просто потому, что можно — ее стоит добавлять, когда параллельное выполнение дает конкретные преимущества. Не стоит внедрять цикл оценщик-оптимизатор, если вы не можете измерить, насколько он улучшает результат.
Развивайте воркфлоу осознанно
Лучший совет: начинать стоит с самого простого паттерна, который работает. Если последовательный воркфлоу справляется с вашей задачей, не нужно добавлять параллельную обработку. Если качество первой попытки достаточно, не нужно внедрять цикл оценщик-оптимизатор.
Эти три паттерна дают понятные пути для усложнения, когда требования меняются. Последовательный воркфлоу можно дополнить параллельной обработкой на узких этапах. Агентный подход можно усилить оценкой, когда стандарты качества ужесточаются. А поскольку паттерны модульные, полностью переписывать систему не придется.
Подробные примеры реализации и продвинутые паттерны, включая гибридные подходы, можно найти в полном документе Anthropic: Building effective AI agents: architecture patterns and implementation frameworks.
