Як використовувати CrewAI: Практичний посібник з багатоагентних робочих процесів
Смілива обіцянка: Якщо ви коли-небудь хотіли клонувати свого найкращого товариша по команді, щоб швидше впоратися з проєктом, CrewAI наблизить вас до цього — шляхом організації роботи кількох AI-агентів, які планують, співпрацюють і разом виконують роботу.
У цьому практичному, орієнтованому на рішення посібнику ви дізнаєтесь, як саме використовувати CrewAI: від встановлення фреймворку та визначення агентів, до побудови ролей, інструментів, завдань і структурованих багатоагентних робочих процесів, які приносять реальні результати. Ми розглянемо шаблони для дослідження, контенту, аналізу даних і генерації коду — і як уникнути поширених пасток, таких як тупикові ситуації для агентів, роздування промптів і надмірне використання інструментів.
Наша мета: надати вам покроковий шлях «спробуйте сьогодні» з кодом, який можна скопіювати та вставити, перевіреними найкращими практиками та кількома шаблонами робочих процесів, які ви можете адаптувати. Незалежно від того, чи автоматизуєте ви дослідження ринку, чи створюєте специфікацію продукту на основі тікетів, це ваш шлях до ефективного використання CrewAI.
Що таке CrewAI (і чому вона відрізняється)
- CrewAI — це фреймворк для побудови багатоагентних систем, де кожен агент має роль, мету, інструменти та правила. Потім фреймворк координує цих агентів — передаючи завдання, обмінюючись контекстом і ітеративно рухаючись до результату.
- На відміну від одного LLM-промпта, CrewAI забезпечує структуру: агенти є явними, завдання — модульні, інструменти — з дозволами, а результати — доступні для аудиту.
- Результат: декомпозовані робочі процеси (дослідження → синтез → написання → QA), які відображають те, як працюють реальні команди — тільки швидше, масштабованіше та відтворюваніше.
Швидкий старт: Як використовувати CrewAI за 10 хвилин
Нижче наведено мінімальний шаблон, який допоможе вам перейти від нуля до робочої багатоагентної команди. Припустимо, що ви використовуєте Python.
1) Встановлення та налаштування
pip install crewai langchain-openai python-dotenv
Створіть файл .env з ключами вашого LLM-провайдера:
OPENAI_API_KEY=sk-your-key
# або інші провайдери, які підтримуються вашим стеком
2) Визначте своїх агентів (ролі + цілі + інструменти)
from crewai import Agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2)
researcher = Agent(
role="Market Researcher",
goal="Find credible, current insights on the target market and competitors.",
backstory=(
"You are a diligent analyst who verifies claims, cites sources, and summarizes "
"signals from reputable publications."
),
tools=[], # add web/search/scraper tools later
llm=llm
)
strategist = Agent(
role="Product Strategist",
goal="Synthesize research into a crisp positioning and roadmap options.",
backstory="You prioritize clarity, feasibility, and measurable outcomes.",
tools=[],
llm=llm
)
writer = Agent(
role="Content Writer",
goal="Produce a well-structured brief with examples and next steps.",
backstory="You write in concise, persuasive English and follow style guides.",
tools=[],
llm=llm
)
3) Створіть завдання (вхідні дані, вихідні дані та критерії прийнятності)
from crewai import Task
research_task = Task(
description=(
"Research the US SMB project management software market in 2025. "
"Identify top competitors, pricing tiers, ICPs, and three unmet needs. "
"Return bullet points with 3–5 citations."
),
expected_output=(
"A markdown brief with sections: Market Size, Key Players, Pricing, ICPs, "
"Unmet Needs, Sources (with links)."
),
agent=researcher
)
synthesis_task = Task(
description=(
"Using the research brief, produce a positioning statement, 2–3 differentiators, "
"and a 90-day roadmap with milestones."
),
expected_output="A concise strategy memo (<= 400 words).",
agent=strategist
)
writing_task = Task(
description=(
"Turn the strategy memo into a public-facing one-pager. Include a headline, "
"value proposition, feature bullets, and a CTA."
),
expected_output="A markdown one-pager suitable for a landing page.",
agent=writer
)
4) Організуйте команду (потік + пам'ять)
from crewai import Crew
crew = Crew(
agents=[researcher, strategist, writer],
tasks=[research_task, synthesis_task, writing_task],
process="sequential", # hand off outputs in order
verbose=True
)
result = crew.kickoff
print(result)
Це ваш перший робочий конвеєр. Ви визначили агентів, з'єднали завдання та запустили послідовний потік. Щоб розширити його, додайте інструменти (пошук, скрапінг, виконання коду), етапи перевірки та паралельні етапи.
Ментальна модель для проєктів CrewAI
Думайте як менеджер проєкту:
- Ролі: Хто що робить? Дослідник, Аналітик, Інженер, Рецензент.
- Правила: Яким стандартам потрібно відповідати? Керівництво по стилю, цитування, тести.
- Інструменти: Які можливості дозволені? Веб-пошук, векторна база даних, Python, API.
- Завдання: Як ми розбиваємо проблему? Вхідні дані, вихідні дані, критерії прийнятності.
- Передачі: Що передається далі? Артефакти, метадані, обмеження.
- Зворотній зв'язок: Хто перевіряє? Агент QA, людина в контурі або тести.
З CrewAI ваш код кодує цю операційну модель.
Як використовувати CrewAI для реальної роботи: 5 перевірених моделей
1) Дослідження → Синтез → Створення чернетки (Контент і звіти)
- Агенти: Дослідник, Редактор, Письменник, Перевіряючий фактів.
- Інструменти: Веб-пошук, перевірка джерела, посібник зі стилю.
- Порада: Примусово використовуйте цитування та «таблицю тверджень», щоб запобігти галюцинаціям.
fact_checker = Agent(
role="Fact Checker",
goal="Validate all claims against primary sources; flag weak citations.",
backstory="Skeptical, meticulous, unbiased.",
llm=llm
)
qa_task = Task(
description="Validate all factual statements; add corrections inline with [FIX] tags.",
expected_output="A corrected draft with a summary of fixes.",
agent=fact_checker
)
2) Специфікація продукту з тікетів (Інжиніринг)
- Агенти: Групувальник тікетів, Автор специфікації, Рецензент, Автор тестів.
- Інструменти: API відстеження проблем, контекст кодової бази через вбудовування, генератор юніт-тестів.
- Порада: Додайте автоматизований контрольний список «Визначення завершеності».
3) Дані → Інсайт → Оповідь (Аналітика)
- Агенти: Збирач даних (Python), Аналітик, Оповідач.
- Інструменти: Pandas, SQL, графіки, виконання блокнотів.
- Порада: Використовуйте агента з підтримкою інструментів з виконанням
python для перевіреної аналітики.
4) Генерація коду з обмеженнями
- Агенти: Планувальник, Кодер, Лінтер, Тестер, Рецензент.
- Інструменти: Зчитування репозиторію, запускач юніт-тестів, форматувальник, сканер безпеки.
- Порада: Вимагайте від рецензента посилатися на тести, які доводять правильність.
5) Масштабування послідовності електронних листів клієнта
- Агенти: Сегментатор, Копірайтер, Персоналізатор, QA.
- Інструменти: CRM API, шаблони, посібник з тону бренду.
- Порада: Додайте інструмент перевірки відмов/спаму та примусово використовуйте A/B варіанти.
Додавання інструментів: Надайте агентам реальні можливості
CrewAI чудово працює, коли агенти можуть використовувати інструменти. Наприклад: надайте досліднику веб-пошук і зчитувач URL-адрес.
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_community.document_loaders import WebBaseLoader
search = DuckDuckGoSearchRun
def web_search_tool(query: str):
return search.run(query)
def read_url_tool(url: str):
loader = WebBaseLoader(url)
docs = loader.load
return "\n\n".join([d.page_content[:2000] for d in docs])
researcher.tools = [web_search_tool, read_url_tool]
Найкращі практики:
- Найменший привілей: Призначайте лише ті інструменти, які агенту справді потрібні.
- Дисципліна схеми: Інструменти повинні бути детермінованими та типізованими; повертайте стислий, структурований текст (JSON/Markdown), коли це можливо.
- Контроль витрат: Зберігайте короткі вихідні дані інструменту; узагальнюйте перед передачею.
Розробка завдань, які вдаються
Добре розроблені завдання визначають успіх або невдачу багатоагентних систем.
- Будьте явними: «Поверніть таблицю markdown зі стовпцями X, Y, Z».
- Визначте критерії прийнятності: «Містить 3 цитування з посиланнями на первинні джерела».
- Встановіть межі: Кількість слів, обмеження за часом або обмеження кількості кроків зменшують відхилення.
- Включіть приклади: Надайте міні-специфікацію бажаного формату виводу.
- Додайте теги пам'яті: Використовуйте узгоджені заголовки/ключі в завданнях для легкої передачі.
Приклад скелета завдання:
Task(
description=(
"Summarize 5 recent studies on remote work productivity (2023–2025) with "
"methodology, sample size, and key findings."
),
expected_output=(
"Markdown with H2 sections per study, a final comparison table, and links."
),
agent=researcher
)
Режими оркестровки: послідовний, паралельний або гібридний
- Послідовний: Надійні передачі; повільніше, але простіше для розуміння.
- Паралельний: Кілька агентів працюють одночасно (наприклад, 3 дослідники); злиття пізніше.
- Гібридний: Паралельне розгалуження дослідження → згортання синтезу та QA.
Приклад гібридного режиму:
r1 = Agent(role="Researcher A", goal="Focus on pricing", backstory="", llm=llm)
r2 = Agent(role="Researcher B", goal="Focus on features", backstory="", llm=llm)
# Parallel tasks for r1, r2; a follow-up synthesis task merges their outputs.
Порада: Під час злиття доручіть синтезатору дедуплікувати, вирішувати конфлікти та цитувати сильніше джерело.
Запобіжники та QA: Зберігайте чесність агентів
- Рефері: Додайте рецензента або перевіряючого фактів із чітким правом вето.
- Контрольні списки: Закодуйте відповідність (конфіденційність, безпека, тон бренду) як контрольний список, який агент QA повинен відмітити.
- Самокритика: Попросіть агентів включити короткий розділ «Що я міг пропустити».
- Детермінізм: Використовуйте нижчу температуру для агентів QA.
qa = Agent(
role="QA Reviewer",
goal="Ensure outputs meet the acceptance criteria and style guide.",
backstory="You are strict and pedantic.",
llm=llm
)
Prompt Engineering для агентів CrewAI
Ваші промпти для агентів — це міні-описи вакансій. Тримайте їх стислими.
- Промпт ролі: Хто ви, що ви оптимізуєте.
- Промпт цілі: Бажаний кінцевий стан.
- Обмеження: Кількість слів, формат, тон, посилання.
- Інструменти: Назви, коли їх використовувати, що повертати.
- Приклади: 1–2 короткі, реалістичні зразки.
Фрагмент:
researcher = Agent(
role="Analytical Researcher",
goal=(
"Deliver compact, accurate briefs with 3–5 credible citations and a risk note."
),
backstory=(
"You verify claims, prefer primary sources, and flag uncertainty."
),
llm=llm
)
Спостережливість: Подивіться, що зробили агенти (і чому)
Увімкніть докладні журнали та зберігайте артефакти:
- Зберігайте промпт, вихідні дані та виклики інструментів кожного завдання.
- Збережіть маніфест запуску з метаданими (модель, температура, інструменти).
- Зберігайте чернетку для проміжних нотаток; це допомагає налагоджувати та проводити аудит.
Шаблон:
crew = Crew(..., verbose=True, output_log_file="runs/2025-crew.log")
Поради щодо вартості, затримки та надійності
- Пакетна обробка: Паралелізуйте незалежні завдання; обмежте одночасність, щоб уникнути обмежень швидкості.
- Узагальнюйте: Стискайте проміжні артефакти, щоб зменшити плинність токенів.
- Кешування: Запам'ятовуйте стабільні кроки (наприклад, визначення ринку) за допомогою векторних сховищ.
- Відкати: Надайте резервну модель або політику повторних спроб для нестабільних викликів.
- Людина в контурі: Вставте додаткові шлюзи затвердження на етапах із високим ризиком.
Поширені пастки (і як їх виправити)
- Пастка: Нечіткі завдання → безладні вихідні дані.
- Виправлення: Додайте чіткі критерії прийнятності та приклади.
- Пастка: Занадто багато інструментів → відволікання та вартість.
- Виправлення: Тільки інструменти з найменшими привілеями, специфічні для завдання.
- Пастка: Нескінченні цикли або надмірна ітерація.
- Виправлення: Додайте обмеження за кроками/часом і пункт «зупинитися, якщо критерії виконано».
- Пастка: Втрата контексту між агентами.
- Виправлення: Використовуйте структуровані об’єкти передачі (JSON) і узгоджені заголовки.
- Пастка: QA — це другорядна думка.
- Виправлення: Ставтеся до QA як до першокласного агента з правом вето.
Комплексний приклад: Генератор конкурентного брифу
Мета: Створити конкурентний бриф, який порівнює три інструменти для цільової персони.
Агенти:
- Аналітик персони → визначає больові точки та завдання, які потрібно виконати.
- Дослідник → збирає дані та цитати.
- Синтезатор → будує порівняльну таблицю та інсайти.
- Письменник → створює остаточний бриф.
- QA → перевіряє джерела та ясність.
Скелет:
persona = Agent(role="Persona Analyst", goal="Define ICP and JTBD.", llm=llm)
researcher = Agent(role="Researcher", goal="Collect credible data.", llm=llm)
synth = Agent(role="Synthesizer", goal="Compare and interpret.", llm=llm)
writer = Agent(role="Writer", goal="Create an executive-ready brief.", llm=llm)
qa = Agent(role="QA", goal="Validate claims and clarity.", llm=llm)
persona_task = Task(description="Define ICP & JTBD for RevOps leaders in SaaS.", agent=persona,
expected_output="Bullets + pain points + success metrics.")
research_task = Task(description="Collect pricing, features, and reviews for 3 tools.", agent=researcher,
expected_output="Table + 5 citations.")
synth_task = Task(description="Build a comparison matrix and top 3 insights.", agent=synth,
expected_output="Markdown table + insights.")
write_task = Task(description="Draft a 1-page brief with recommendations.", agent=writer,
expected_output="Executive brief in markdown.")
qa_task = Task(description="Check accuracy and readability; fix issues.", agent=qa,
expected_output="Clean, validated brief.")
crew = Crew(agents=[persona, researcher, synth, writer, qa],
tasks=[persona_task, research_task, synth_task, write_task, qa_task],
process="sequential", verbose=True)
print(crew.kickoff)
Коли використовувати CrewAI, а не один промпт
Використовуйте CrewAI, коли:
- Завдання природно розкладається на ролі або етапи.
- Вам потрібна відстежуваність, QA або використання інструментів.
- Ви будуєте конвеєр для багаторазового використання, а не одноразовий.
Дотримуйтеся одного промпта, коли:
- Це коротке, суб’єктивне завдання без зовнішніх інструментів.
- Швидкість важливіша за структуру.
До речі: Швидше створюйте чернетки за допомогою AI Side Panel
Якщо ви використовуєте багатоагентні робочі процеси для дослідження, створення структури та створення чернеток контенту, варто зазначити, що бічна панель AI, як-от Sider.ai, може розташовуватися поруч із вашим браузером і документами, щоб узагальнювати сторінки, генерувати структури та вдосконалювати чернетки в реальному часі. Вона не замінить оркестровку CrewAI, але може прискорити ручні частини — збір фрагментів, переписування розділів або перевірку тону — перш ніж знову підключити контент до вашої команди. Дієві наступні кроки
- Встановіть CrewAI та запустіть приклад швидкого старту.
- Виберіть реальний робочий процес (дослідження → чернетка → QA) і закодуйте його.
- Додавайте по одному інструменту; вимірюйте вплив на якість виводу та вартість.
- Впровадьте агента QA з чіткими критеріями прийнятності.
- Перейдіть до гібридної моделі оркестровки для швидкості.
Ключові висновки
- CrewAI перетворює складні проєкти на модульні багатоагентні робочі процеси.
- Успіх залежить від чітких ролей, чітких завдань і дисциплінованого використання інструментів.
- Запобіжники (QA, контрольні списки, обмеження) знижують витрати та підвищують якість.
- Почніть з малого, а потім масштабуйте за допомогою паралельних досліджень і гібридних потоків.
Міні-контрольний список: Як ефективно використовувати CrewAI
- Чітко визначте ролі, цілі та інструменти.
- Напишіть завдання з критеріями прийнятності та прикладами.
- Використовуйте послідовний режим для надійності, гібридний — для швидкості.
- Додайте агента QA на ранньому етапі; надайте йому право вето.
- Записуйте все в журнал; зберігайте артефакти для аудитів.
- Оптимізуйте вартість за допомогою резюме, кешування та пакетної обробки.
FAQ
Q1:Що таке CrewAI і як використовувати її для багатоагентних робочих процесів?
CrewAI — це фреймворк для організації роботи кількох AI-агентів із ролями, завданнями та інструментами. Ви використовуєте її, визначаючи агентів, створюючи завдання з критеріями прийнятності та запускаючи команду, яка координує передачі для отримання остаточного результату.
Питання 2: Як додати інструменти, такі як веб-пошук, до агентів CrewAI?
Прикріпіть функції інструментів до агента та вкажіть, коли їх використовувати. Зберігайте структуровані та короткі вихідні дані (наприклад, JSON або markdown), щоб контролювати витрати та покращити передачу даних.
Питання 3: Коли слід використовувати CrewAI замість одного запиту LLM?
Використовуйте CrewAI, коли завдання розкладається на етапи, потребує використання інструментів або QA, або потребує повторюваних конвеєрів. Використовуйте один запит для швидких, суб'єктивних завдань, які не потребують структури.
Питання 4: Як я можу запобігти галюцинаціям у вихідних даних CrewAI?
Додайте агента Fact-Checker або QA з правом вето, вимагайте посилання на першоджерела, встановіть низьку температуру для QA та вкажіть критерії прийнятності, наприклад таблицю тверджень.
Питання 5: Чи може CrewAI запускати завдання паралельно, щоб пришвидшити процес?
Так. Використовуйте паралельних агентів для незалежних завдань (наприклад, кілька дослідників), а потім завдання синтезатора для об’єднання результатів. Гібридна оркестрація збалансовує швидкість і надійність.