
Comment créer votre propre système d’IA agentique à l’aide de CrewAI
L’IA ?
L’IA agentique, initialement présentée par Andrew Ng en tant que « partenaires » de l’IA qui planifier, exécuter et accomplir des tâches complexesest un nouveau concept né de l’explosion des applications d’IA générative. Le terme a rapidement gagné en popularité depuis fin juillet 2025, selon son volume de recherche dans Google Trends.

Malgré sa parution récente, l’article de recherche du BCG «Comment l’IA agentique transforme les plates-formes d’entreprise» indique que les organisations ont activement adopté les flux de travail Agentic AI pour transformer leurs principales plates-formes technologiques et contribuer à l’automatisation du marketing, aux services clients, à la productivité sur le lieu de travail, etc., conduisant à des cycles de flux de travail 20 à 30 % plus rapides.
Des LLM aux systèmes multi-agents
Ce qui distingue un système d’IA agentique des systèmes d’automatisation traditionnels, c’est son autonomie pour planifier les actions et la logique, à condition d’atteindre un objectif spécifique et prédéfini. En conséquence, il existe une orchestration moins rigide ou des trajectoires décisionnelles prédéterminées régissant les étapes intermédiaires de l’agent. »Mettre en synergie le raisonnement et l’action dans les modèles linguistiques» est considéré comme le document fondateur qui formalise le cadre initial de l’agent LLM « ReAct », composé de trois éléments clés : actes, pensées et observations. Si vous êtes intéressé par plus de détails sur le fonctionnement de ReAct, veuillez consulter mon article de blog « 6 stratégies de personnalisation LLM courantes brièvement expliquées ».
Avec la croissance rapide de ce domaine, il devient évident qu’un seul agent LLM ne peut pas répondre à la forte demande d’applications et d’intégrations d’IA. Par conséquent, les systèmes multi-agents sont développés pour orchestrer les fonctionnalités de l’agent dans un flux de travail dynamique. Alors que chaque instance d’agent est basée sur des rôles et axée sur des tâches, en mettant l’accent sur la réalisation d’un objectif unique, un système multi-agents est multifonctionnel et plus généralisé dans ses capacités. L’article de LangChain «Analyse comparative des architectures multi-agents » a montré que lorsque le nombre de domaines de connaissances requis dans une tâche augmente, les performances d’un système mono-agent se détériorent tandis qu’un système multi-agents peut atteindre des performances durables en réduisant la quantité de bruit alimentant chaque agent individuel.
Créez un système d’IA agentique simple à l’aide de CrewAI
CrewAI est un framework Python open source qui permet aux développeurs de créer des équipes d’agents d’IA collaboratives et prêtes pour la production pour s’attaquer à des tâches complexes. Comparé à d’autres frameworks d’agents populaires tels que LangChain et LlamaIndex, il se concentre davantage sur les collaborations multi-agents basées sur les rôles, tout en offrant moins de flexibilité pour une architecture agentique complexe. Bien qu’il s’agisse d’un cadre relativement jeune, il gagne en popularité à partir de juillet 2025 en raison de sa facilité de mise en œuvre.
Nous pouvons utiliser l’analogie avec l’embauche d’une équipe de projet interfonctionnelle (ou d’un Équipage) lors de l’utilisation du framework CrewAI pour créer le système Agentic, où chaque IA Agent dans l’équipage a un rôle spécifique capable d’effectuer plusieurs tâches liées au rôle Tâches. Les agents sont équipés de Outils qui leur facilitent l’accomplissement des tâches.
Maintenant que nous avons couvert les concepts de base du framework CrewAI (Agent, Tâche, Outil et Crew), examinons un exemple de code pour créer un système agent minimalement viable.
1. Installez CrewAI et configurez les variables d’environnement à l’aide des commandes bash ci-dessous, par exemple, exportez la clé API OpenAI en tant que variable d’environnement pour accéder aux modèles OpenAI GPT.
pip install crewai
pip install 'crewai[tools]'
export OPENAI_API_KEY='your-key-here'
2. Créer des outils à partir de CrewAI liste d’outils intégréepar exemple appliquer DirectoryReadTool() pour accéder à un répertoire, et FileReadTool() pour lire les fichiers stockés dans le répertoire.
from crewai_tools import DirectoryReadTool, FileReadTool
doc_tool = DirectoryReadTool(directory='./articles')
file_tool = FileReadTool()
3. Initiez un Agent en précisant son rôle, son objectif et en lui fournissant des outils.
from crewai import Agent
researcher = Agent(
role="Researcher",
goal="Find information on any topic based on the provided files",
tools=[doc_tool, file_tool]
)
4. Créez une tâche en fournissant une description et affectez un agent pour exécuter la tâche.
from crewai import Task
research_task = Task(
description="Research the latest AI trends",
agent=researcher
)
5. Construisez l’équipage en combinant vos agents et vos tâches. Démarrez l’exécution du workflow en utilisant kickoff().
from crewai import Crew
crew = Crew(
agents=[researcher],
tasks=[research_task]
)
result = crew.kickoff()
Développer une équipe de marketing agent sur les réseaux sociaux
0. Objectifs du projet
Développons cet exemple simple de CrewAI en créant une équipe de marketing sur les réseaux sociaux via les procédures étape par étape ci-dessous. Cette équipe générera des articles de blog basés sur le sujet d’intérêt de l’utilisateur et créera des messages de campagne sur mesure à partager sur différentes plateformes de médias sociaux.

Un exemple de résultat si nous interrogeons l’équipage sur le sujet « Agentic AI ».
Article de blog

Message X(Twitter)Discover the Future of Agentic AI! Have you ever wondered how Agentic AI is set to redefine our interaction with technology by 2025? Understanding AI trends for 2025 is not only crucial for technology enthusiasts but essential for businesses across various sectors. #AgenticAI #AITrends
Message YouTubeExplore Groundbreaking Trends in Agentic AI! 🌟 Uncover how Agentic AI is transforming industries in ways you never imagined! By 2025, these revolutionary trends will reshape how we engage with technologies, particularly in banking and finance. Are you ready to embrace the future? Don't forget to read our latest blog post and subscribe for more insights!
Message de sous-pileThe Changing Landscape of Agentic AI: What You Need to Know In 2025, the evolving world of Agentic AI is set to reshape industries, particularly in finance and banking. This blog covers key trends such as the transformational potential of agentic AI, new regulatory frameworks, and significant technological advancements. How can businesses successfully integrate agentic AI while managing risks? What does the future of this technology mean for consumers? Join the dialogue in our latest post, and let's explore how these innovations will impact our future together!
1. Configuration de l’environnement du projet
Suivez le Démarrage rapide de CrewAI guide pour configurer l’environnement de développement. Nous utilisons la structure de répertoires suivante pour ce projet.
├── README.md
├── pyproject.toml
├── requirements.txt
├── src
│ └── social_media_agent
│ ├── __init__.py
│ ├── crew.py
│ ├── main.py
│ └── tools
│ ├── __init__.py
│ ├── browser_tools.py
│ └── keyword_tool.py
└── uv.lock
2. Développer des outils
Le premier outil que nous ajoutons à l’équipage est WebsiteSearchToolqui est un outil intégré mis en œuvre par CrewAI pour effectuer des recherches sémantiques dans le contenu des sites Web.
Nous avons juste besoin de quelques lignes de code pour installer le package d’outils Crewai et utiliser le WebsiteSearchTool. Cet outil est accessible à l’agent d’étude de marché pour trouver les dernières tendances du marché ou les actualités du secteur liées à un sujet donné.
pip install 'crewai[tools]'
from crewai_tools import WebsiteSearchTool
web_search_tool = WebsiteSearchTool()
La capture d’écran ci-dessous montre la sortie de web_search_tool lorsqu’on lui donne le sujet « Vidéos YouTube ».

Ensuite, nous allons créer un personnalisé keyword_tool en héritant de la classe BaseTool et en utilisant le SerpApi (API Google Tendances). Comme le montre le code ci-dessous, cet outil génère les requêtes tendances les plus recherchées liées au mot-clé d’entrée. Cet outil est accessible à l’agent spécialisé en marketing pour étudier les mots-clés tendances et affiner l’article de blog pour l’optimisation des moteurs de recherche. Nous verrons un exemple de sortie de l’outil de mots clés dans la section suivante.
import os
import json
from dotenv import load_dotenv
from crewai.tools import BaseTool
from serpapi.google_search import GoogleSearch
load_dotenv()
api_key = os.getenv('SERPAPI_API_KEY')
class KeywordTool(BaseTool):
name: str = "Trending Keyword Tool"
description: str = "Get search volume of related trending keywords."
def _run(self, keyword: str) -> str:
params = {
'engine': 'google_trends',
'q': keyword,
'data_type': 'RELATED_QUERIES',
'api_key': api_key
}
search = GoogleSearch(params)
try:
rising_kws = search.get_dict()['related_queries']['rising']
top_kws = search.get_dict()['related_queries']['top']
return f"""
Rising keywords: {rising_kws} \n
Top keywords: {top_kws}
"""
except Exception as e:
return f"An unexpected error occurred: {str(e)}"
3. Définir la classe d’équipage

Dans le script crew.py, nous définissons notre équipe de médias sociaux avec trois agents :chercheur_de marché, content_creator, spécialiste_marketing– et assignez des tâches à chacun. Nous initialisons le SocialMediaCrew() classe en utilisant le @CrewBase décorateur. Le topic l’attribut transmet les entrées de l’utilisateur sur son sujet d’intérêt, et llm , model_name Les attributs spécifient le modèle par défaut utilisé tout au long du flux de travail Crew.
@CrewBase
class SocialMediaCrew():
def __init__(self, topic: str):
"""
Initialize the SocialMediaCrew with a specific topic.
Args:
topic (str): The main topic or subject for social media content generation
"""
self.topic = topic
self.model_name = 'openai/gpt-4o'
self.llm = LLM(model=self.model_name,temperature=0)
4. Définir les agents
Les agents CrewAI s’appuient sur trois paramètres essentiels :rôle, objectif et histoire—pour définir leurs caractéristiques ainsi que le contexte dans lequel ils opèrent. De plus, nous fournissons aux agents des informations pertinentes tools pour faciliter leurs travaux et autres paramètres afin de contrôler la consommation de ressources de l’agent appelant et d’éviter l’utilisation inutile de jetons LLM.
Par exemple, nous définissons le « Agent Spécialiste Marketing » à l’aide du code ci-dessous. Commencez par utiliser @agent décorateur. Définir le rôle de « Spécialiste du marketing » et donner accès à keyword_tool que nous avons développé précédemment, afin que le spécialiste du marketing puisse rechercher les mots-clés tendances afin d’affiner le contenu du blog pour des performances de référencement optimales.
Visitez notre Dépôt GitHub pour le code complet des autres définitions d’agent.
@CrewBase
class SocialMediaCrew():
def __init__(self, topic: str):
"""
Initialize the SocialMediaCrew with a specific topic.
Args:
topic (str): The main topic or subject for social media content generation
"""
self.topic = topic
self.model_name = 'openai/gpt-4o'
self.llm = LLM(model=self.model_name,temperature=0)
Paramètre verbose à true nous permet d’utiliser la fonctionnalité de traçabilité de CrewAI pour observer les résultats intermédiaires tout au long de l’appel de l’agent. Les captures d’écran ci-dessous montrent le processus de réflexion de l’agent « Spécialiste du marketing » utilisant lekeyword_tool pour rechercher les « tendances YouTube », ainsi que l’article de blog optimisé pour le référencement basé sur les résultats de l’outil.
Résultat intermédiaire du spécialiste du marketing


Une approche alternative pour définir l’agent consiste à stocker le contexte de l’agent dans un fichier YAML en utilisant le format ci-dessous, offrant une flexibilité supplémentaire d’expérimentation et une itération sur l’ingénierie rapide si nécessaire.
Exemple agent.yaml
marketing_specialist:
role: >
"Marketing Specialist"
goal: >
"Improve the blog post to optimize for Search Engine Optimization using the Keyword Tool and create customized, channel-specific messages for social media distributions"
backstory: >
"A skilled Marketing Specialist with expertise in SEO and social media campaign design"
5. Définir les tâches
Si un agent est considéré comme l’employé (« qui ») spécialisé dans un domaine (par exemple la création de contenu, la recherche), incarné par une personnalité ou des caractéristiques, alors les tâches sont les actions (« quoi ») que l’employé effectue avec des objectifs et des attentes de résultat prédéfinis.
Dans CrewAI, une tâche est configurée à l’aide de description, expected_outputet le paramètre facultatif output_file enregistre la sortie intermédiaire sous forme de fichier. Alternativement, il est également recommandé d’utiliser un fichier YAML autonome pour fournir un moyen plus propre et maintenable de définir les tâches. Dans l’extrait de code ci-dessous, nous fournissons des instructions précises à l’équipage pour effectuer quatre tâches et les assignons à des agents possédant les compétences pertinentes. Nous enregistrons également le résultat de chaque tâche dans le dossier de travail pour faciliter la comparaison des différentes versions de résultat.
research: recherche sur la tendance du marché du sujet donné ; confié à l’étude de marché.write: rédigez un article de blog engageant ; attribué au créateur de contenu.refine: affiner l’article de blog en fonction d’une performance SEO optimale ; confié au spécialiste du marketing.distribute: générer des messages spécifiques à la plateforme à diffuser sur chaque canal de médias sociaux ; confié au spécialiste du marketing.
@task
def research(self) -> Task:
return Task(
description=f'Research the 2025 trends in the {self.topic} area and provide a summary.',
expected_output=f'A summary of the top 3 trending news in {self.topic} with a unique perspective on their significance.',
agent=self.market_researcher()
)
@task
def write(self) -> Task:
return Task(
description=f"Write an engaging blog post about the {self.topic}, based on the research analyst's summary.",
expected_output='A 4-paragraph blog post formatted in markdown with engaging, informative, and accessible content, avoiding complex jargon.',
agent=self.content_creator(),
output_file=f'blog-posts/post-{self.model_name}-{timestamp}.md'
)
@task
def refine(self) -> Task:
return Task(
description="""
Refine the given article draft to be highly SEO optimized for trending keywords.
Include the keywords naturally throughout the text (especially in headings and early paragraphs)
Make the content easy for both search engines and users to understand.
""",
expected_output='A refined 4-paragraph blog post formatted in markdown with engaging and SEO-optimized contents.',
agent=self.marketing_specialist(),
output_file=f'blog-posts/seo_post-{self.model_name}-{timestamp}.md'
)
@task
def distribute(self) -> Task:
return Task(
description="""
Generate three distinct versions of the original blog post description, each tailored for a specific distribution channel:
One version for X (formerly Twitter) – concise, engaging, and hashtag-optimized.
One version for YouTube post – suitable for video audience, includes emotive cue and strong call-to-action.
One version for Substack – slightly longer, informative, focused on newsletter subscribers.
Each description must be optimized for the norms and expectations of the channel, making subtle adjustments to language, length, and formatting.
Output should be in markdown format, with each version separated by a clear divider (---).
Use a short, impactful headline for each version to further increase channel fit.
""",
expected_output='3 versions of descriptions of the original blog post optimized for distribution channel, formatted in markdown, separated by dividers.',
agent=self.marketing_specialist(),
output_file=f'blog-posts/social_media_post-{self.model_name}-{timestamp}.md'
)
Le journal de sortie CrewAI ci-dessous affiche les détails de l’exécution des tâches, y compris le statut, les affectations des agents et l’utilisation des outils.
🚀 Crew: crew
├── 📋 Task: research (ID: 19968f28-0af7-4e9e-b91f-7a12f87659fe)
│ Assigned to: Market Research Analyst
│ Status: ✅ Completed
│ └── 🔧 Used Search in a specific website (1)
├── 📋 Task: write (ID: 4a5de75f-682e-46eb-960f-43635caa7481)
│ Assigned to: Content Writer
│ Status: ✅ Completed
├── 📋 Task: refine (ID: fc9fe4f8-7dbb-430d-a9fd-a7f32999b861)
│ **Assigned to: Marketing Specialist**
│ Status: ✅ Completed
│ └── 🔧 Used Trending Keyword Tool (1)
└── 📋 Task: distribute (ID: ed69676a-a6f7-4253-9a2e-7f946bd12fa8)
**Assigned to: Marketing Specialist**
Status: ✅ Completed
└── 🔧 Used Trending Keyword Tool (2)
╭───────────────────────────────────────── Task Completion ──────────────────────────────────────────╮
│ │
│ Task Completed │
│ Name: distribute │
│ Agent: Marketing Specialist │
│ Tool Args: │
│ │
│ │
╰────────────────────────────────────────────────────────────────────────────────────────────────────╯
6. Lancez l’équipage
Comme dernière étape du script crew.py, nous orchestrons ensemble les tâches, les agents et les outils pour définir l’équipage.
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
verbose=True,
planning=True,
)
Dans le main.py, nous instancions un SocialMediaCrew() objectez et dirigez l’équipe en acceptant la contribution de l’utilisateur sur son sujet d’intérêt.
# main.py
from social_media_agent.crew import SocialMediaCrew
def run():
# Replace with your inputs, it will automatically interpolate any tasks and agents information
inputs = {
'topic': input('Enter your interested topic: '),
}
SocialMediaCrew(topic=inputs['topic']).crew().kickoff(inputs=inputs)
Utilisons maintenant « Agentic AI » comme exemple et voici les fichiers de sortie générés par notre équipe de médias sociaux après l’exécution séquentielle des tâches.
Sortie de la tâche « écriture »

Résultat de la tâche « affiner »

Résultat de la tâche « distribuer »

Message à retenir
Ce didacticiel montre comment créer un système Agentic AI à l’aide du framework CrewAI. En orchestrant des agents spécialisés avec des rôles et des outils distincts, nous mettons en place une équipe multi-agents capable de générer du contenu optimisé pour différentes plateformes de médias sociaux.
- Configuration de l’environnement : Initialisez votre environnement de développement avec les dépendances et les outils nécessaires au développement de CrewAI
- Développer des outils : Développer la structure d’outils de base avec des composants d’outils intégrés et personnalisés
- Définir les agents : Créez des agents spécialisés avec des rôles, des objectifs et des histoires clairement définis. Équipez-les d’outils pertinents pour soutenir leur rôle.
- Créer des tâches : Créez des tâches avec des descriptions claires et les résultats attendus. Attribuez des agents pour l’exécution des tâches.
- Lancez l’équipage : Orchestrez les tâches, les agents et les outils ensemble en tant qu’équipe et exécutez le flux de travail.
Plus de ressources comme celle-ci



