Track
ИИ-агенты — это помощники, которые могут выполнять задачи и взаимодействовать с миром. В отличие от традиционных систем с жёсткими правилами, они способны учиться и адаптироваться к новым ситуациям. Их можно представить как программные приложения, которые воспринимают окружающую среду и предпринимают действия.
Но что отличает ИИ-агентов от других сущностей ИИ, например популярных языковых моделей, о которых слышали все?
В этой статье я отвечу на этот вопрос и представлю CrewAI — бесплатный открытый Python-фреймворк, упрощающий разработку многоагентных систем ИИ. Мы разберём различия между агентами и языковыми моделями, обсудим, почему фреймворки агентов важны для создания приложений ИИ, и покажем, как CrewAI позволяет агентам сотрудничать и добиваться отличных результатов.
ИИ-агенты и LLM
Давайте развеем распространённое заблуждение о разнице между агентами и большими языковыми моделями (LLM). Обе технологии относятся к семейству искусственного интеллекта, но обладают различными возможностями.

Языковые модели, такие как ChatGPT и Gemini, превосходно работают с языком. Они прошли масштабное обучение на огромных массивах текста и кода, благодаря чему способны понимать и генерировать язык, близкий к человеческому общению.
LLM — это виртуозы слова в мире искусственного интеллекта: они создают переводы, резюме, художественные тексты и даже поэзию. Их область применения обычно ограничена задачами, связанными с языком.
Агенты же в первую очередь ориентированы на действие. Они умеют перемещаться, взаимодействовать с объектами и принимать решения на основе восприятия.
Проще говоря, языковые модели — это мозг, а агенты — руки. Вместе они образуют мощный тандем.
Итак, если агенты играют столь важную роль в приложениях ИИ, как управлять их сложностью, когда нескольким агентам нужно работать вместе? Здесь и нужны фреймворки агентов.
Зачем нужен фреймворк агентов
Потребность в фреймворках агентов обусловлена растущей сложностью приложений ИИ, особенно тех, где несколько агентов совместно работают для достижения общей цели. Посмотрим, почему фреймворки агентов необходимы.
Оркестрация и координация
По мере масштабирования систем ИИ в них часто включаются многочисленные агенты с разными возможностями. Управлять их взаимодействием и обеспечивать слаженную работу становится всё труднее.
Фреймворки агентов предоставляют структурированную среду для оркестрации деятельности агентов, определения их ролей и обязанностей и улучшения коммуникации.
В многоагентных системах важна эффективная раздача задач наиболее подходящим агентам и грамотное управление общими ресурсами. Фреймворки агентов обеспечивают динамические механизмы распределения задач, согласования ресурсов и разрешения конфликтов.
Модульность и повторное использование
Фреймворки агентов поддерживают модульный подход к разработке ИИ, когда агенты проектируются и реализуются как независимые компоненты. Такая модульность улучшает организацию кода и позволяет переиспользовать модули агентов в разных проектах, упрощая разработку и сопровождение сложных систем. При компонентной структуре разработчики ИИ могут сосредоточиться на отдельных агентах, не нарушая работу всей системы.
Кроме того, фреймворки агентов часто используют ролевую архитектуру, позволяя назначать агентам конкретные роли, которые определяют их возможности и права. Такой ролевой дизайн делает систему более организованной и управляемой: агентов можно добавлять, удалять или изменять с минимальным влиянием на общую архитектуру. Эта гибкость обеспечивает эволюцию систем и их адаптацию к новым требованиям без существенной переработки.
Адаптивность и обучение
Реальные среды часто динамичны, непредсказуемы и постоянно меняются. Фреймворки агентов помогают агентам воспринимать изменения в окружении и соответствующим образом адаптировать своё поведение. Это обеспечивает их эффективную работу даже в сложных и постоянно меняющихся сценариях, что делает их лучше приспособленными к реальным задачам.
Кроме того, фреймворки агентов часто включают механизмы обучения, позволяющие агентам со временем повышать эффективность. Получая обратную связь и накапливая опыт, агенты непрерывно оптимизируют процесс принятия решений и адаптируются к новым вызовам. Такая постоянная улучшаемость повышает ценность агентов и способствует долгосрочной эффективности и успеху системы.
И раз уж речь об агентных фреймворках, познакомимся с тем, который на слуху в сообществе ИИ: CrewAI.
Что такое CrewAI?
CrewAI — это открытый Python-фреймворк, построенный вокруг двух взаимодополняющих блоков:
- Crews — команды ИИ-агентов, которые автономно сотрудничают на основе ролевого принятия решений; и
- Flows — готовые к продакшену, событийно-управляемые пайплайны, дающие вам контроль над автоматизацией.
Вместе они позволяют создать всё — от простой исследовательской цепочки до полностью автономной многоагентной системы.

Фреймворк включает ряд инструментов, в том числе веб-поисковики и языковые модели, позволяя агентам взаимодействовать с внешним миром, собирать информацию и действовать для достижения целей.
Архитектура и масштабируемость CrewAI делают его идеальным для разработки как базовых, так и сложных многоагентных приложений, поддерживая совместный подход к решению задач и принятию решений в системах ИИ.
Рассмотрим ключевые особенности, которые делают CrewAI мощным инструментом для построения многоагентных систем.
- Оркестрация агентов: CrewAI гарантирует, что каждый агент знает свою партию. Он предоставляет инструменты для определения и координации поведения агентов, обеспечивая слаженную работу.
- Ролевая архитектура: Как при распределении инструментов между музыкантами, в CrewAI вы назначаете агентам конкретные роли, определяя их возможности и права. Это создаёт модульную и хорошо структурированную систему даже в условиях высокой сложности.
- Гибкая коммуникация: CrewAI поддерживает разные каналы связи, позволяя агентам бесшовно обмениваться информацией. Представьте, что у вас есть и приватный чат, и групповое обсуждение, и мегафон — всё в одном.
- Интеграция инструментов: CrewAI позволяет агентам взаимодействовать с миром через различные инструменты. Они дают возможность искать в интернете, понимать язык, анализировать данные и выполнять пользовательские задачи.
- Масштабируемость: CrewAI спроектирован так, чтобы масштабироваться без усилий, сохраняя отзывчивость и эффективность вашей многоагентной системы по мере её роста.
А какие преимущества даёт CrewAI? Давайте разберёмся.
CrewAI: Flows и Crews
CrewAI построен вокруг двух взаимодополняющих блоков, которые вместе покрывают всё — от простых задач агентов до сложных продакшен-пайплайнов.
Crews — это команды ИИ-агентов, которые сотрудничают автономно. У каждого агента в Crew определены роль, цель и бэкстори — они вместе выполняют задачи, делегируют друг другу и принимают решения без необходимости прописывать каждый шаг. Crew вам нужен, когда вы хотите, чтобы агенты сами разобрались, как выполнить работу.
Flows — это слой оркестрации над Crews. С помощью Flow вы связываете несколько Crews в цепочку, добавляете условную логику между шагами, управляете состоянием по всему пайплайну и запускаете действия по событиям. Crew даёт автономию, а Flow — контроль.
| Crews | Flows | |
|---|---|---|
| Лучше всего для | Автономных, совместных задач агентов | Многошаговых пайплайнов с контролируемым исполнением |
| Уровень контроля | Управление на стороне агентов | Определяется разработчиком |
| Используйте когда | Вы хотите, чтобы агенты сами нашли способ | Вам нужно контролировать что, когда и при каких условиях |
Для большинства новичков старт — с Crews. К Flows переходите, когда нужна надёжность уровня продакшена. Flows — это путь к масштабированию.
Преимущества использования CrewAI
CrewAI позволяет нескольким ИИ-агентам сотрудничать, делиться знаниями и координировать действия для достижения общей цели.
Автоматизируя распределение задач и управление ресурсами, CrewAI позволяет агентам сосредоточиться на своих ролях с минимальными накладными расходами.
Фреймворк также поддерживает адаптивность, позволяя агентам корректировать поведение в зависимости от меняющихся условий или целей.
Кроме того, CrewAI упрощает разработку, предоставляя удобную платформу для создания и управления многоагентными системами.

Ещё одна сильная сторона CrewAI — интеграция с широким спектром инструментов. Это расширяет возможности агентов, позволяя им взаимодействовать с внешним миром и собирать информацию.
CrewAI поддерживает такие инструменты, как веб-поисковики, языковые модели, средства анализа данных и даже пользовательские функции. Это позволяет агентам выполнять задачи за пределами их базовых возможностей — к примеру, извлекать информацию из интернета или проводить сложный анализ данных.
Практика: создаём инструмент веб-поиска с CrewAI
Засучим рукава и соберём рабочий процесс с инструментами CrewAI: спарсим содержимое сайта, а затем выполним на нём RAG.
Нужно написать код, который запустит инструмент. Прежде чем начать, установим пакеты crewai-tools и crewai с помощью pip:
# Install CrewAI with tools support
pip install 'crewai[tools]'
# Or using uv (recommended by CrewAI for dependency management)
uv add 'crewai[tools]'
После установки пакетов выполните шаги ниже. В этом примере мы используем три инструмента: ScrapeWebsiteTool для парсинга сайта, FileWriterTool для записи файла и TXTSearchTool для поиска контекста для RAG. Приступим.
Шаг 1. Парсинг сайта
Сначала импортируем необходимые библиотеки и инициализируем ScrapeWebsiteTool. Этот инструмент извлекает контент с веб-страницы. В нашем случае он настроен на парсинг страницы Википедии «Artificial Intelligence»:
from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests
# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')
# Extract the text
text = tool.run()
print(text)
Шаг 2. Запись извлечённого текста в файл
Теперь используем FileWriterTool, чтобы сохранить извлечённый текст в файл ai.txt.
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)
Шаг 3. Настройка инструмента текстового поиска
Настраиваем ещё один инструмент для поиска по содержимому только что сохранённого файла ai.txt. Также задаём переменную окружения для ключа OpenAI API.
import os
from crewai_tools import TXTSearchTool
os.environ['OPENAI_API_KEY'] = 'API-KEY'
# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')
Шаг 4. Создаём агента для задачи и запускаем её
Создаём агента-аналитика данных в роли преподавателя. Его задача — ответить на вопрос «Что такое обработка естественного языка?» на основе текста, найденного в файле.
from crewai import Agent, Task, Crew
context = tool.run('What is natural language processing?')
data_analyst = Agent(
role='Educator',
goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
backstory='You are a data expert',
verbose=True,
allow_delegation=False,
tools=[tool]
)
test_task = Task(
description="Using the provided context, answer the question: What is Natural Language Processing?",
tools=[tool],
agent=data_analyst,
expected_output='A clear, 2-3 paragraph explanation of Natural Language Processing, covering its definition, key techniques, and common applications.'
)
crew = Crew(
agents=[data_analyst],
tasks=[test_task]
)
output = crew.kickoff()

Сравнение CrewAI с LangGraph и AutoGen
Основные альтернативы CrewAI — LangGraph и AutoGen от Microsoft. Главное преимущество CrewAI — ролевая парадигма агентов. Определяя у агентов роли, цели и бэкстори, вы получаете поведение, близкое к тому, как взаимодействуют человеческие команды.
LangGraph даёт больше контроля над потоком исполнения благодаря графовому подходу, но требует понимания ориентированных графов и управления состоянием. Для большинства разработчиков, только начинающих работать с многоагентными системами, CrewAI — более быстрый путь к рабочему прототипу.
Выводы
CrewAI предлагает практичную платформу для управления многоагентными системами. Будь то парсинг контента или делегирование задач — этот фреймворк поддерживает сотрудничество между агентами и помогает им адаптироваться и развиваться.
Интегрируя инструменты и предоставляя организованную структуру, CrewAI упрощает разработчикам управление взаимодействиями агентов, распределением задач и обеспечением оптимальной производительности.