В предыдущих главах мы рассмотрели цепочки подсказок (Prompt Chaining) для последовательных рабочих процессов и маршрутизацию (Routing) для динамического принятия решений и переходов между различными путями. Хотя эти шаблоны необходимы, многие сложные агентные задачи включают несколько подзадач, которые можно выполнять одновременно, а не друг за другом. Именно здесь критически важным становится шаблон Parallelization.
Параллелизация предполагает одновременное выполнение нескольких компонентов — вызовов LLM, обращений к инструментам или даже работы целых суб-агентов (см. рис. 1). Вместо того чтобы ждать завершения одного шага перед началом следующего, параллельное выполнение позволяет независимым задачам работать одновременно, что значительно сокращает общее время исполнения для задач, которые можно разделить на независимые части.
Рассмотрим агента, предназначенного для исследования темы и подготовки краткого обзора.
Ключевая идея заключается в том, чтобы выделить части рабочего процесса, которые не зависят от результатов других частей, и выполнять их параллельно. Это особенно эффективно при работе с внешними сервисами (например, API или базами данных), которые имеют задержки: можно отправить несколько запросов одновременно.
Реализация параллелизации часто требует фреймворков, поддерживающих асинхронное выполнение или многопоточность/многопроцессность. Современные агентные фреймворки изначально спроектированы с учётом асинхронных операций, что позволяет легко определять шаги, которые могут выполняться параллельно.

Рис. 1. Пример параллелизации с суб-агентами