CrewAI🕐 18 мин📅 Май 2025
CrewAI на практике: создание AI-бота поддержки командой мульти-агентов
С нуля строим полноценную систему поддержки на базе мульти-агентов с использованием CrewAI. Agent-исследователь анализирует запрос, Agent базы знаний выполняет поиск, Agent-автор формирует ответ, Agent контроля качества проверяет — весь процесс автоматизирован.
Почему именно CrewAI?
CrewAI — один из самых лаконичных фреймворков для мульти-агентов. Его ключевая идея — «роль + цель + предыстория»: три строки конфигурации — и Agent готов. По сравнению со сложными конечными автоматами LangGraph, CrewAI лучше подходит для быстрого внедрения.
🎯 Сценарии применения
Поддержка клиентов, ревью кода, создание контента, анализ данных — любой рабочий процесс с чётким разделением ролей отлично ложится на CrewAI.
Архитектура системы
Наша команда мульти-агентов для поддержки включает 4 роли:
- Classifier — классифицирует запрос клиента (технический / цена / послепродажное обслуживание)
- KnowledgeSearcher — выполняет поиск по базе знаний о продуктах (спецификации, RAG)
- ResponseWriter — формирует профессиональный ответ на основе контекста
- QualityReviewer — проверяет качество ответа и принимает решение: опубликовать или переписать
Полная реализация кода
Step 1: Установка зависимостей
pip install crewai langchain langchain-community
pip install 'crewai[tools]' # встроенный набор инструментов
pip install qdrant-client # векторная БД (при использовании RAG)
Step 2: Определение ролей Agent
from crewai import Agent, Task, Crew
classifier = Agent(
role="Классификатор обращений",
goal="Быстро и точно определить тип вопроса клиента",
backstory="Опытный оператор колл-центра с 5-летним стажем. "
"Знает все категории обращений и типичные паттерны.",
verbose=True,
allow_delegation=False # не делегирует, выполняет сам
)
searcher = Agent(
role="Поисковик базы знаний",
goal="Найти релевантную информацию о продуктах Sanduoyun",
backstory="Технический эксперт по GPU-серверам. "
"Знает все спецификации и может найти нужные данные.",
tools=[search_tool, scrape_tool], # инструменты MCP
verbose=True,
allow_delegation=False
)
writer = Agent(
role="Автор ответов",
goal="Написать профессиональный и дружелюбный ответ клиенту",
backstory="Копирайтер с опытом в B2B-сегменте. "
"Пишет чётко, по делу, без воды.",
verbose=True,
allow_delegation=True # может делегировать другим Agent
)
reviewer = Agent(
role="Контроль качества",
goal="Убедиться что ответ готов к отправке",
backstory="QA-специалист с вниманием к деталям. "
"Не пропустит ошибку или неточность.",
verbose=True,
allow_delegation=False
)
Step 3: Определение Tasks
classify_task = Task(
description="Классифицируй обращение клиента: "
"TECHNICAL / PRICE / SUPPORT / SALES",
agent=classifier,
expected_output=" одна категория из: TECHNICAL, PRICE, SUPPORT, SALES"
)
search_task = Task(
description="Найди в базе знаний релевантную информацию. "
"Если обращение техническое — найди спецификации. "
"Если про цену — найди прайс и акции. "
"Если про поддержку — найди SLA и условия.",
agent=searcher,
expected_output=" структурированная информация из базы знаний",
context=[classify_task] # входные данные из предыдущего шага
)
write_task = Task(
description="На основе классификации и найденной информации "
"напиши ответ клиенту. Используй только проверенные данные.",
agent=writer,
expected_output=" готовый ответ клиенту на русском языке",
context=[classify_task, search_task]
)
review_task = Task(
description="Проверь ответ: нет ли фактических ошибок, "
"правильный ли тон, всё ли учтено. "
"Если есть проблемы — исправь.",
agent=reviewer,
expected_output=" финальный ответ и вердикт: APPROVED или REVISION",
context=[write_task]
)
Step 4: Сборка Crew и запуск
crew = Crew(
agents=[classifier, searcher, writer, reviewer],
tasks=[classify_task, search_task, write_task, review_task],
process="sequential", # последовательное выполнение (также доступен режим "hierarchical" с менеджером)
verbose=True,
memory=True # общая память между Agent
)
# запуск взаимодействия мульти-агентов
result = crew.kickoff(
inputs={"customer_message": user_input}
)
print(result) # итоговый ответ
Step 5: Конфигурация GPU-ресурсов (CrewAI + vLLM)
# gpu_config.yaml
# выделяем отдельный экземпляр LLM для каждого Agent
deployment:
vllm:
model: "meta-llama/Llama-3-8B-Instruct"
tensor_parallel_size: 1 # по 1 GPU на каждый Agent
gpu_memory_utilization: 0.85
max_num_seqs: 256
ports: [8001, 8002, 8003, 8004] # отдельный порт для каждого Agent
crew:
agents:
classifier: {port: 8001, gpu: 0}
searcher: {port: 8002, gpu: 0}
writer: {port: 8003, gpu: 1}
reviewer: {port: 8004, gpu: 1}
# рекомендуемое оборудование: SDY-421GU-TNXR (8× L40S)
# - Agent 0-3 → GPU 0-3 (соединение NVLink)
# - Agent 4-7 → GPU 4-7 (соединение NVLink)
Режим менеджера (CrewAI Hierarchical)
Помимо последовательного режима, CrewAI поддерживает «режим менеджера»: один Agent-менеджер отвечает за распределение задач, а несколько Agent-исполнителей работают параллельно.
# режим менеджера: эффективнее, подходит для масштабных задач
crew_hierarchical = Crew(
agents=[manager, executor_1, executor_2, executor_3],
tasks=[complex_task],
process="hierarchical",
manager_agent=manager # назначаем менеджера
)
# менеджер автоматически разбивает задачу → распределяет исполнителям → собирает результат
result = crew_hierarchical.kickoff()
Расширение: интеграция инструментов MCP
Используем протокол MCP, чтобы дать Agent доступ к внешним инструментам: поиску, CRM, запросам к данным.
from crewai.tools import MCPTool
# подключаем шину инструментов MCP
search_tool = MCPTool(
server="https://api.sanduoyun.com/mcp",
tool="search_knowledge_base"
)
crm_tool = MCPTool(
server="https://api.sanduoyun.com/mcp",
tool="query_crm"
)
searcher = Agent(
role="Поисковик",
tools=[search_tool, crm_tool],
...
)
Рекомендации по оборудованию
| Масштаб | Сервер | GPU | Количество Agent | Цена |
| Разработка / тестирование | SDY-4208-I4 | 4× L40S | 1-5 | ¥68,000 |
| Малое производство | SDY-421GU-TNXR | 8× L40S | 5-15 | ¥128,000 |
| Среднее производство | SDY-5126-TNRT | 8× H100 | 15-50 | ¥580,000 |
📌 Нужен полноценный демо-стенд поддержки на Agent?
Наши инженеры развернут для вас готовую систему поддержки на мульти-агентах CrewAI, включая базу знаний RAG, шину инструментов MCP и панель мониторинга.