К основному содержимому

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 растёт с числом агентов и задач почти линейно. Перед тем как добавлять четвёртого или пятого агента в команду, стоит замерить, во сколько раз выросло общее время ответа, и решить, оправдана ли дополнительная специализация ролей этим ростом задержки. На практике редко имеет смысл держать больше трёх-четырёх агентов в одной последовательной цепочке — дальше выгоднее переработать одну крупную задачу на отдельного агента, чем дробить её ещё сильнее.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке