Accéder au contenu principal

CrewAI : Un guide avec des exemples de systèmes d'agents multi IA

CrewAI est une plateforme qui permet aux développeurs de construire et de déployer des flux de travail automatisés en utilisant plusieurs agents d'intelligence artificielle qui collaborent pour effectuer des tâches complexes.
Actualisé 16 janv. 2025  · 9 min de lecture

Les agents d'IA sont des assistants capables d'effectuer des tâches et d'interagir avec le monde. Contrairement aux systèmes traditionnels qui suivent des règles fixes, ils peuvent apprendre et s'adapter à de nouvelles situations. Considérez-les comme des robots intelligents qui vous aident à accomplir toute une série de tâches.

Mais qu'est-ce qui différencie les agents d'intelligence artificielle des autres entités d'intelligence artificielle, comme les populaires modèles de langage dont nous avons tous entendu parler ?

Dans cet article, je vais répondre à cette question et vous présenter CrewAI, un framework Python gratuit et open-source conçu pour simplifier le développement de systèmes d'IA multi-agents. Nous étudierons la distinction entre les agents et les modèles de langage, nous discuterons des raisons pour lesquelles les cadres d'agents sont importants pour la construction d'applications d'IA. construire des applications d'IAet nous montrerons comment CrewAI permet aux agents de collaborer et d'obtenir d'excellents résultats.

Agents d'IA vs. LLMs

Démystifions un malentendu courant concernant la différence entre les agents et les grands modèles linguistiques (LLM). Tous deux appartiennent à la famille de l'intelligence artificielle, mais ils possèdent des capacités distinctes.

Agents d'IA vs LLM

Les modèles linguistiques, tels que ChatGPT et Geminisont très habiles dans l'utilisation du langage. Ils ont suivi une formation approfondie sur de grandes quantités de textes et de codes, ce qui les a dotés de la capacité de comprendre et de produire un langage qui ressemble beaucoup à la communication humaine.

Les LLM sont d'habiles faiseurs de mots de l'intelligence artificielle, produisant un large éventail de contenus, y compris des traductions, des résumés, des récits créatifs ou même de la poésie. Leur champ d'application est généralement limité auxtâches liées à la langue .

Les agents, quant à eux, se concentrent principalement sur l'action. Ils sont capables de naviguer, d'interagir avec des objets et de prendre des décisions sur la base de leurs perceptions. 

En bref, les modèles linguistiques sont des cerveaux et les agents sont des mains. Ensemble, ils forment un duo puissant.

Les agents jouant un rôle essentiel dans les applications d'IA, comment gérer leur complexité lorsque plusieurs agents doivent travailler ensemble ? C'est là qu'interviennent les cadres d'agents.

La nécessité d'un cadre pour les agents

Le besoin de cadres d'agents découle de la complexité croissante des applications de l'IA, en particulier celles qui impliquent plusieurs agents travaillant en collaboration pour atteindre un objectif commun. Voyons pourquoi les cadres d'agents sont essentiels.   

Orchestration et coordination

À mesure que les systèmes d'IA prennent de l'ampleur, ils intègrent souvent de nombreux agents dotés de capacités diverses. Il devient de plus en plus difficile de gérer ces interactions et de s'assurer qu'elles fonctionnent harmonieusement.

Les cadres d'agents offrent un environnement structuré qui permet d'orchestrer les activités des agents, de définir leurs rôles et responsabilités et d'améliorer la communication.

Dans les systèmes multi-agents, un aspect important est l'attribution efficace des tâches aux agents les plus appropriés et la gestion efficace des ressources partagées. Les cadres d'agents fournissent des mécanismes dynamiques pour la répartition des tâches, la négociation des ressources et la résolution des conflits.

Modularité et réutilisation

Les cadres d'agents favorisent une approche modulaire du développement de l'IA, où les agents sont conçus et mis en œuvre comme des composants indépendants. Cette modularité permet une meilleure organisation du code et la réutilisation des modules d'agents dans différents projets, ce qui simplifie le développement et la maintenance de systèmes complexes. Grâce à cette structure basée sur des composants, les développeurs d'IA peuvent se concentrer sur des agents individuels sans perturber le système dans son ensemble.

En outre, les cadres d'agents adoptent souvent une architecture basée sur les rôles, permettant aux développeurs d'attribuer des rôles spécifiques aux agents, qui définissent leurs capacités et leurs autorisations. Cette conception basée sur les rôles aboutit à un système mieux organisé et plus facile à gérer, dans lequel des agents peuvent être ajoutés, supprimés ou modifiés avec un impact minimal sur l'architecture globale. Cette flexibilité garantit que les systèmes peuvent évoluer et s'adapter à de nouvelles exigences sans qu'il soit nécessaire de procéder à une réorganisation importante.

Capacité d'adaptation et d'apprentissage

Les environnements réels sont souvent dynamiques, imprévisibles et en constante évolution. Les cadres d'agents permettent aux agents de percevoir les changements dans leur environnement et d'adapter leur comportement en conséquence. Cette capacité d'adaptation permet aux agents de fonctionner efficacement même dans des scénarios complexes et en constante évolution, ce qui les rend plus aptes à relever les défis du monde réel.

En outre, les cadres d'agents intègrent souvent des mécanismes d'apprentissage qui permettent aux agents d'améliorer leurs performances au fil du temps. En tirant les leçons du retour d'expérience, les agents peuvent continuellement optimiser leurs processus de prise de décision et s'adapter aux nouveaux défis qui se présentent. Cette amélioration continue permet aux agents de gagner en efficacité et en valeur, contribuant ainsi à l'efficacité et à la réussite du système à long terme.

En parlant de frameworks d'agents, nous allons vous en présenter un qui fait des vagues dans la communauté de l'IA : CrewAI.

Qu'est-ce que CrewAI ?

CrewAI est un framework Python open-source conçu pour soutenir le développement et la gestion de systèmes d'IA multi-agents.

CrewAI améliore ces systèmes d'IA en attribuant des rôles spécifiques, en permettant une prise de décision autonome et en facilitant la communication entre les agents. Cette approche leur permet de s'attaquer à des problèmes complexes plus efficacement que des agents travaillant seuls.

Logo de CrewAI

Ce cadre se compose d'une série d'outils, notamment des moteurs de recherche sur le web et des modèles linguistiques, qui permettent aux agents d'entrer en contact avec le monde extérieur, de collecter des informations et d'agir pour atteindre leurs objectifs.

La conception et l'évolutivité de CrewAI en font un outil idéal pour le développement d'applications multi-agents simples et complexes, encourageant une méthode collaborative pour relever les défis et prendre des décisions au sein des systèmes d'IA.

Examinons quelques-unes des principales caractéristiques qui font de CrewAI un outil puissant pour la construction de systèmes multi-agents.

  • Orchestration d'agents : CrewAI veille à ce que chaque agent connaisse son rôle dans la performance. Il fournit les outils nécessaires pour définir et coordonner les comportements des agents, afin de s'assurer que tout le monde joue en synchronisation.
  • Architecture basée sur les rôles : Comme pour l'attribution de différents instruments aux musiciens, CrewAI vous permet d'attribuer des rôles spécifiques aux agents, en définissant leurs capacités et leurs autorisations. Cela permet de créer un système modulaire et bien structuré, même lorsque les choses deviennent complexes.
  • Une communication souple : CrewAI prend en charge différents canaux de communication, ce qui permet aux agents d'échanger des informations en toute transparence. Pensez-y comme si vous disposiez d'un chat privé, d'une discussion de groupe et d'un mégaphone en un seul et même endroit.
  • Intégration des outils : CrewAI permet aux agents d'interagir avec le monde grâce à différents outils. Ces outils permettent aux agents d'effectuer des recherches sur le web, de comprendre le langage, d'analyser des données et d'effectuer des tâches personnalisées.
  • Évolutivité : CrewAI est conçu pour s'adapter sans effort, garantissant que votre système multi-agents reste réactif et efficace au fur et à mesure de sa croissance.

Mais quels sont les avantages que CrewAI apporte au tableau ? Voyons quels sont ses avantages.

Avantages de l'utilisation de CrewAI

Crew.ai permet à plusieurs agents d'intelligence artificielle de collaborer, de partager leurs connaissances et de coordonner leurs actions en vue d'atteindre un objectif commun.

En automatisant la distribution des tâches et la gestion des ressources, Crew.ai permet aux agents de se concentrer sur leurs rôles spécifiques avec un minimum de frais généraux.

Le cadre prend également en charge l'adaptabilité, ce qui permet aux agents d'ajuster leur comportement en fonction de l'évolution des conditions ou des objectifs.

En outre, Crew.ai simplifie le processus de développement grâce à une plateforme conviviale pour la création et la gestion de systèmes multi-agents.

avantages de CrewAI

Un autre point fort de CrewAI est son intégration avec une large gamme d'outils. Cela étend les capacités des agents, leur permettant d'interagir avec le monde extérieur et de recueillir des informations.

CrewAI prend en charge des outils tels que des moteurs de recherche web, des modèles de langage, des outils d'analyse de données et même des fonctionnalités personnalisées. Cela permet aux agents d'effectuer des tâches qui dépassent leurs capacités de base, telles que la recherche d'informations sur le web ou l'analyse de données complexes.

Pratique : Construire un outil de recherche sur le web avec CrewAI

Retroussons nos manches et construisons un flux de travail en utilisant les outils de CrewAI pour récupérer le contenu du site web et ensuite effectuer le RAG sur celui-ci. 

Nous devons écrire le code qui permettra à l'outil de fonctionner. Avant de commencer, installons les paquets crewai-tools et crewai en utilisant pip:

pip install crewai-tools crewai

Une fois les paquets installés, suivez les étapes ci-dessous. Dans cet exemple, nous utiliserons trois outils différents : ScrapeWebsiteTool pour récupérer le site web, FileWriterTool pour écrire le fichier et TXTSearchTool pour rechercher RAG dans le contexte. Commençons.

Étape 1 : Scraping d'un site web

Nous commençons par importer les bibliothèques nécessaires et par initialiser le site ScrapeWebsiteTool. Cet outil est utilisé pour extraire le contenu d'un site web. Dans ce cas, il est paramétré pour récupérer le contenu de la page "Artificial Intelligence" de Wikipedia :

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)

Étape 2 : Écrire le texte extrait dans un fichier

Nous utilisons maintenant la fonction FileWriterTool pour enregistrer le texte extrait dans un fichier nommé 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)

Étape 3 : Configurer l'outil de recherche de texte

Nous avons mis en place un autre outil pour rechercher le contenu du fichier ai.txt que nous venons d'enregistrer. Nous avons également défini la variable d'environnement pour la clé API OpenAI.

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')

Étape 4 : Créer un agent pour la tâche et l'exécuter

Nous créons un agent analyste de données ayant le rôle d'un éducateur. La tâche de cet agent est de répondre à la question "Qu'est-ce que le traitement du langage naturel ?" sur la base du texte que nous avons recherché dans le fichier.

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="Understand the topic and give the correct response",
    tools=[tool],
    agent=data_analyst,
    expected_output='Give a correct response'
)

crew = Crew(
    agents=[data_analyst],
    tasks=[test_task]
)

output = crew.kickoff()

Sortie :

sortie de l'agent d'équipage

Conclusion

CrewAI offre une plateforme pratique pour la gestion des systèmes multi-agents. Qu'il s'agisse de récupérer du contenu ou de déléguer des tâches, ce cadre favorise la collaboration entre les agents et les aide à s'adapter et à s'améliorer.

En intégrant des outils et en fournissant une structure organisée, CrewAI permet aux développeurs de gérer plus facilement les interactions entre les agents, de répartir les tâches et de garantir des performances optimales.

Développer des applications d'IA

Apprenez à créer des applications d'IA à l'aide de l'API OpenAI.
Commencez à Upskiller gratuitement

Bhavishya Pandit's photo
Author
Bhavishya Pandit
LinkedIn
Twitter

Ingénieur GenAI senior et créateur de contenu qui a recueilli 20 millions de vues en partageant ses connaissances sur la GenAI et la science des données.

Sujets

Apprenez l'IA avec ces cours !

Certification disponible

cours

Développer des systèmes d'IA avec l'API OpenAI

3 hr
3K
Tirez parti de l'API OpenAI pour préparer vos applications d'IA à la production.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus