CrewAI : передовая платформа для организации ролевых игр, автономных агентов искусственного интеллекта. Способствуя совместной разведке, CrewAI позволяет агентам беспрепятственно работать вместе, решая сложные задачи.
Домашняя страница | Документация | Чат с документами | Примеры | Дискурс
Почему CrewAI?
Начиная
Ключевые особенности
Примеры
Краткое руководство
Напишите описание вакансии
Планировщик поездок
Анализ акций
Подключение вашей команды к модели
Сравните CrewAI
Вклад
Телеметрия
Лицензия
Возможности сотрудничества ИИ могут предложить слишком многое. CrewAI предназначен для того, чтобы позволить агентам ИИ брать на себя роли, разделять цели и действовать как сплоченное подразделение — так же, как хорошо слаженная команда. Независимо от того, создаете ли вы платформу интеллектуального помощника, автоматизированный ансамбль обслуживания клиентов или многоагентную исследовательскую группу, CrewAI обеспечивает основу для сложных межагентных взаимодействий.
Чтобы начать работу с CrewAI, выполните следующие простые шаги:
Убедитесь, что в вашей системе установлен Python >=3.10 <=3.13. CrewAI использует UV для управления зависимостями и обработки пакетов, обеспечивая простую настройку и выполнение.
Сначала установите CrewAI:
пип установить экипажай
Если вы хотите установить пакет «crewai» вместе с его дополнительными функциями, включающими дополнительные инструменты для агентов, вы можете сделать это с помощью следующей команды:
pip install 'crewai[tools]'
Приведенная выше команда устанавливает базовый пакет, а также добавляет дополнительные компоненты, для работы которых требуется больше зависимостей.
Чтобы создать новый проект CrewAI, выполните следующую команду CLI (интерфейс командной строки):
Crewai создать команду <имя_проекта>
Эта команда создает новую папку проекта со следующей структурой:
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
Теперь вы можете начать развивать свою команду, редактируя файлы в папке src/my_project
. Файл main.py
— это точка входа в проект, файл crew.py
— это место, где вы определяете свою команду, файл agents.yaml
— это место, где вы определяете своих агентов, а файл tasks.yaml
— это место, где вы определяете свои задачи.
Измените src/my_project/config/agents.yaml
чтобы определить своих агентов.
Измените src/my_project/config/tasks.yaml
чтобы определить свои задачи.
Измените src/my_project/crew.py
добавив свою собственную логику, инструменты и конкретные аргументы.
Измените src/my_project/main.py
чтобы добавить пользовательские входные данные для ваших агентов и задач.
Добавьте переменные среды в файл .env
.
Создайте свою команду:
Crewai создать команду
Измените файлы по мере необходимости в соответствии с вашим вариантом использования:
агенты.yaml
# src/my_project/config/agents.yamlresearcher: role: > Цель старшего исследователя данных {topic}: > Раскрыть передовые разработки в предыстории {topic}: > Вы опытный исследователь, умеющий раскрывать последние разработки в области {тема}. Известен своей способностью находить самую актуальную информацию и представлять ее ясно и кратко. report_analyst: role: > {topic} Цель аналитика-отчетника: > Создание подробных отчетов на основе анализа данных {topic} и предыстории результатов исследований: > Вы дотошный аналитик с острым вниманием к деталям. Вы известны своей способностью превращать сложные данные в четкие и краткие отчеты, что позволяет другим легко понять предоставленную вами информацию и действовать на ее основе.
задачи.yaml
# src/my_project/config/tasks.yamlresearch_task: описание: > Проведите тщательное исследование по {теме}. Убедитесь, что вы нашли любую интересную и актуальную информацию, учитывая, что текущий год – 2024. Ожидаемый_выход: > Список из 10 наиболее важных пунктов соответствующая информация об агенте {topic}: Researcherreporting_task: описание: > Просмотрите полученный контекст и разверните каждую тему в полный раздел для отчета. Убедитесь, что отчет подробный и содержит всю необходимую информацию. ожидаемый_выход:> Полноценные отчеты по основным темам, каждый из которых содержит полный раздел информации. Отформатировано как уценка без агента '```': report_analyst выходной_файл: report.md
Crew.py
# src/my_project/crew.pyfrom Crew.py import Agent, Crew, Process, Taskfrom CrewAi.project import CrewBase, Agent, Crew, Taskfrom CrewAI_tools import SerperDevTool@CrewBaseclass LatestAiDevelopmentCrew(): """LatestAiDevelopment Crew"""@agentdef Researcher(self ) -> Агент: вернуть агент( config=self.agents_config['исследователь'], verbose=True, инструменты=[SerperDevTool()] ) @agentdef report_analyst(self) -> Агент: return Agent( config=self.agents_config['reporting_analyst'], verbose=True ) @taskdef Research_task(self) -> Задача: return Task( config=self.tasks_config['research_task'], ) @taskdef report_task(self) -> Задача: return Task( config=self.tasks_config['reporting_task'], output_file='report.md' ) @crewdef Crew(self) -> Crew: """Создает команду LatestAiDevelopment"""return Crew( Agents=self.agents, # Автоматически создается @agent Decoratortasks=self.tasks, # Автоматически создается @task декораторпроцесс = Process.sequential, подробный = True, )
main.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfrom late_ai_development.crew import LatestAiDevelopmentCrewdef run():""" Запускаем команду. """inputs = {'topic': 'AI Agents'}LatestAiDevelopmentCrew ().crew().kickoff(входные данные=входные данные)
Прежде чем запускать свою команду, убедитесь, что в вашем файле .env
в качестве переменных среды установлены следующие ключи:
Ключ API OpenAI (или другой ключ API LLM): OPENAI_API_KEY=sk-...
Ключ API Serper.dev: SERPER_API_KEY=YOUR_KEY_HERE
Заблокируйте зависимости и установите их с помощью команды CLI, но сначала перейдите в каталог вашего проекта:
компакт-диск мой_проект установка экипажа (необязательно)
Чтобы запустить свою команду, выполните следующую команду в корне вашего проекта:
экипажай беги
или
python src/my_project/main.py
Если ошибка возникает из-за использования поэзии, выполните следующую команду, чтобы обновить пакет Crewai:
обновление команды
Вы должны увидеть выходные данные в консоли, а файл report.md
должен быть создан в корне вашего проекта с полным окончательным отчетом.
В дополнение к последовательному процессу вы можете использовать иерархический процесс, который автоматически назначает менеджера определенной команде для правильной координации планирования и выполнения задач посредством делегирования и проверки результатов. Подробнее о процессах смотрите здесь.
Ролевая разработка агентов : настройте агентов с конкретными ролями, целями и инструментами.
Автономное межагентское делегирование : агенты могут автономно делегировать задачи и задавать вопросы между собой, повышая эффективность решения проблем.
Гибкое управление задачами . Определяйте задачи с помощью настраиваемых инструментов и динамически назначайте их агентам.
Управление процессами : в настоящее время поддерживается только sequential
выполнение задач и hierarchical
процессы, но разрабатываются более сложные процессы, такие как согласованные и автономные.
Сохранить выходные данные в файл : сохраните выходные данные отдельных задач в файл, чтобы можно было использовать их позже.
Анализировать выходные данные как Pydantic или Json : анализировать выходные данные отдельных задач как модель Pydantic или как Json, если хотите.
Работает с моделями с открытым исходным кодом . Управляйте своей командой с помощью открытого искусственного интеллекта или моделей с открытым исходным кодом. Подробную информацию о настройке подключений ваших агентов к моделям, даже работающим локально, можно найти на странице «Подключение CrewAI к LLM»!
Вы можете протестировать различные примеры работы ИИ-команд из реальной жизни в репозитории CrewAI-examples:
Генератор целевых страниц
Участие человека в исполнении
Планировщик поездок
Анализ акций
Ознакомьтесь с кодом этого примера или посмотрите видео ниже:
Ознакомьтесь с кодом этого примера или посмотрите видео ниже:
Ознакомьтесь с кодом этого примера или посмотрите видео ниже:
CrewAI поддерживает использование различных LLM с помощью различных вариантов подключения. По умолчанию ваши агенты будут использовать API OpenAI при запросе модели. Однако есть несколько других способов разрешить вашим агентам подключаться к моделям. Например, вы можете настроить своих агентов на использование локальной модели с помощью инструмента Ollama.
Подробную информацию о настройке подключений ваших агентов к моделям см. на странице «Подключение CrewAI к LLM».
Преимущество CrewAI : CrewAI создан с учетом производительности. Он предлагает гибкость диалоговых агентов Autogen и структурированный процессный подход ChatDev, но без жесткости. Процессы CrewAI разработаны так, чтобы быть динамичными и адаптируемыми, легко вписываясь в рабочие процессы разработки и производства.
Autogen : Хотя Autogen хорошо справляется с созданием диалоговых агентов, способных работать вместе, ему не хватает внутренней концепции процесса. В Autogen организация взаимодействия агентов требует дополнительного программирования, которое может стать сложным и громоздким по мере роста масштаба задач.
ChatDev : ChatDev привнес идею процессов в сферу агентов ИИ, но ее реализация довольно жесткая. Настройки в ChatDev ограничены и не ориентированы на производственные среды, что может препятствовать масштабируемости и гибкости в реальных приложениях.
CrewAI имеет открытый исходный код, и мы приветствуем вклад. Если вы хотите внести свой вклад, пожалуйста:
Форкните репозиторий.
Создайте новую ветку для своей функции.
Добавьте свою функцию или улучшение.
Отправьте запрос на вытягивание.
Мы ценим ваш вклад!
УФ-блокировка УФ-синхронизация
уф венв
предварительная установка
уф запустите pytest.
uvx mypy
УФ сборка
pip install dist/*.tar.gz
CrewAI использует анонимную телеметрию для сбора данных об использовании с основной целью помочь нам улучшить библиотеку, сосредоточив наши усилия на наиболее часто используемых функциях, интеграциях и инструментах.
Крайне важно понимать, что НИКАКИЕ данные не собираются , касающиеся подсказок, описаний задач, предыстории или целей агентов, использования инструментов, вызовов API, ответов, любых данных, обрабатываемых агентами, а также секретов и переменных среды, за исключением упомянутых условий. . Когда share_crew
включена, собираются подробные данные, включая описания задач, предысторию или цели агентов, а также другие конкретные атрибуты, чтобы обеспечить более глубокое понимание при соблюдении конфиденциальности пользователей. Мы не предлагаем способ отключить его сейчас, но мы сделаем это в будущем.
Собранные данные включают в себя:
Версия CrewAI
Таким образом, мы можем понять, сколько пользователей используют последнюю версию.
Версия Python
Таким образом, мы можем решить, какие версии лучше поддерживать.
Общая ОС (например, количество процессоров, macOS/Windows/Linux)
Итак, мы знаем, на какой ОС нам следует сосредоточиться, и можем ли мы создать конкретные функции, связанные с ОС.
Количество агентов и задач в экипаже
Поэтому мы обязательно проводим внутреннее тестирование с похожими вариантами использования и обучаем людей лучшим практикам.
Используемый процесс работы экипажа
Понять, на чем нам следует сосредоточить свои усилия
Если агенты используют память или разрешают делегирование
Узнайте, улучшили ли мы функции или, возможно, даже отказались от них.
Если Задачи выполняются параллельно или последовательно
Понять, стоит ли нам больше сосредоточиться на параллельном выполнении
Используемая языковая модель
Улучшена поддержка большинства используемых языков.
Роли агентов в команде
Понимать высокоуровневые варианты использования, чтобы мы могли создавать более эффективные инструменты, интеграции и примеры использования.
Доступные названия инструментов
Выясните, какие из общедоступных инструментов используются чаще всего, чтобы мы могли их улучшить.
Пользователи могут подписаться на дополнительную телеметрию и поделиться полными данными телеметрии, установив для атрибута share_crew
значение True
в своих командах. Включение share_crew
приводит к сбору подробных данных о команде и выполнении задач, включая goal
, backstory
, context
и output
данные задач. Это позволяет глубже понять модели использования, уважая при этом выбор пользователя по обмену информацией.
CrewAI распространяется под лицензией MIT.
Ответ: CrewAI — это передовая платформа для управления ролевыми автономными агентами искусственного интеллекта. Это позволяет агентам беспрепятственно работать вместе, решая сложные задачи посредством совместного анализа.
О: Вы можете установить CrewAI с помощью pip:
пип установить экипажай
В качестве дополнительных инструментов используйте:
pip install 'crewai[tools]'
О: Да, CrewAI поддерживает различные LLM, включая локальные модели. Вы можете настроить своих агентов на использование локальных моделей с помощью таких инструментов, как Ollama & LM Studio. Дополнительную информацию см. в документации LLM Connections.
О: Ключевые функции включают в себя создание агентов на основе ролей, автономное межагентское делегирование, гибкое управление задачами, управляемое процессами выполнение, сохранение выходных данных в виде файлов и совместимость как с открытыми, так и с проприетарными моделями.
О: CrewAI разработан с учетом производственных потребностей и предлагает гибкость, аналогичную диалоговым агентам Autogen и структурированным процессам, таким как ChatDev, но с большей адаптируемостью для реальных приложений.
О: Да, CrewAI имеет открытый исходный код и приветствует вклад сообщества.
О: CrewAI использует анонимную телеметрию для сбора данных об использовании в целях улучшения. Никакие конфиденциальные данные (например, подсказки, описания задач или вызовы API) не собираются. Пользователи могут дать согласие на обмен более подробными данными, установив для своих share_crew=True
.
О: В репозитории CrewAI-examples вы можете найти различные примеры из реальной жизни, включая планировщики поездок, инструменты анализа запасов и многое другое.
О: Материалы приветствуются! Вы можете разветвить репозиторий, создать новую ветку для своей функции, добавить свое улучшение и отправить запрос на включение. Дополнительную информацию можно найти в разделе «Вклад» в README.