Один состав — два способа работы

Те же агенты могут работать по-разному. Представь редакцию: можно пустить материал по конвейеру (репортёр → редактор → корректор, каждый передаёт дальше), а можно посадить главреда, который раздаёт задания и решает, что делать в каком порядке. Состав один, организация разная — и результат, скорость, предсказуемость тоже разные.

Ровно этот выбор делает параметр process у Crew. Он не меняет агентов и задачи — он меняет как они координируются. И это не просто настройка: за двумя значениями стоят два фундаментальных паттерна мультиагентных систем, которые мы ещё разберём отдельно в разделе про координацию.

100%
колёсико — масштаб  ·  зажать и тянуть — перемещение
Sequential · конвейер analyst writer critic итог задачи по очереди · результат → следующему · порядок фиксирован Hierarchical · менеджер manager (LLM) раздаёт задачи, координирует analyst writer critic менеджер решает, кому что и когда

Sequential — конвейер

Process.sequential — то, что мы уже собирали: задачи выполняются в порядке списка, результат каждой передаётся следующей (через context). Это детерминированный конвейер: маршрут известен заранее, поведение предсказуемо, отладка проста.

Sequential: задачи строго по очереди
python
from crewai import Crew, Process

crew = Crew(
    agents=[analyst, writer, critic],
    tasks=[research, draft, review],     # ← выполнятся именно в этом порядке
    process=Process.sequential,
)
result = crew.kickoff(inputs={"topic": "..."})
# research → draft → review, результат каждой питает следующую

Sequential — это Pipeline из будущего урока про координацию: жёсткая, понятная цепочка. Большинство задач отлично ложатся именно на него — начинай с sequential по умолчанию.

Hierarchical — менеджер

Process.hierarchical добавляет агента-менеджера. Ты больше не прописываешь жёсткий порядок — менеджер сам, через LLM, решает, какому исполнителю что поручить, в каком порядке и нужно ли повторить шаг. Задачам можно даже не назначать конкретного агента — менеджер подберёт подходящего по ролям.

Hierarchical: менеджер раздаёт работу
python
from crewai import Crew, Process
from langchain_openai import ChatOpenAI

crew = Crew(
    agents=[analyst, writer, critic],   # исполнители (без явного назначения задач)
    tasks=[research, draft, review],
    process=Process.hierarchical,
    manager_llm=ChatOpenAI(model="gpt-4o"),   # ОБЯЗАТЕЛЬНО: мозг менеджера
    # либо manager_agent=<свой Agent-менеджер> для тонкой настройки роли
)
result = crew.kickoff(inputs={"topic": "..."})
# менеджер сам решает: кому делегировать, в каком порядке, что переделать

Ключевое отличие в коде — manager_llm (или manager_agent): иерархии нужен «мозг» руководителя, который и принимает решения о делегировании. Это Supervisor из модуля 03, только в декларативной обёртке CrewAI: тот же центральный координатор, что раздаёт задачи специалистам.

⚠️ Менеджеру — сильную модель

Качество иерархической команды держится на менеджере: если он плохо планирует и делегирует, разваливается всё. Ставь в manager_llm модель посильнее (она думает за всю координацию), а исполнителям можно дешевле. Это та же экономия «сильная модель там, где думают», что в Plan-and-Execute из модуля 03.

Чем отличаются на практике

Критерий Sequential Hierarchical
Кто решает порядок ты (список задач) менеджер (LLM) в рантайме
Предсказуемость высокая, детерминированная ниже — зависит от менеджера
Гибкость фиксированный маршрут адаптивный, делегирование
Стоимость ниже (нет менеджера) выше (+вызовы менеджера)
Отладка проще — линейный лог сложнее — решения менеджера
Паттерн Pipeline Supervisor

Когда какой выбирать

Бери Sequential, если
  • порядок шагов известен заранее
  • задачи зависимы линейно (A→B→C)
  • важны предсказуемость, цена, отладка
  • команда небольшая
Бери Hierarchical, если
  • порядок зависит от промежуточных результатов
  • нужно динамически делегировать и переделывать
  • много исполнителей, нужна координация
  • готов платить за гибкость стоимостью/контролем
Начинай с Sequential

Правило из урока «когда НЕ нужны мультиагенты» работает и здесь: бери самое простое, что решает задачу. Sequential предсказуем, дёшев и легко отлаживается — он закрывает большинство сценариев. Переходи на Hierarchical, только когда жёсткого порядка реально не хватает: маршрут зависит от результатов, нужно адаптивное делегирование. Гибкость менеджера — это всегда плата контролем и деньгами.

Типичные ошибки

Ошибка 1: hierarchical без manager_llm

Иерархическому процессу нужен «мозг» менеджера. Без manager_llm (или manager_agent) он не сможет принимать решения о делегировании. Это обязательный параметр для hierarchical.

Ошибка 2: hierarchical там, где хватило бы конвейера

Если порядок известен и линеен, менеджер — лишний слой: дороже, медленнее, менее предсказуемо. Не усложняй без причины — начинай с sequential.

Ошибка 3: слабая модель у менеджера

В hierarchical всё держится на качестве планирования менеджера. Дешёвая модель в manager_llm приведёт к плохому делегированию и развалу команды. Менеджеру — сильную модель.

Ошибка 4: в sequential порядок не отражает зависимости

Sequential идёт строго по списку. Если зависимая задача стоит раньше своей зависимости, она получит пустоту. Порядок задач должен соответствовать реальным зависимостям (и context).

Шпаргалка

Sequential vs Hierarchical — всё в одном месте
python
from crewai import Crew, Process

# SEQUENTIAL — конвейер (= паттерн Pipeline)
#   задачи по порядку списка, результат → следующей
Crew(agents=[...], tasks=[...], process=Process.sequential)

# HIERARCHICAL — менеджер (= паттерн Supervisor)
#   менеджер сам решает, кому/что/когда делегировать
Crew(agents=[...], tasks=[...], process=Process.hierarchical,
     manager_llm=ChatOpenAI(model="gpt-4o"))   # ОБЯЗАТЕЛЬНО

#                Sequential        Hierarchical
#  порядок       ты (список)       менеджер (рантайм)
#  предсказуем.  высокая           ниже
#  гибкость      фиксированная     адаптивная
#  стоимость     ниже              выше (+менеджер)
#  отладка       проще             сложнее

# Правила:
#  • НАЧИНАЙ с sequential (проще/дешевле/предсказуемее)
#  • hierarchical → когда порядок зависит от результатов
#  • менеджеру — СИЛЬНУЮ модель (он думает за координацию)
#  • sequential: порядок задач = реальные зависимости

Практическое задание

Сравни два процесса на одной команде:

Задание: один состав, два процесса

  1. Возьми команду «аналитик → писатель → критик» из прошлого урока. Запусти её с Process.sequential и зафиксируй: порядок, результат, число вызовов/время.
  2. Переключи на Process.hierarchical, добавь manager_llm (сильная модель). Запусти ту же задачу.
  3. Сравни: изменился ли порядок работы? Стал ли результат лучше/хуже? Насколько выросли стоимость и время из-за менеджера?
  4. Поставь менеджеру слабую модель и посмотри, как деградирует координация — это иллюстрация, почему менеджеру нужна сильная модель.
  5. Сформулируй для своей задачи, какой процесс уместнее и почему (опираясь на предсказуемость/гибкость/цену).
  6. Со звёздочкой: придумай задачу, где порядок шагов заранее неизвестен (зависит от промежуточного результата), и покажи, что hierarchical справляется с ней лучше жёсткого конвейера.

Что дальше

Ты умеешь и описывать роли, и выбирать процесс. Дальше — как сделать всё это читаемым и поддерживаемым: CrewAI позволяет выносить агентов и задачи в YAML-конфигурацию, отделяя «что за команда» от кода запуска.