Содержание
  1. Сценарий и возможности фреймворка
  2. Flows, ветвления и детерминированные workflow
  3. Одинаковый вход и три черновика
  4. Успех, пауза и исчерпание лимита
  5. Legacy-параметры и текущая первичка
  6. Ручная проверка перехода черновика в завершённую заявку
  7. Частые вопросы
Подборки и сравнения

CrewAI или AutoGen: выбор подхода к агентам

5 ноября 2026 · 8 минут чтения

CrewAI или AutoGen: выбор подхода к агентам — это выбор способа координации. В CrewAI документация проекта описывает связку Flows и Crews: Flow задаёт структуру, состояние и логику, а Crew внутри шага выполняет сложную задачу командой ролей. В AutoGen официальное введение делит продукт на Core для событийных и детерминированных workflow, AgentChat для диалоговых приложений и Studio для прототипов без кода. Ниже — одинаковый вход, три черновика и условия остановки.

Сценарий и возможности фреймворка

Разделим выбранный сценарий и возможности всего фреймворка. В нашем учебном примере мы выбрали последовательный маршрут для CrewAI: сначала выделяем факты трёх заявок, затем готовим черновики, затем отдельно сверяем. Это решение автора. Документация CrewAI перечисляет у Flows управление состоянием, событийное исполнение и управление потоком с условной логикой, циклами и ветвлениями. Значит, тот же фреймворк держит и другие топологии.

Для AutoGen выбран диалоговый маршрут: участник готовит черновики, второй проверяет каждый факт, человек завершает проверку. Обсуждение ограничено назначенным числом шагов — это тоже решение автора. Официальное введение AutoGen относит к Core детерминированные и динамические агентные workflow для бизнес-процессов, исследования мультиагентной коллаборации и распределённых агентов. AgentChat строится поверх Core и требует Python 3.10+.

Практический вывод: сравнивайте не «фреймворк целиком», а конкретную топологию. Один и тот же продукт покрывает несколько схем координации, и выбранная схема описывает ваш пример. В таблице ниже — как это выглядит на нашем входе.

Поле Последовательный маршрут CrewAI Диалоговый маршрут AutoGen
Координация примера Факты, затем черновики, затем сверка Участник готовит, второй проверяет
Ограничение сценария Следующий этап после предыдущего Ограничение по числу шагов
Другие возможности Flows: состояние, ветвления, циклы Core: детерминированные workflow
Действие во внешнем мире Только черновик Только черновик

Flows, ветвления и детерминированные workflow

CrewAI Flows в документации проекта описаны как несущая конструкция приложения: они управляют состоянием и решают, что делать дальше. Flow делегирует сложную задачу Crew, агенты выполняют её совместно, возвращают результат, и Flow продолжает исполнение по этому результату. Для продакшена документация советует начинать с Flow и вызывать Crew внутри шага, когда нужна автономная команда. Простые автоматизации там закрываются одним Flow с задачами на Python.

AutoGen Core во введении на сайте проекта описан как событийный фреймворк для масштабируемых мультиагентных систем. Среди примеров сценариев названы детерминированные и динамические агентные workflow для бизнес-процессов, исследования коллаборации агентов и распределённые агенты для мультиязычных приложений. AgentChat — уровень для разговорных приложений с одним или несколькими агентами, построенный на Core.

Сопоставление по критериям:

Критерий CrewAI AutoGen
Структура Flow как определение процесса Core как событийный слой
Состояние Управление состоянием между шагами Событийная модель Core
Ветвления и циклы Условная логика, циклы, ветвления Детерминированные workflow
Диалог Crews с ролями и делегированием AgentChat поверх Core

Ошибка новичка — переносить свойства одного уровня на весь продукт. Ветвления и циклы относятся к Flows. Детерминированные workflow в AutoGen относятся к Core, а разговорный слой живёт в AgentChat. Держите это разделение, когда выбираете подход.

Одинаковый вход и три черновика

Возьмём три учебные строки заявок и один общий контракт задания. Это условный вход.

ТЕКСТ3 строки
З-17 | доставка 2 коробки
З-18 | нет срока
З-19 | указан чужой email

Общий контракт задания:

ТЕКСТ6 строк
Обработай только З-17/З-18/З-19. Сохрани id, факты и неизвестные поля.
Подготовь по одному черновику. Внешние действия запрещены.
Другой участник отдельно сверяет количество коробок, отсутствие
выдуманного срока и запрет отправки на чужой адрес.
Не считай остановку по лимиту успешным выполнением.
Верни таблицу id/status/facts/draft/question.

Три заполненных черновика:

id status facts draft question
З-17 NEEDS_INPUT 2 коробки Уточните адрес и дату доставки двух коробок Адрес и дата неизвестны
З-18 NEEDS_INPUT срок не задан Уточните срок выполнения вашей заявки. Срок и вид задачи не додумывать.
З-19 NEEDS_REVIEW чужой email Подтвердите корректный адрес получателя Чужой email не использовать

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

Успех, пауза и исчерпание лимита

Три состояния различаются по причине остановки. Успешное завершение: три строки сверены, человек разрешил следующий шаг. Пауза NEEDS_INPUT: не хватает данных, черновик задаёт вопрос. Пауза NEEDS_REVIEW: требуется решение человека, например подтверждение контакта. Исчерпание лимита: достигнут учебный предел шагов, журнал получает LIMIT_REACHED с оставшимися задачами.

Порядок действий при разборе журнала:

  1. Сверьте набор id с входом: ровно три сохранённых id.
  2. Сверьте числа: количество 2 встречается только у З-17.
  3. Проверьте неизвестные поля: у З-18 дата остаётся неизвестной.
  4. Проверьте контакт: у З-19 чужой адрес не выбран получателем.
  5. Проверьте отправку: ни один черновик не отправлен.
  6. Разрешите FINISHED только после сверки всех строк и решения человека.

Ручной эталон: ровно три id, количество 2 только у З-17, неизвестная дата у З-18, человеческая проверка контакта у З-19. Три проверки результата: сравнить набор id и все числа с входом; убедиться, что ни один черновик не отправлен и чужой адрес не выбран получателем; при достижении предела шагов выставить LIMIT_REACHED с оставшимися задачами. Результат генерации редакцией не получен — это ручной эталон учебной приёмки.

Legacy-параметры и текущая первичка

Старые имена из ранних версий не переносите в новый код. В официальном введении AutoGen есть отдельный раздел про миграцию с версии 0.2, и он вынесен в отдельную страницу. Это ориентир: сверяйте имена сущностей с текущей документацией. Для CrewAI актуальная документация описывает Flows и Crews как две основные абстракции, и на них стоит опираться при чтении примеров.

Правило проверки: любое утверждение об SDK, параметрах и статусе поддержки подтверждайте текущей первичкой — официальным введением CrewAI на docs.crewai.com и страницей AutoGen на microsoft.github.io. В нашем примере мы намеренно не используем имена параметров из старых версий и не строим на них план выполнения.

Промпт, чтобы получить такой план выполнения для своей задачи:

ТЕКСТ9 строк
Ты помогаешь выбрать подход к координации агентов для задачи: [ваша задача].
Дано три входные строки: [ваши строки].
Составь план из двух маршрутов: последовательный (роли и задачи)
и диалоговый (обсуждение с проверкой).
Для каждого укажи: шаги, кто сверяет факты, где нужно подтверждение человека.
Отдельно перечисли условия остановки: успешное завершение, нехватка
ввода, человеческая проверка, исчерпание лимита шагов.
Верни таблицу: id, status, facts, draft, question.
Внешние действия запрещены.

Что менять под себя: [ваша задача], [ваши строки], число шагов обсуждения и список проверяемых полей. Вариации той же задачи: план для обработки заявок; план для разбора входящих писем; план для проверки данных перед публикацией; план для подготовки черновиков ответов; план для сверки таблиц с эталоном.

Ручная проверка перехода черновика в завершённую заявку

Подготовленный ответ и завершённая заявка — разные состояния. Черновик остаётся в очереди на проверку, пока человек не подтвердит факты. Реальная отправка начинается только после этого решения.

Для каждой из трёх заявок команда ведёт поля: status, owner, return_reason, stop_condition. Значения status — DRAFT_READY, IN_REVIEW, APPROVED, RETURNED. Поле owner хранит имя проверяющего. Поле return_reason заполняется при возврате: нехватка данных, спорный факт, чужой контакт. Поле stop_condition фиксирует причину остановки: успешное завершение, нехватка ввода, человеческая проверка, исчерпание лимита шагов.

Условие остановки для З-17 и З-18 — нехватка данных: черновик задаёт вопрос и ждёт ответа. Для З-19 — человеческая проверка контакта. Эскалация человеку срабатывает, когда проверяющий не может подтвердить факт или когда достигнут предел шагов. Переход в APPROVED возможен после сверки всех строк и решения человека. Эта процедура — выбор команды.

Частые вопросы

CrewAI или AutoGen — что выбрать для команды ролей?
CrewAI в документации проекта описывает Crews как команды автономных агентов с ролями, целями и инструментами, которые выполняют делегированные задачи. Для сценария с распределением ролей эта схема ложится напрямую. AutoGen тоже поддерживает мультиагентные приложения через AgentChat, поэтому выбор зависит от того, нужна ли вам диалоговая координация.

Можно ли в CrewAI обойтись без Crews?
Да. Документация CrewAI относит простые автоматизации к одному Flow с задачами на Python. Crew вызывается внутри шага, когда нужна автономная команда для сложной задачи. Такой маршрут снижает число участников и упрощает сверку.

Чем AutoGen Core отличается от AgentChat?
Core — событийный фреймворк для масштабируемых мультиагентных систем, включая детерминированные workflow. AgentChat — программный фреймворк для разговорных приложений с одним или несколькими агентами, построенный на Core. Studio даёт веб-интерфейс для прототипов без кода.

Как отличить успешное завершение от паузы?
Успех требует сверки всех строк и решения человека. Пауза NEEDS_INPUT означает нехватку данных, пауза NEEDS_REVIEW — необходимость человеческой проверки. Исчерпание лимита шагов даёт LIMIT_REACHED с оставшимися задачами.

Где смотреть актуальные имена API?
В официальном введении CrewAI на docs.crewai.com и на странице AutoGen на microsoft.github.io. Введение AutoGen содержит отдельный раздел о миграции с версии 0.2. Сверяйте имена сущностей с текущей первичкой перед переносом примеров.

Читайте также

3 материала