---
title: "Construire un Agent d'Intelligence d'Avis Multi-Sources avec CrewAI et Bright Data"
slug: review-intelligence-agent
date: 2025-08-27T11:08:10+00:00
modified: 2026-08-26T14:44:52+00:00
permalink: https://brightdata.fr/blog/ai/review-intelligence-agent
type: blog
---

[ Blog ](https://brightdata.fr/blog "Blog") / [AI](https://brightdata.fr/blog/ai)







 [AI](https://brightdata.fr/blog/ai)

# Construire un Agent d’Intelligence d’Avis Multi-Sources avec CrewAI et Bright Data

Découvrez étape par étape comment créer un agent d’intelligence d’avis automatisé avec CrewAI et Bright Data, transformant les retours clients en insights exploitables.

 12 min de lecture





 [ ![Arindam Majumder](https://media.brightdata.fr/2025/07/Arindam-Majumder-50x50.jpg) ](https://brightdata.com/blog/authors/arindam-majumder)

 [Arindam Majumder

Technical Writer

 ](https://brightdata.com/blog/authors/arindam-majumder)





 ![Intelligence Agent with CrewAI and Bright Data blog image](https://media.brightdata.fr/2025/08/Intelligence-Agent-with-CrewAI-and-Bright-Data-blog-image.png)





Les avis clients dispersés sur plusieurs plateformes créent des défis d’analyse pour les entreprises. La surveillance manuelle des avis est chronophage et passe souvent à côté d’informations essentielles. Ce guide vous montre comment créer un agent IA qui collecte, analyse et catégorise automatiquement les avis provenant de différentes sources.

Vous apprendrez :

- Comment construire un système d’intelligence d’avis avec CrewAI et le Bright Data MCP de Bright Data
- Comment effectuer une analyse de sentiment basée sur les aspects des retours clients
- Comment catégoriser les avis par sujet et générer des informations exploitables

Consultez le projet final sur [GitHub](https://github.com/brightdata/review-intelligence-agent) !

### Qu’est-ce que CrewAI ?

CrewAI est un framework open-source permettant de créer des équipes d’agents IA collaboratifs. Vous définissez les rôles, objectifs et outils des agents pour exécuter des workflows complexes. Chaque agent gère des tâches spécifiques tout en travaillant ensemble vers un objectif commun.

CrewAI se compose de :

- Agent : Un travailleur propulsé par un LLM avec des responsabilités et des outils définis
- Tâche : Un travail spécifique avec des exigences de résultat claires
- Outil : Des fonctions que les agents utilisent pour des travaux spécialisés, comme l’extraction de données
- Crew : Une collection d’agents travaillant ensemble

### Qu’est-ce que MCP ?

MCP (Model Context Protocol) est un standard JSON-RPC 2.0 qui connecte les agents IA à des outils externes et des sources de données via une interface unifiée.

[Le serveur Bright Data MCP de Bright Data](/ai/mcp-server) offre un accès direct aux capacités de Scraping web avec protection anti-bot grâce à 400M+ Proxys résidentiels rotatifs, au rendu JavaScript pour le contenu dynamique, à des sorties JSON propres issues des données scrapées, et à plus de 50 outils prêts à l’emploi pour différentes plateformes.

### Ce que nous construisons : Agent d’Intelligence d’Avis Multi-Sources

Nous allons créer un système CrewAI qui scrape automatiquement les avis de sociétés spécifiques sur plusieurs plateformes telles que G2, Capterra, Trustpilot et TrustRadius, récupère la note de chacune ainsi que les meilleurs avis, effectue une analyse de sentiment basée sur les aspects, catégorise les retours par sujets (Support, Tarification, Facilité d’utilisation), attribue un score de sentiment à chaque catégorie et génère des informations commerciales exploitables.

## Prérequis

Configurez votre environnement de développement avec :

- Python 3.11 ou supérieur
- Node.js et npm pour le serveur Bright Data MCP
- **Compte Bright Data** – [Inscrivez-vous](/) et créez un token API (des crédits d’essai gratuits sont disponibles).
- **Clé API Nebius** – Créez une clé dans [Nebius AI Studio](https://studio.nebius.com/playground) (cliquez sur **+ Get API Key**). Vous pouvez l’utiliser gratuitement. Aucun profil de facturation n’est requis.
- **Environnement virtuel Python** – Maintient les dépendances isolées ; consultez la [documentation `venv`](https://docs.python.org/3/library/venv.html).

### Configuration de l’environnement

Créez votre répertoire de projet et installez les dépendances :

```none
python -m venv venv
# macOS/Linux: source venv/bin/activate
# Windows: venv\\Scripts\\activate
pip install "crewai-tools[mcp]" crewai mcp python-dotenv pandas textblob

```

Créez un nouveau fichier appelé `review_intelligence.py` et ajoutez les importations suivantes :

```none
from crewai import Agent, Task, Crew, Process
from crewai_tools import MCPServerAdapter
from mcp import StdioServerParameters
from crewai.llm import LLM
import os
import json
import pandas as pd
from datetime import datetime
from dotenv import load_dotenv
from textblob import TextBlob

load_dotenv()

```

### Configuration du Bright Data MCP de Bright Data

Créez un fichier `.env` avec vos identifiants :

```none
BRIGHT_DATA_API_TOKEN="your_api_token_here"
WEB_UNLOCKER_ZONE="your_web_unlocker_zone"
BROWSER_ZONE="your_browser_zone"
NEBIUS_API_KEY="your_nebius_api_key"

```

Vous avez besoin de :

- **Token API** : Générez un nouveau token API depuis votre tableau de bord Bright Data
- **Zone Web Unlocker** : Créez une nouvelle zone Web Unlocker pour les sites immobiliers
- **Zone Browser API** : Créez une nouvelle zone Browser API pour les sites immobiliers à fort contenu JavaScript
- **Clé API Nebius** : Déjà créée dans les Prérequis

Configurez le LLM et le serveur Bright Data MCP dans `review_intelligence.py` :

```none
llm = LLM(
    model="nebius/Qwen/Qwen3-30B-A3B",
    api_key=os.getenv("NEBIUS_API_KEY")
)

server_params = StdioServerParameters(
    command="npx",
    args=["@brightdata/mcp"],
    env={
        "API_TOKEN": os.getenv("BRIGHT_DATA_API_TOKEN"),
        "WEB_UNLOCKER_ZONE": os.getenv("WEB_UNLOCKER_ZONE"),
        "BROWSER_ZONE": os.getenv("BROWSER_ZONE"),
    },
)

```

### Définition des agents et des tâches

Définissez des agents spécialisés pour différents aspects de l’analyse des avis. L’agent de collecte d’avis extrait les avis clients de plusieurs plateformes et retourne des données JSON propres et structurées avec le texte des avis, les notes, les dates et la source de la plateforme. Cet agent possède une expertise en Scraping web, avec une connaissance approfondie des structures des plateformes d’avis et la capacité de contourner les mesures anti-bot.

```none
def build_review_scraper_agent(mcp_tools):
    return Agent(
        role="Review Data Collector",
        goal=(
            "Extract customer reviews from multiple platforms and return clean, "
            "structured JSON data with review text, ratings, dates, and platform source."
        ),
        backstory=(
            "Expert in web scraping with deep knowledge of review platform structures. "
            "Skilled at bypassing anti-bot measures and extracting complete review datasets "
            "from Amazon, Yelp, Google Reviews, and other platforms."
        ),
        tools=mcp_tools,
        llm=llm,
        max_iter=3,
        verbose=True,
    )

```

![l'agent affichant les avis](https://media.brightdata.fr/2025/08/image-151.png)L’agent d’analyse de sentiment analyse le sentiment des avis selon trois aspects clés : la qualité du support, la satisfaction tarifaire et la facilité d’utilisation. Il fournit des scores numériques et un raisonnement détaillé pour chaque catégorie. Cet agent est spécialisé dans le traitement du langage naturel et l’analyse du sentiment client, avec une expertise dans l’identification des indicateurs émotionnels et des schémas de retours spécifiques à chaque aspect.

```none
def build_sentiment_analyzer_agent():
    return Agent(
        role="Sentiment Analysis Specialist",
        goal=(
            "Analyze review sentiment across three key aspects: Support Quality, "
            "Pricing Satisfaction, and Ease of Use. Provide numerical scores and "
            "detailed reasoning for each category."
        ),
        backstory=(
            "Data scientist specializing in natural language processing and customer "
            "sentiment analysis. Expert at identifying emotional indicators, context clues, "
            "and aspect-specific feedback patterns in customer reviews."
        ),
        llm=llm,
        max_iter=2,
        verbose=True,
    )

```

L’agent générateur d’insights transforme les résultats de l’analyse de sentiment en informations commerciales exploitables. Il identifie les tendances, met en évidence les problèmes critiques et formule des recommandations spécifiques d’amélioration. Cet agent apporte une expertise en analyse stratégique avec des compétences en optimisation de l’expérience client et en traduction des données de retours en actions commerciales concrètes.

```none
def build_insights_generator_agent():
    return Agent(
        role="Business Intelligence Analyst",
        goal=(
            "Transform sentiment analysis results into actionable business insights. "
            "Identify trends, highlight critical issues, and provide specific "
            "recommendations for improvement."
        ),
        backstory=(
            "Strategic analyst with expertise in customer experience optimization. "
            "Skilled at translating customer feedback data into concrete business "
            "actions and priority frameworks."
        ),
        llm=llm,
        max_iter=2,
        verbose=True,
    )

```

### Assemblage et exécution du Crew

Créez des tâches pour chaque étape du pipeline d’analyse. La tâche de scraping collecte les avis depuis les pages produit spécifiées et produit un JSON structuré avec les informations de plateforme, le texte des avis, les notes, les dates et le statut de vérification.

```none
def build_scraping_task(agent, product_urls):
    return Task(
        description=f"Scrape reviews from these product pages: {product_urls}",
        expected_output="""{
            "reviews": [
                {
                    "platform": "amazon",
                    "review_text": "Great product, fast shipping...",
                    "rating": 5,
                    "date": "2024-01-15",
                    "reviewer_name": "John D.",
                    "verified_purchase": true
                }
            ],
            "total_reviews": 150,
            "platforms_scraped": ["amazon", "yelp"]
        }""",
        agent=agent,
    )

```

La tâche d’analyse de sentiment traite les avis pour analyser les aspects Support, Tarification et Facilité d’utilisation. Elle retourne des scores numériques, des classifications de sentiment, des thèmes clés et des comptages d’avis pour chaque catégorie.

```none
def build_sentiment_analysis_task(agent):
    return Task(
        description="Analyze sentiment for Support, Pricing, and Ease of Use aspects",
        expected_output="""{
            "aspect_analysis": {
                "support_quality": {
                    "score": 4.2,
                    "sentiment": "positive",
                    "key_themes": ["responsive", "helpful", "knowledgeable"],
                    "review_count": 45
                },
                "pricing_satisfaction": {
                    "score": 3.1,
                    "sentiment": "mixed",
                    "key_themes": ["expensive", "value", "competitive"],
                    "review_count": 67
                },
                "ease_of_use": {
                    "score": 4.7,
                    "sentiment": "very positive",
                    "key_themes": ["intuitive", "simple", "user-friendly"],
                    "review_count": 89
                }
            }
        }""",
        agent=agent,
    )

```

La tâche d’insights génère des informations commerciales exploitables à partir des résultats de l’analyse de sentiment. Elle fournit des résumés exécutifs, des actions prioritaires, des zones de risque, l’identification des points forts et des recommandations stratégiques.

```none
def build_insights_task(agent):
    return Task(
        description="Generate actionable business insights from sentiment analysis",
        expected_output="""{
            "executive_summary": "Overall customer satisfaction is strong...",
            "priority_actions": [
                "Address pricing concerns through value communication",
                "Maintain excellent ease of use standards"
            ],
            "risk_areas": ["Price sensitivity among new customers"],
            "strengths": ["Intuitive user experience", "Quality support team"],
            "recommended_focus": "Pricing strategy optimization"
        }""",
        agent=agent,
    )

```

### **Analyse de sentiment basée sur les aspects**

Ajoutez des fonctions d’analyse de sentiment qui identifient les aspects spécifiques mentionnés dans les avis et calculent les scores de sentiment pour chaque domaine d’intérêt.

```none
def analyze_aspect_sentiment(reviews, aspect_keywords):
    """Analyze sentiment for specific aspects mentioned in reviews."""
    aspect_reviews = []

    for review in reviews:
        text = review.get('review_text', '').lower()
        if any(keyword in text for keyword in aspect_keywords):
            blob = TextBlob(review['review_text'])
            sentiment_score = blob.sentiment.polarity

            aspect_reviews.append({
                'text': review['review_text'],
                'sentiment_score': sentiment_score,
                'rating': review.get('rating', 0),
                'platform': review.get('platform', '')
            })

    return aspect_reviews

```

### Catégorisation des avis par sujets (Support, Tarification, Facilité d’utilisation)

La fonction de catégorisation organise les avis en sujets Support, Tarification et Facilité d’utilisation sur la base d’une correspondance par mots-clés. Les mots-clés de support incluent des termes liés au service client et à l’assistance. Les mots-clés de tarification couvrent les mentions de coût, de valeur et d’accessibilité financière.

```none
def categorize_by_aspects(reviews):
    """Categorize reviews into Support, Pricing, and Ease of Use topics."""

    support_keywords = ['support', 'help', 'service', 'customer', 'response', 'assistance']
    pricing_keywords = ['price', 'cost', 'expensive', 'cheap', 'value', 'money', 'affordable']
    usability_keywords = ['easy', 'difficult', 'intuitive', 'complicated', 'user-friendly', 'interface']

    categorized = {
        'support': analyze_aspect_sentiment(reviews, support_keywords),
        'pricing': analyze_aspect_sentiment(reviews, pricing_keywords),
        'ease_of_use': analyze_aspect_sentiment(reviews, usability_keywords)
    }

    return categorized

```

![l'agent retournant les avis catégorisés](https://media.brightdata.fr/2025/08/image-152.png)### **Attribution de scores de sentiment pour chaque sujet**

Implémentez une logique de scoring qui convertit l’analyse de sentiment en notes numériques et en catégories significatives.

```none
def calculate_aspect_scores(categorized_reviews):
    """Calculate numerical scores for each aspect category."""

    scores = {}

    for aspect, reviews in categorized_reviews.items():
        if not reviews:
            scores[aspect] = {'score': 0, 'count': 0, 'sentiment': 'neutral'}
            continue

        # Calculate average sentiment score
        sentiment_scores = [r['sentiment_score'] for r in reviews]
        avg_sentiment = sum(sentiment_scores) / len(sentiment_scores)

        # Convert to 1-5 scale
        normalized_score = ((avg_sentiment + 1) / 2) * 5

        # Determine sentiment category
        if avg_sentiment > 0.3:
            sentiment_category = 'positive'
        elif avg_sentiment < -0.3:
            sentiment_category = 'negative'
        else:
            sentiment_category = 'neutral'

        scores[aspect] = {
            'score': round(normalized_score, 1),
            'count': len(reviews),
            'sentiment': sentiment_category,
            'raw_sentiment': round(avg_sentiment, 2)
        }

    return scores

```

### **Génération du rapport d’insights final**

Finalisez l’exécution du workflow en orchestrant tous les agents et toutes les tâches en séquence. La fonction principale crée des agents spécialisés pour le scraping, l’analyse de sentiment et la génération d’insights. Elle assemble ces agents en un crew avec un traitement séquentiel des tâches.

```none
def analyze_reviews(product_urls):
    """Main function to orchestrate the review intelligence workflow."""

    with MCPServerAdapter(server_params) as mcp_tools:
        # Create agents
        scraper_agent = build_review_scraper_agent(mcp_tools)
        sentiment_agent = build_sentiment_analyzer_agent()
        insights_agent = build_insights_generator_agent()

        # Create tasks
        scraping_task = build_scraping_task(scraper_agent, product_urls)
        sentiment_task = build_sentiment_analysis_task(sentiment_agent)
        insights_task = build_insights_task(insights_agent)

        # Assemble crew
        crew = Crew(
            agents=[scraper_agent, sentiment_agent, insights_agent],
            tasks=[scraping_task, sentiment_task, insights_task],
            process=Process.sequential,
            verbose=True
        )

        return crew.kickoff()

if __name__ == "__main__":
    product_urls = [
        "<https://www.amazon.com/product-example-1>",
        "<https://www.yelp.com/biz/business-example>"
    ]

    try:
        result = analyze_reviews(product_urls)
        print("Review Intelligence Analysis Complete!")
        print(json.dumps(result, indent=2))
    except Exception as e:
        print(f"Analysis failed: {str(e)}")

```

Lancez l’analyse :

```none
python review_intelligence.py

```

![L'agent démarrant la tâche](https://media.brightdata.fr/2025/08/image-153.png)Vous verrez le processus de réflexion de l’agent dans la console au fur et à mesure que chaque agent planifie et exécute ses tâches. Le système affichera comment il procède pour :

1. Extraire des données d’avis complètes depuis plusieurs plateformes
2. Analyser les écarts concurrentiels et le positionnement sur le marché
3. Traiter les schémas de sentiment et attribuer des scores de qualité aux avis
4. Identifier les mentions de fonctionnalités et l’intelligence tarifaire
5. Fournir des recommandations stratégiques et des alertes de risque

![Résultats d'analyse finaux](https://media.brightdata.fr/2025/08/image-154.png)### Conclusion

En automatisant l’intelligence des avis avec CrewAI et la puissante [infrastructure de données web](/) de Bright Data, vous pouvez accéder à des insights clients plus profonds, rationaliser votre analyse concurrentielle et prendre des décisions commerciales plus éclairées. Avec les produits de Bright Data et ses solutions de Scraping web anti-bot de pointe, vous êtes équipé pour faire évoluer la collecte d’avis et l’analyse de sentiment dans n’importe quel secteur. Pour les dernières stratégies et mises à jour, explorez le [blog Bright Data](/blog) ou approfondissez vos connaissances avec nos guides détaillés de Scraping web pour commencer à maximiser la valeur de vos retours clients dès aujourd’hui.



Contacter ventesEssai gratuit![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Table des matières







Data for AI

Supercharge your AI with instant and reliable access to web data. No blockers. No hassle.

Talk to an expert

Bright Data MCP

Get started with Bright Data’s Web MCP Server today with 5000 free monthly requests and unlock your AI’s full potential.

Start free now







 [ ](https://news.ycombinator.com/submitlink?t=Construire+un+Agent+d%26%238217%3BIntelligence+d%26%238217%3BAvis+Multi-Sources+avec+CrewAI+et+Bright+Data&u=https://brightdata.fr/blog/ai/review-intelligence-agent) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Construire+un+Agent+d%26%238217%3BIntelligence+d%26%238217%3BAvis+Multi-Sources+avec+CrewAI+et+Bright+Data&url=https://brightdata.fr/blog/ai/review-intelligence-agent) [ ](http://www.reddit.com/submit?title=Construire+un+Agent+d%26%238217%3BIntelligence+d%26%238217%3BAvis+Multi-Sources+avec+CrewAI+et+Bright+Data&url=https://brightdata.fr/blog/ai/review-intelligence-agent)







##  Vous pourriez aussi être intéressé par

 [ ![OpenHuman with Bright Data](https://media.brightdata.fr/2026/09/OpenHuman-with-Bright-Data.png) ](https://brightdata.fr/blog/ai/openhuman-with-bright-data "Accès Web Prêt pour la Production dans OpenHuman via le CLI Bright Data")

 [AI



 ![Antonello Zanini](https://media.brightdata.fr/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Accès Web Prêt pour la Production dans OpenHuman via le CLI Bright Data

Intégrez le CLI Bright Data avec OpenHuman pour permettre un accès web prêt pour la production et la collecte de données pour les agents IA.



 09-Sep-2026

 14 min de lecture

 ](https://brightdata.fr/blog/ai/openhuman-with-bright-data)

 [ ![Multimodal Web Scraping with MiniMax](https://media.brightdata.fr/2026/09/Multimodal-Web-Scraping-with-MiniMax.png) ](https://brightdata.fr/blog/donnees-web/multimodal-web-scraping-with-minimax "Scraping Web Multimodal avec MiniMax")

 [Données Web



 ![Antonello Zanini](https://media.brightdata.fr/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Scraping Web Multimodal avec MiniMax

Associez Bright Data Web Unlocker avec la vision MiniMax M3 pour extraire des données structurées à partir d’images et de captures d’écran de pages web.



 09-Sep-2026

 5 min de lecture

 ](https://brightdata.fr/blog/donnees-web/multimodal-web-scraping-with-minimax)

 [ ![The 10 Best CLI Tools for Codex in 2026](https://media.brightdata.fr/2026/08/The-10-Best-CLI-Tools-for-Codex-in-2026.png) ](https://brightdata.fr/blog/ai/best-cli-tools-for-codex "Les 10 meilleurs outils CLI pour Codex en 2026 – Testés & Classés")

 [AI



 ![Daniel Shashko](https://media.brightdata.fr/2022/04/Daniel-Shashko-2-50x50.png)

Daniel Shashko

Web Data &amp; AI Expert





### Les 10 meilleurs outils CLI pour Codex en 2026 – Testés &amp; Classés

Les 10 outils CLI qui rendent Codex plus rapide et plus capable, en commençant par le Bright Data CLI pour un accès web réel depuis l’intérieur du sandbox.



 06-Sep-2026

 24 min de lecture

 ](https://brightdata.fr/blog/ai/best-cli-tools-for-codex)
