До основного вмісту

CrewAI на VDS: команда AI-агентів для складних завдань

AI-агенти на VDS · 19.04.2026 · 4 хв читання
Ілюстрація до статті «CrewAI на VDS: команда AI-агентів для складних завдань»

Що таке CrewAI?

CrewAI — Python-фреймворк для створення команд AI-агентів. Кожен агент має роль, мету та набір інструментів. Агенти взаємодіють між собою, передаючи завдання по ланцюжку для досягнення спільної мети.

Встановлення

pip install crewai crewai-tools langchain-ollama

Створення команди агентів

from crewai import Agent, Task, Crew, Process
from langchain_ollama import OllamaLLM

llm = OllamaLLM(model="llama3.2", base_url="http://localhost:11434")

# Агент-дослідник
researcher = Agent(
    role="Дослідник",
    goal="Збирати актуальну інформацію за темою",
    backstory="Досвідчений аналітик із широким кругозором",
    llm=llm,
    verbose=True
)

# Агент-письменник
writer = Agent(
    role="Технічний письменник",
    goal="Створювати зрозумілі статті на основі досліджень",
    backstory="Експерт з технічної документації",
    llm=llm
)

# Завдання
task1 = Task(
    description="Вивчи переваги VDS-хостингу",
    expected_output="Список із 5 ключових переваг",
    agent=researcher
)
task2 = Task(
    description="Напиши статтю на основі дослідження",
    expected_output="Стаття 300 слів",
    agent=writer
)

# Запуск
crew = Crew(agents=[researcher, writer], tasks=[task1, task2], process=Process.sequential)
result = crew.kickoff()
print(result)
Типи Process: Sequential — завдання виконуються по черзі. Hierarchical — агент-менеджер розподіляє завдання між виконавцями.

Вбудовані інструменти CrewAI

  • SerperDevTool — пошук у Google
  • FileReadTool, FileWriterTool — робота з файлами
  • WebsiteSearchTool — пошук по конкретному сайту
  • CodeInterpreterTool — виконання Python коду

Часті помилки під час налаштування

Частина помилок CrewAI виглядає як проблема з LLM, а насправді пов'язана з внутрішніми налаштуваннями самого фреймворку — пам'яттю та процесом виконання.

Помилка авторизації OpenAI, хоча використовується Ollama

openai.AuthenticationError: Incorrect API key provided

За замовчуванням CrewAI використовує ембеддинги OpenAI для короткострокової пам'яті агентів, навіть якщо основна модель — локальна через Ollama. Якщо змінна OPENAI_API_KEY не задана, під час першого звернення до пам'яті виникає ця помилка. Рішення — явно вказати локальний ембеддер у конфігурації Crew або вимкнути пам'ять, якщо вона не потрібна для конкретного завдання.

Attribute manager_llm is required для Process.hierarchical

Ієрархічний процес вимагає окремої моделі для агента-менеджера, який розподіляє завдання. Якщо передати лише process=Process.hierarchical без manager_llm, Crew завершиться помилкою валідації ще до старту. Додайте manager_llm=llm під час створення об'єкта Crew.

Sequential і Hierarchical: порівняння процесів

Параметр Process.sequential Process.hierarchical
Порядок завдань Строго за списком tasks Визначає менеджер під час виконання
Потрібен manager_llm Ні Так, обов'язково
Передбачуваність Висока Нижча, залежить від рішень менеджера
Коли використовувати Відомий порядок кроків Завдання можна перерозподіляти динамічно

Коли CrewAI не підходить

  • Потрібен один прямий виклик моделі без ролей і пам'яті — оверхед фреймворку не окупається, простіше звернутися до Ollama напряму.
  • Потрібен тонкий контроль над кожним кроком ланцюжка викликів — для цього краще підходить LangChain з явними ланцюжками.
  • Агентам потрібно самостійно писати і виконувати довільний код у діалозі — це сильна сторона AutoGen, а не CrewAI.
  • Критична затримка в десятки мілісекунд — на кожного агента в команді витрачається окремий виклик LLM, і загальний час зростає з кількістю агентів.

Перевірка, що команда агентів працює

python3 -c "import crewai; print(crewai.__version__)"
ollama list

Запустіть crew з verbose=True і переконайтеся, що в логу видно переходи між агентами: кожен агент має явно отримати завдання, вивести проміжний результат і передати його далі. Якщо лог обривається після першого агента без помилки, перевірте, що expected_output описано достатньо конкретно — розпливчастий опис результату іноді змушує агента зависати у спробах його уточнити.

Ще один практичний момент — вартість за часом виконання. Навіть при використанні безкоштовної локальної моделі через Ollama кожен агент у команді додає окремий послідовний виклик LLM, і сумарний час виконання crew зростає з кількістю агентів і завдань майже лінійно. Перш ніж додавати четвертого чи п'ятого агента в команду, варто виміряти, у скільки разів зріс загальний час відповіді, і вирішити, чи виправдана додаткова спеціалізація ролей таким зростанням затримки. На практиці рідко є сенс тримати більше трьох-чотирьох агентів в одному послідовному ланцюжку — далі вигідніше переробити одне велике завдання на окремого агента, ніж дробити його ще сильніше.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці