Як налаштувати мульти-агентну систему: ролі, завдання, Flows у CrewAI

Мульти-агентні системи на базі 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 став основним інструментом для наведення порядку. Наша команда з 5-річним досвідом у впровадженні AI-рішень реалізувала понад 100 проєктів. За 2 роки CrewAI показав себе у 50+ інтеграціях, скоротивши час аналізу на 70%.

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

Які проблеми вирішує CrewAI?

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

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

Ось як це виглядає на практиці: один клієнт з фінтеху попросив автоматизувати щоквартальний конкурентний аналіз. Раніше це займало 3 тижні силами 2 аналітиків, а з CrewAI — 4 години автономної роботи + 2 години рев'ю. Покриття конкурентів зросло з 5 до 12 компаній, а пропущених значущих подій стало 0 замість 2–3 (дані внутрішнього звіту). CrewAI забезпечує в 70% швидше виконання аналізу порівняно з ручним процесом.

Як ми це робимо: стек та код

Використовуємо 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 — це інвестиція, яка швидко окупається.

Пишіть нам — оцінимо ваш проект безкоштовно. Пропонуємо рішення під ключ за 2-3 тижні. Зв'яжіться з нами, щоб оцінити можливість інтеграції CrewAI у ваш проєкт. Ми надаємо гарантію на стабільність системи після деплою та сертифікати відповідності. Замовте демо — покажемо, як ваша AI-команда почне приносити прибуток.