Blog / AI
AI

Aufbau eines Multi-Source Review Intelligence Agent mit CrewAI und Bright Data

Entdecken Sie Schritt für Schritt, wie Sie mit CrewAI und Bright Data einen automatisierten Bewertungsintelligenz-Agenten erstellen, der Kundenfeedback in verwertbare Erkenntnisse umwandelt.
10 min lesen
Intelligence Agent with CrewAI and Bright Data blog image

Kundenrezensionen, die über mehrere Plattformen verstreut sind, stellen für Unternehmen eine Herausforderung bei der Analyse dar. Die manuelle Überwachung von Bewertungen ist zeitaufwändig und lässt oft wichtige Erkenntnisse außer Acht. Dieser Leitfaden zeigt Ihnen, wie Sie einen KI-Agenten erstellen, der automatisch Bewertungen aus verschiedenen Quellen sammelt, analysiert und kategorisiert.

Sie werden lernen:

  • Wie Sie mit CrewAI und dem Web MCP von Bright Data ein intelligentes Bewertungssystem aufbauen
  • Wie man eine aspektbasierte Stimmungsanalyse für Kundenfeedback durchführt
  • Wie man Bewertungen nach Themen kategorisiert und verwertbare Erkenntnisse gewinnt

Sehen Sie sich das Abschlussprojekt auf GitHub an!

Was ist CrewAI?

CrewAI ist ein Open-Source-Framework für den Aufbau kollaborativer KI-Agententeams. Sie definieren die Rollen, Ziele und Werkzeuge der Agenten, um komplexe Arbeitsabläufe auszuführen. Jeder Agent erledigt bestimmte Aufgaben und arbeitet gleichzeitig auf ein gemeinsames Ziel hin.

CrewAI besteht aus:

  • Agenten: Einem LLM-gesteuerten Arbeiter mit definierten Verantwortlichkeiten und Werkzeugen
  • Aufgabe: Eine spezifische Aufgabe mit klaren Leistungsanforderungen
  • Werkzeug: Funktionen, die Agenten für spezialisierte Arbeit verwenden, wie Datenextraktion
  • Mannschaft: Eine Gruppe von Agenten, die zusammenarbeiten

Was ist MCP?

MCP (Model Context Protocol) ist ein JSON-RPC 2.0-Standard, der KI-Agenten über eine einheitliche Schnittstelle mit externen Tools und Datenquellen verbindet.

Der Web-MCP-Server von Bright Data bietet direkten Zugriff auf Web-Scraping-Funktionen mit Anti-Bot-Schutz durch mehr als 150 Millionen rotierende private IPs, JavaScript-Rendering für dynamische Inhalte, saubere JSON-Ausgabe von gescrapten Daten und über 50 vorgefertigte Tools für verschiedene Plattformen.

Was wir bauen: Multi-Source Review Intelligence Agent

Wir erstellen ein CrewAI-System, das automatisch Bewertungen für bestimmte Unternehmen von mehreren Plattformen wie G2, Capterra, Trustpilot und TrustRadius abruft und die Bewertungen von jeder Plattform sowie die besten Bewertungen zurückholt, eine aspektbasierte Stimmungsanalyse durchführt, das Feedback in Themen (Support, Preisgestaltung, Benutzerfreundlichkeit) kategorisiert, die Stimmung für jede Kategorie bewertet und verwertbare Geschäftseinblicke generiert.

Voraussetzungen

Richten Sie Ihre Entwicklungsumgebung ein mit:

  • Python 3.11 oder höher
  • Node.js und npm für den Web MCP-Server
  • Bright Data-KontoMelden Sie sich an und erstellen Sie ein API-Token (kostenlose Testkredite sind verfügbar).
  • Nebius API-Schlüssel – Erstellen Sie einen Schlüssel in Nebius AI Studio (klicken Sie auf + Get API Key). Sie können ihn kostenlos verwenden. Es ist kein Abrechnungsprofil erforderlich.
  • Virtuelle Python-Umgebung – Hält Abhängigkeiten isoliert; siehe die venv-Dokumente.

Einrichtung der Umgebung

Erstellen Sie Ihr Projektverzeichnis und installieren Sie die Abhängigkeiten:

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

Erstellen Sie eine neue Datei namens review_intelligence.py und fügen Sie die folgenden Importe hinzu:

from crewai import Agent, Aufgabe, Crew, Prozess
von crewai_tools importieren MCPServerAdapter
von mcp importieren StdioServerParameter
von crewai.llm importieren LLM
importiere os
importiere json
importiere pandas als pd
from datetime importieren datetime
from dotenv importieren load_dotenv
from textblob import TextBlob

load_dotenv()

Bright Data Web MCP-Konfiguration

Erstellen Sie eine .env-Datei mit Ihren Anmeldedaten:

BRIGHT_DATA_API_TOKEN="your_api_token_here"
WEB_UNLOCKER_ZONE="ihre_web_unlocker_zone"
BROWSER_ZONE="ihre_browser_zone"
NEBIUS_API_KEY="ihr_nebius_api_schlüssel"

Sie benötigen:

  • API-Token: Generieren Sie ein neues API-Token von Ihrem Bright Data Dashboard
  • Web Unlocker-Zone: Erstellen Sie eine neue Web Unlocker-Zone für Immobilienseiten
  • Browser-API-Zone: Erstellen Sie eine neue Browser-API-Zone für JavaScript-lastige Immobilienseiten
  • Nebius-API-Schlüssel: Bereits erstellt in Voraussetzungen

Konfigurieren Sie den LLM- und Web-MCP-Server in review_intelligence.py:

llm = LLM(
    model="nebius/Qwen/Qwen3-235B-A22B",
    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"),
    },
)

Definition von Agenten und Aufgaben

Definieren Sie spezialisierte Agenten für verschiedene Aspekte der Bewertungsanalyse. Der Agent “Review Scraper” extrahiert Kundenrezensionen von mehreren Plattformen und liefert saubere, strukturierte JSON-Daten mit Rezensionstext, Bewertungen, Datum und Plattformquelle. Dieser Agent verfügt über Expertenwissen im Bereich Web Scraping, mit einem tiefen Verständnis der Strukturen von Bewertungsplattformen und der Fähigkeit, Anti-Bot-Maßnahmen zu umgehen.

def build_review_scraper_agent(mcp_tools):
    return Agent(
        role="Review Data Collector",
        goal=(
            "Extrahiert Kundenrezensionen von mehreren Plattformen und gibt saubere, "
            "strukturierte JSON-Daten mit Bewertungstext, Bewertungen, Datum und Plattformquelle."
        ),
        backstory=(
            "Experte für Web Scraping mit fundierten Kenntnissen der Strukturen von Bewertungsplattformen. "
            "Geschickt im Umgehen von Anti-Bot-Maßnahmen und Extrahieren kompletter Bewertungsdatensätze "
            "von Amazon, Yelp, Google Reviews und anderen Plattformen."
        ),
        tools=mcp_tools,
        llm=llm,
        max_iter=3,
        verbose=True,
    )
the agent showing the reviews

Der Sentiment Analyzer Agent analysiert die Stimmung in den Rezensionen anhand von drei Schlüsselaspekten: Supportqualität, Preiszufriedenheit und Benutzerfreundlichkeit. Für jede Kategorie werden numerische Punktzahlen und detaillierte Begründungen geliefert. Dieser Agent ist auf die Verarbeitung natürlicher Sprache und die Analyse der Kundenstimmung spezialisiert und verfügt über Fachwissen zur Identifizierung emotionaler Indikatoren und aspektspezifischer Feedback-Muster.

def build_sentiment_analyzer_agent():
    return Agent(
        role="Sentiment Analysis Specialist",
        goal=(
            "Analysieren Sie die Stimmungslage in Bezug auf drei Schlüsselaspekte: Support-Qualität, "
            "Preiszufriedenheit und Benutzerfreundlichkeit. Liefern Sie numerische Werte und "
            "detaillierte Begründung für jede Kategorie."
        ),
        backstory=(
            "Datenwissenschaftler mit Spezialisierung auf natürliche Sprachverarbeitung und " "Stimmungsanalyse.
            " "Gefühlsanalyse. Experte für die Identifizierung von emotionalen Indikatoren, Kontext-Hinweisen, "
            " "und aspektspezifische Feedback-Muster in Kundenrezensionen."
        ),
        llm=llm,
        max_iter=2,
        verbose=True,
    )

Der Insights Generator Agent wandelt die Ergebnisse der Sentiment-Analyse in umsetzbare Geschäftseinblicke um. Er identifiziert Trends, hebt kritische Probleme hervor und gibt spezifische Empfehlungen für Verbesserungen. Dieser Agent vereint strategisches Analyse-Know-how mit Kenntnissen in der Optimierung der Kundenerfahrung und der Umsetzung von Feedback-Daten in konkrete geschäftliche Maßnahmen.

def build_insights_generator_agent():
    return Agent(
        role="Business Intelligence Analyst",
        goal=(
            "Ergebnisse der Stimmungsanalyse in umsetzbare Geschäftseinblicke umwandeln. "
            "Identifizieren Sie Trends, heben Sie kritische Probleme hervor und geben Sie spezifische "
            "Empfehlungen für Verbesserungen."
        ),
        backstory=(
            "Strategischer Analyst mit Erfahrung in der Optimierung von Kundenerfahrungen. "
            "Geschickt in der Umsetzung von Kundenfeedbackdaten in konkrete geschäftliche "
            " "Maßnahmen und Prioritätenrahmen."
        ),
        llm=llm,
        max_iter=2,
        verbose=True,
    )

Zusammenstellen und Ausführen der Crew

Erstellen Sie Aufgaben für jede Phase der Analysepipeline. Die Scraping-Aufgabe sammelt Bewertungen von bestimmten Produktseiten und gibt strukturiertes JSON mit Plattforminformationen, Bewertungstext, Bewertungen, Datum und Überprüfungsstatus aus.

def build_scraping_task(agent, product_urls):
    return Task(
        description=f "Scrape Bewertungen von diesen Produktseiten: {product_urls}",
        expected_output="""{
            "reviews": [
                {
                    "Plattform": "amazon",
                    "review_text": "Tolles Produkt, schneller Versand...",
                    "rating": 5,
                    "date": "2024-01-15",
                    "reviewer_name": "John D.",
                    "verified_purchase": true
                }
            ],
            "total_reviews": 150,
            "platforms_scraped": ["amazon", "yelp"]
        }""",
        agent=agent,
    )

Die Stimmungsanalyse verarbeitet Bewertungen, um die Aspekte Support, Preisgestaltung und Benutzerfreundlichkeit zu analysieren. Sie liefert numerische Punktzahlen, Stimmungseinstufungen, Schlüsselthemen und die Anzahl der Bewertungen für jede Kategorie.

def build_sentiment_analysis_task(agent):
    return Task(
        description="Analysiere die Stimmung für die Aspekte Support, Preisgestaltung und Benutzerfreundlichkeit",
        expected_output="""{
            "aspect_analysis": {
                "support_quality": {
                    "score": 4.2,
                    "sentiment": "positiv",
                    "key_themes": ["entgegenkommend", "hilfsbereit", "sachkundig"],
                    "review_count": 45
                },
                "preis_zufriedenheit": {
                    "score": 3.1,
                    "sentiment": "gemischt",
                    "key_themes": ["teuer", "wertvoll", "wettbewerbsfähig"],
                    "review_count": 67
                },
                "ease_of_use": {
                    "score": 4.7,
                    "sentiment": "sehr positiv",
                    "key_themes": ["intuitiv", "einfach", "benutzerfreundlich"],
                    "review_count": 89
                }
            }
        }""",
        agent=agent,
    )

Die Aufgabe “Einblicke” erzeugt aus den Ergebnissen der Stimmungsanalyse umsetzbare Geschäftsinformationen. Sie liefert Zusammenfassungen für die Geschäftsleitung, vorrangige Maßnahmen, Risikobereiche, die Identifizierung von Stärken und strategische Empfehlungen.

def build_insights_task(agent):
    return Task(
        description="Erzeugen von umsetzbaren Geschäftserkenntnissen aus Stimmungsanalysen",
        expected_output="""{
            "executive_summary": "Die allgemeine Kundenzufriedenheit ist hoch...",
            "priority_actions": [
                "Preisbedenken durch Wertkommunikation ansprechen",
                "Ausgezeichnete Standards für die Benutzerfreundlichkeit beibehalten"
            ],
            "risk_areas": ["Preissensibilität bei Neukunden"],
            "strengths": ["Intuitive Benutzererfahrung", "Qualitatives Supportteam"],
            "recommended_focus": ",,Pricing strategy optimization''
        }""",
        agent=agent,
    )

Aspekt-basierte Stimmungsanalyse

Fügen Sie Funktionen zur Stimmungsanalyse hinzu, die bestimmte Aspekte, die in Rezensionen erwähnt werden, identifizieren und Stimmungswerte für jeden Bereich von Interesse berechnen.

def analyze_aspect_sentiment(reviews, aspect_keywords):
    """Analysiere die Stimmung für bestimmte Aspekte, die in Rezensionen erwähnt werden."""
    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,
                Bewertung': review.get('Bewertung', 0),
                'Plattform': review.get('Plattform', '')
            })
    
    return aspect_reviews

Kategorisierung von Rezensionen in Themen (Support, Preise, Benutzerfreundlichkeit)

Die Kategorisierungsfunktion ordnet die Rezensionen anhand von Schlüsselwörtern in die Themenbereiche Support, Preisgestaltung und Benutzerfreundlichkeit ein. Zu den Support-Schlüsselwörtern gehören Begriffe, die sich auf den Kundendienst und die Unterstützung beziehen. Die Schlüsselwörter für den Preis umfassen Erwähnungen von Kosten, Wert und Erschwinglichkeit.

def categorize_by_aspects(reviews):
    """Kategorisieren Sie Bewertungen in die Themen Support, Preisgestaltung und Benutzerfreundlichkeit."""
    
    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),
        Preisgestaltung': analyze_aspect_sentiment(reviews, pricing_keywords),
        Benutzerfreundlichkeit': analyze_aspect_sentiment(reviews, usability_keywords)
    }
    
    return kategorisiert
agent returning the categorized reviews

Bewertung der Stimmung für jedes Thema

Implementieren Sie eine Bewertungslogik, die die Stimmungsanalyse in numerische Bewertungen und sinnvolle Kategorien umwandelt.

def calculate_aspect_scores(categorized_reviews):
    """Berechne numerische Bewertungen für jede Aspektkategorie."""
    
    scores = {}
    
    for aspect, reviews in categorized_reviews.items():
        if not reviews:
            scores[aspect] = {'score': 0, 'count': 0, 'sentiment': 'neutral'}
            continue
            
        # Berechnung der durchschnittlichen Stimmungsbewertung
        sentiment_scores = [r['sentiment_score'] for r in reviews]
        avg_sentiment = sum(sentiment_scores) / len(sentiment_scores)
        
        # In eine 1-5-Skala umrechnen
        normalisierte_Bewertung = ((avg_sentiment + 1) / 2) * 5
        
        # Stimmungs-Kategorie bestimmen
        wenn avg_sentiment > 0.3:
            sentiment_category = 'positiv'
        elif avg_sentiment < -0.3:
            sentiment_category = 'negativ'
        sonst:
            sentiment_category = 'neutral'
            
        scores[aspect] = {
            'score': round(normalized_score, 1),
            'count': len(reviews),
            sentiment': sentiment_category,
            raw_sentiment': round(avg_sentiment, 2)
        }
    
    return scores

Generieren des abschließenden Insights-Berichts

Schließen Sie die Ausführung des Workflows ab, indem Sie alle Agenten und Aufgaben der Reihe nach orchestrieren. Die primäre Funktion erstellt spezialisierte Agenten für das Scraping, die Stimmungsanalyse und die Generierung von Erkenntnissen. Sie fügt diese Agenten zu einem Team mit sequenzieller Aufgabenverarbeitung zusammen.

def analyze_reviews(product_urls):
    """Hauptfunktion zur Orchestrierung des Review Intelligence Workflows."""
    
    with MCPServerAdapter(server_params) as mcp_tools:
        # Agenten erstellen
        scraper_agent = build_review_scraper_agent(mcp_tools)
        sentiment_agent = build_sentiment_analyzer_agent()
        einblicke_agent = build_einblicke_generator_agent()
        
        # Aufgaben erstellen
        scraping_task = build_scraping_task(scraper_agent, product_urls)
        sentiment_task = build_sentiment_analysis_task(sentiment_agent)
        insights_task = build_insights_task(insights_agent)
        
        # Crew zusammenstellen
        crew = Crew(
            agents=[scraper_agent, sentiment_agent, insights_agent],
            tasks=[scraper_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 Analyse abgeschlossen!")
        print(json.dumps(result, indent=2))
    except Exception as e:
        print(f "Analyse fehlgeschlagen: {str(e)}")

Führen Sie die Analyse aus:

python review_intelligence.py
Agent starting the task

In der Konsole sehen Sie den Denkprozess der Agenten, während jeder Agent seine Aufgaben plant und ausführt. Das System wird Ihnen zeigen, wie es ist:

  1. Extrahieren umfassender Bewertungsdaten von mehreren Plattformen
  2. Analyse von Wettbewerbslücken und Marktpositionierung
  3. Verarbeitung von Stimmungsmustern und Qualitätsbewertung von Bewertungen
  4. Identifizierung von Funktionserwähnungen und Preisinformationen
  5. Strategische Empfehlungen und Risikowarnungen bereitstellt
Final analysis results

Fazit

Durch die Automatisierung der Bewertungsanalyse mit CrewAI und der leistungsstarken Webdatenplattform von Bright Data können Sie tiefere Kundeneinblicke gewinnen, Ihre Wettbewerbsanalyse optimieren und intelligentere Geschäftsentscheidungen treffen. Mit den Produkten von Bright Data und den branchenführenden Anti-Bot-Web-Scraping-Lösungen sind Sie in der Lage, die Sammlung von Bewertungen und Stimmungsanalysen für jede Branche zu skalieren. Die neuesten Strategien und Updates finden Sie im Bright Data-Blog, und in unseren detaillierten Web Scraping-Leitfäden erfahren Sie mehr, um den Wert Ihres Kundenfeedbacks noch heute zu maximieren.