Kundenbewertungen, die über mehrere Plattformen verstreut sind, stellen Unternehmen vor Analyseprobleme. Die manuelle Überwachung von Bewertungen ist zeitaufwendig und übersieht häufig wichtige Erkenntnisse. Diese Anleitung zeigt Ihnen, wie Sie einen KI-Agenten erstellen, der automatisch Bewertungen aus verschiedenen Quellen sammelt, analysiert und kategorisiert.
Sie lernen:
- Wie Sie ein Review-Intelligence-System mit CrewAI und Bright Data’s Bright Data MCP erstellen
- Wie Sie aspektbasierte Stimmungsanalyse für Kundenfeedback durchführen
- Wie Sie Bewertungen nach Themen kategorisieren und umsetzbare Erkenntnisse gewinnen
Sehen Sie sich das fertige Projekt auf GitHub an!
Was ist CrewAI?
CrewAI ist ein Open-Source-Framework zum Aufbau kollaborativer KI-Agenten-Teams. Sie definieren Agentenrollen, Ziele und Tools zur Ausführung komplexer Workflows. Jeder Agent übernimmt spezifische Aufgaben und arbeitet gemeinsam auf ein übergeordnetes Ziel hin.
CrewAI besteht aus:
- Agent: Ein LLM-gesteuerter Worker mit definierten Verantwortlichkeiten und Tools
- Task: Eine spezifische Aufgabe mit klaren Ausgabeanforderungen
- Tool: Funktionen, die Agenten für spezialisierte Arbeit nutzen, wie z. B. Datenextraktion
- Crew: Eine Sammlung 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.
Bright Data’s Bright Data MCP Server bietet direkten Zugang zu Web-Scraping-Funktionen mit Anti-Bot-Schutz durch 400M+ rotierende Residential-IPs, JavaScript-Rendering für dynamische Inhalte, saubere JSON-Ausgabe aus gescrapten Daten und über 50 vorgefertigte Tools für verschiedene Plattformen.
Was wir erstellen: 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 scrapet, die jeweilige Bewertung und die wichtigsten Rezensionen abruft, eine aspektbasierte Stimmungsanalyse durchführt, Feedback in Themen kategorisiert (Support, Preisgestaltung, Benutzerfreundlichkeit), Stimmungswerte für jede Kategorie berechnet und umsetzbare Geschäftserkenntnisse generiert.
Voraussetzungen
Richten Sie Ihre Entwicklungsumgebung ein mit:
- Python 3.11 oder höher
- Node.js und npm für den Bright Data MCP Server
- Bright Data-Konto – Registrieren Sie sich und erstellen Sie ein API-Token (kostenlose Testguthaben verfügbar).
- Nebius API-Schlüssel – Erstellen Sie einen Schlüssel im Nebius AI Studio (klicken Sie auf + Get API Key). Die Nutzung ist kostenlos. Kein Abrechnungsprofil erforderlich.
- Virtuelle Python-Umgebung – Hält Abhängigkeiten isoliert; siehe die
venv-Dokumentation.
Umgebungs-Setup
Erstellen Sie Ihr Projektverzeichnis und installieren Sie die Abhängigkeiten:
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
Erstellen Sie eine neue Datei namens review_intelligence.py und fügen Sie die folgenden Imports hinzu:
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()
Bright Data Bright Data MCP Konfiguration
Erstellen Sie eine .env-Datei mit Ihren Zugangsdaten:
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"
Sie benötigen:
- API-Token: Generieren Sie ein neues API-Token in Ihrem Bright Data-Dashboard
- Web Unlocker Zone: Erstellen Sie eine neue Web Unlocker Zone für Immobilien-Websites
- Browser API Zone: Erstellen Sie eine neue Browser API Zone für JavaScript-intensive Immobilien-Websites
- Nebius API-Schlüssel: Bereits in den Voraussetzungen erstellt
Konfigurieren Sie das LLM und den Bright Data MCP Server in review_intelligence.py:
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"),
},
)
Agenten- und Aufgabendefinition
Definieren Sie spezialisierte Agenten für verschiedene Aspekte der Bewertungsanalyse. Der Review-Scraper-Agent extrahiert Kundenbewertungen von mehreren Plattformen und gibt strukturierte JSON-Daten mit Bewertungstext, Ratings, Datum und Plattformquelle zurück. Dieser Agent verfügt über Expertenwissen im Bereich Web-Scraping, ein tiefes Verständnis der Strukturen von Bewertungsplattformen und die Fähigkeit, Anti-Bot-Maßnahmen zu umgehen.
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,
)

Der Stimmungsanalyse-Agent analysiert die Bewertungsstimmung in drei Schlüsselbereichen: Support-Qualität, Preiszufriedenheit und Benutzerfreundlichkeit. Er liefert numerische Bewertungen und detaillierte Begründungen für jede Kategorie. Dieser Agent ist auf natürliche Sprachverarbeitung und Kundenstimmungsanalyse spezialisiert und verfügt über Expertise bei der Identifizierung emotionaler Indikatoren und aspektspezifischer Feedback-Muster.
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,
)
Der Insights-Generator-Agent wandelt Stimmungsanalyseergebnisse in umsetzbare Geschäftserkenntnisse um. Er identifiziert Trends, hebt kritische Probleme hervor und liefert spezifische Verbesserungsempfehlungen. Dieser Agent bringt strategische Analyseexpertise mit Fähigkeiten in der Optimierung der Kundenerfahrung und der Übersetzung von Feedback-Daten in konkrete Geschäftsmaßnahmen mit.
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,
)
Crew-Zusammenstellung und Ausführung
Erstellen Sie Aufgaben für jede Phase der Analyse-Pipeline. Die Scraping-Aufgabe sammelt Bewertungen von bestimmten Produktseiten und gibt strukturiertes JSON mit Plattforminformationen, Bewertungstext, Ratings, Datum und Verifizierungsstatus aus.
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,
)
Die Stimmungsanalyse-Aufgabe verarbeitet Bewertungen zur Analyse der Aspekte Support, Preisgestaltung und Benutzerfreundlichkeit. Sie gibt numerische Werte, Stimmungsklassifikationen, Schlüsselthemen und Bewertungsanzahlen für jede Kategorie zurück.
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,
)
Die Insights-Aufgabe generiert umsetzbare Geschäftsintelligenz aus den Stimmungsanalyseergebnissen. Sie liefert Zusammenfassungen für die Geschäftsleitung, Prioritätsmaßnahmen, Risikofelder, Stärkenidentifikation und strategische Empfehlungen.
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,
)
Aspektbasierte Stimmungsanalyse
Fügen Sie Stimmungsanalysefunktionen hinzu, die spezifische Aspekte in Bewertungen identifizieren und Stimmungswerte für jeden Interessenbereich berechnen.
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
Bewertungen in Themen kategorisieren (Support, Preisgestaltung, Benutzerfreundlichkeit)
Die Kategorisierungsfunktion organisiert Bewertungen anhand von Keyword-Matching in die Themen Support, Preisgestaltung und Benutzerfreundlichkeit. Support-Keywords umfassen Begriffe rund um Kundenservice und Unterstützung. Preisgestaltungs-Keywords decken Erwähnungen zu Kosten, Wert und Erschwinglichkeit ab.
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

Stimmungsbewertung für jedes Thema
Implementieren Sie Bewertungslogik, die die Stimmungsanalyse in numerische Ratings und aussagekräftige Kategorien umwandelt.
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
Den abschließenden Insights-Bericht erstellen
Vervollständigen Sie die Workflow-Ausführung durch die Orchestrierung aller Agenten und Aufgaben in Reihenfolge. Die Hauptfunktion erstellt spezialisierte Agenten für Scraping, Stimmungsanalyse und Insights-Generierung und fügt diese Agenten zu einer Crew mit sequenzieller Aufgabenverarbeitung zusammen.
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)}")
Führen Sie die Analyse aus:
python review_intelligence.py

Sie sehen den Denkprozess des Agenten in der Konsole, während jeder Agent seine Aufgaben plant und ausführt. Das System zeigt, wie es:
- Umfassende Bewertungsdaten von mehreren Plattformen extrahiert
- Wettbewerbslücken und Marktpositionierung analysiert
- Stimmungsmuster verarbeitet und Bewertungen qualitativ bewertet
- Feature-Erwähnungen und Preisinformationen identifiziert
- Strategische Empfehlungen und Risikohinweise bereitstellt

Fazit
Durch die Automatisierung von Review Intelligence mit CrewAI und Bright Data’s leistungsstarker Web-Dateninfrastruktur können Sie tiefere Kundeneinblicke gewinnen, Ihre Wettbewerbsanalyse optimieren und fundiertere Geschäftsentscheidungen treffen. Mit Bright Data’s Produkten und branchenführenden Anti-Bot-Web-Scraping-Lösungen sind Sie in der Lage, die Bewertungserfassung und Stimmungsanalyse für jede Branche zu skalieren. Für die neuesten Strategien und Updates besuchen Sie den Bright Data Blog oder erfahren Sie mehr in unseren detaillierten Web-Scraping-Anleitungen, um den Wert Ihres Kundenfeedbacks noch heute zu maximieren.