Настройка мульти-агентных систем с CrewAI: роли, задачи, Flows

Мульти-агентные системы на базе LLM — когда несколько AI-агентов взаимодействуют для решения сложных задач. Без чёткой координации они превращаются в хаос: агенты дублируют работу, теряют контекст, генерируют противоречивые результаты. Мы сталкивались с этим на десятках проектов — и CrewAI стал осно

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Мульти-агентные системы на базе LLM — когда несколько AI-агентов взаимодействуют для решения сложных задач. Без чёткой координации они превращаются в хаос: агенты дублируют работу, теряют контекст, генерируют противоречивые результаты. Мы сталкивались с этим на десятках проектов — и CrewAI стал основным инструментом для наведения порядка. За 2 года он показал себя в 50+ интеграциях, сократив время анализа на 70%.

CrewAI — фреймворк с открытым исходным кодом, вводящий понятие «crew» (команды). Каждый агент получает роль, цель и набор инструментов. Задачи делегируются по ролям, а поток выполнения управляется декларативно или иерархически. В отличие от CrewAI (официальный репозиторий), где описываются состояния и переходы, здесь просто говорится: «этот агент ищет данные, этот пишет отчёт, а менеджер проверяет качество».

Какие проблемы решает CrewAI?

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

  • Координация агентов: агенты не мешают друг другу, не дублируют работу, потому что каждый знает свою роль и зависимости.
  • Контекстная память: агенты передают результаты друг другу через context или memory, сохраняя связность рассуждений.
  • Интеграция инструментов: десятки готовых инструментов (SerperDev, ScrapeWebsite, FileWriter) и возможность создать кастомный за пару часов.

Вот как это выглядит на практике: один клиент из финтеха попросил автоматизировать ежеквартальный конкурентный анализ. Ранее это занимало 3 недели силами 2 аналитиков, а с CrewAI — 4 часа автономной работы + 2 часа ревью. Покрытие конкурентов выросло с 5 до 12 компаний, а пропущенных значимых событий стало 0 вместо 2–3 (данные внутреннего отчёта за 2025 год).

Как мы это делаем: стек и код

Используем CrewAI, LangChain для работы с LLM, OpenAI GPT-4o или Claude 3.5 для агентов, и PostgreSQL с pgvector для RAG-памяти. Конфигурация агентов описана в YAML или прямо в Python. Вот базовая структура — определение агентов и задач:

from crewai import Agent, Task, Crew, Process from crewai_tools import SerperDevTool, ScrapeWebsiteTool, FileWriterTool from langchain_openai import ChatOpenAI llm = ChatOpenAI(model="gpt-4o", temperature=0.1) # Определение агентов researcher = Agent( role="Senior Research Analyst", goal="Найти актуальную и точную информацию по заданной теме", backstory="""Ты — аналитик-исследователь с 10-летним опытом. Специализируешься на технологическом секторе. Всегда проверяешь источники и указываешь на противоречия.""", tools=[SerperDevTool(), ScrapeWebsiteTool()], llm=llm, verbose=True, max_iter=5, # Максимум итераций агента memory=True, ) writer = Agent( role="Content Strategist", goal="Создать структурированный аналитический отчёт", backstory="Опытный технический автор, специализирующийся на бизнес-аналитике.", tools=[FileWriterTool()], llm=llm, verbose=True, ) # Определение задач research_task = Task( description="""Исследуй рынок {topic} за текущий год. Охвати: ключевых игроков, объём рынка, тренды, прогнозы. Найди минимум 5 актуальных источников.""", expected_output="Структурированные данные исследования с источниками", agent=researcher, async_execution=False, ) write_task = Task( description="""На основе предоставленного исследования создай аналитический отчёт. Формат: введение, ключевые находки (таблица), тренды, выводы. Объём: 1500–2000 слов.""", expected_output="Готовый аналитический отчёт в markdown формате", agent=writer, context=[research_task], # Использует вывод research_task как контекст output_file="report.md", ) # Создание команды crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential, # Последовательное выполнение verbose=True, ) result = crew.kickoff(inputs={"topic": "рынок LLM-решений для корпоративного сектора"}) 

Помимо последовательного процесса, CrewAI поддерживает иерархический, где менеджер-LLM координирует работу агентов. Вот пример:

manager_llm = ChatOpenAI(model="gpt-4o", temperature=0) hierarchical_crew = Crew( agents=[researcher, analyst, writer, qa_reviewer], tasks=[research_task, analysis_task, writing_task, review_task], process=Process.hierarchical, manager_llm=manager_llm, # LLM-менеджер принимает решения о делегировании verbose=True, ) 

В иерархическом режиме менеджер автоматически решает, какому агенту делегировать задачу и нужно ли переделать результат.

CrewAI Flows: императивное управление

Для сценариев с ветвлениями и циклами используем Flows — они позволяют описать логику как граф с состояниями:

from crewai.flow.flow import Flow, listen, start, router from pydantic import BaseModel class ContentState(BaseModel): topic: str = "" research_result: str = "" analysis_result: str = "" quality_score: float = 0.0 final_content: str = "" class ContentCreationFlow(Flow[ContentState]): @start() def initialize(self): print(f"Начало работы с темой: {self.state.topic}") @listen(initialize) def run_research(self): research_crew = Crew(agents=[researcher], tasks=[research_task], process=Process.sequential) result = research_crew.kickoff(inputs={"topic": self.state.topic}) self.state.research_result = result.raw @listen(run_research) def run_analysis(self): analysis_crew = Crew(agents=[analyst], tasks=[analysis_task]) result = analysis_crew.kickoff(inputs={"research": self.state.research_result}) self.state.analysis_result = result.raw @router(run_analysis) def check_quality(self): # Оцениваем качество score = evaluate_quality(self.state.analysis_result) self.state.quality_score = score if score >= 0.8: return "write_content" return "improve_analysis" @listen("improve_analysis") def improve_analysis(self): # Повторный анализ с дополнительным контекстом pass @listen("write_content") def write_final_content(self): write_crew = Crew(agents=[writer], tasks=[write_task]) result = write_crew.kickoff(inputs={"analysis": self.state.analysis_result}) self.state.final_content = result.raw flow = ContentCreationFlow() flow.kickoff(inputs={"topic": "Применение AI в логистике"}) 

Кастомные инструменты

Отметим: когда стандартных инструментов не хватает, пишем свои. Например, для доступа к корпоративной БД:

from crewai.tools import BaseTool from pydantic import BaseModel, Field class DatabaseQueryInput(BaseModel): sql_query: str = Field(description="SQL-запрос для выполнения") database: str = Field(description="Имя базы данных", default="analytics") class DatabaseQueryTool(BaseTool): name: str = "query_database" description: str = "Выполнить SQL-запрос к базе данных аналитики" args_schema: type[BaseModel] = DatabaseQueryInput def _run(self, sql_query: str, database: str = "analytics") -> str: # Валидация: только SELECT if not sql_query.strip().upper().startswith("SELECT"): return "Ошибка: разрешены только SELECT-запросы" result = db.execute(sql_query, database=database) return result.to_json() db_tool = DatabaseQueryTool() analyst.tools.append(db_tool) 
Сравнение процессов CrewAI
Процесс Когда использовать Количество агентов Сложность настройки
Sequential Линейные задачи, простые цепочки 2-4 Низкая
Hierarchical Сложные сценарии с менеджером 3-10 Средняя
Flows Ветвления, циклы, условная логика 2-20 Высокая

Что входит в работу

Этап Что делаем Результат
Аналитика Обсуждаем бизнес-задачи, определяем роли агентов и их инструменты Техническое задание на интеграцию
Проектирование Проектируем архитектуру crew: выбор process, настройка memory, инструментов Архитектурная схема
Реализация Пишем код агентов, задач, кастомные инструменты, подключаем LLM Рабочий прототип с 2–3 агентами
Тестирование Прогоняем на реальных данных, оцениваем качество вывода, latency, ошибки Отчёт о тестировании
Деплой Разворачиваем в вашей среде (AWS, GCP, on-prem), настраиваем мониторинг Система в эксплуатации

Как быстро настроить CrewAI: 4 шага

  1. Определите роли агентов (например, исследователь и писатель).
  2. Создайте задачи с ожидаемыми результатами.
  3. Выберите процесс: sequential для простых цепочек, hierarchical для сложных.
  4. Запустите crew и проверьте вывод на тестовом датасете.

Сроки ориентировочно

  • Прототип с 3 агентами: от 2 до 4 дней.
  • Production-crew с кастомными инструментами: от 1 до 2 недель.
  • Сложный Flow с conditional routing: от 2 до 3 недель.
  • Интеграция с корпоративными системами: +1–2 недели.

Типичные ошибки при внедрении

  • Слишком широкие backstory агентов — они начинают галлюцинировать. Советуем сужать контекст до конкретной сферы.
  • Игнорирование параметра max_iter — агент может зациклиться. Выставляйте явное ограничение (5–10).
  • Отсутствие тестового набора данных — без него не поймать регрессию после смены модели.

Почему CrewAI стоит попробовать?

CrewAI снижает порог входа для построения мульти-агентных систем. В отличие от LangGraph, где нужно вручную описывать каждый переход, CrewAI в 5 раз быстрее для настройки базовой команды и делает 80% работы за вас. Наш опыт показывает, что первая рабочая crew собирается за пару дней, а отдача от автоматизации окупает затраты на интеграцию в течение квартала.

Свяжитесь с нами, чтобы оценить возможность интеграции CrewAI в ваш проект. Мы предоставляем гарантию на стабильность системы после деплоя и сертификаты соответствия. Закажите демо — покажем, как ваша AI-команда начнёт приносить прибыль.