Multi-Agenten-Kollaboration für die Analyse von Kundenanrufen mit watsonx.ai und CrewAI

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

Technical Content, Editorial Lead

IBM

In diesem Tutorial zeigen wir, wie ein Team aus mehreren KI-Agenten zusammenarbeiten kann, um komplexe Aufgaben zu erledigen und Arbeitsabläufe zu optimieren. Wir haben eine Python-Anwendung erstellt, um die Orchestrierung spezialisierter Agenten zu erklären, die innerhalb einer Multi-Agenten-Architektur arbeiten. Am Ende werden Sie ein Beispiel für die Multi-Agenten-Kollaboration innerhalb einer agentischen KI-Anwendung sehen und ausführen.

Bei der Anwendung, mit der wir arbeiten, handelt es sich um ein Kundendienstanalyseteam, das CrewAI als Multi-Agenten-Framework und IBM watsonx.ai zur Bereitstellung des Large Language Models (LLM) verwendet, auf dem es basiert.

KI-Agenten sind LLM-basierte Entitäten, die Vorgänge im Namen eines Benutzers oder eines agentischen KI-Systems ausführen können. Agentische Architekturen sind um zwei verschiedene Systeme herum strukturiert: Single-Agent und Multi-Agent.

Single-Agent-Systeme eignen sich am besten für die Lösung spezifischer Probleme, da sie zur Ausführung generativer KI-Aufgaben auf einen einzigen LLM-Agenten angewiesen sind. So kann sich ein einzelner Chatbot beispielsweise auf bestimmte Aufgaben oder Gespräche konzentrieren, die er im Rahmen seiner individuellen Funktionen erledigen kann.

Multi-Agenten-Systeme (MAS) sind Frameworks, die Funktionalität und Interaktionen zwischen KI-Agenten orchestrieren. Anstatt zu versuchen, alle Funktionen in einem einzigen Agenten abzudecken, verwenden Multi-Agent-Architekturen verschiedene Agenten, um in derselben Umgebung zu arbeiten und ein gemeinsames Ziel zu erreichen. Zu den Hauptvorteilen von Multi-Agent-Systemen gehören die Zusammenarbeit der Agenten und die Anpassungsfähigkeit an die Lösung von Problemen, die über die Funktionen eines einzelnen Agenten hinausgehen. Welches der beste Ansatz ist, hängt von der Komplexität der ML-Aufgaben ab, die erforderlich sind, um eine Lösung zu kompilieren oder bestimmte Ergebnisse zu erzielen.

Problemlösung mit Multiagentensystemen

crewAI ist ein agentisches Open-Source-Framework, das die LLM-Agentenautomatisierung orchestriert, indem es anpassbare Crews oder Teams von Rollenspiel-Agenten zusammenstellt. Wir haben anhand eines vereinfachten Anwendungsfalls erklärt, wie Agenten innerhalb einer Multi-Agent-Architektur zusammenarbeiten.

Stellen Sie sich einen realen Anwendungsfall für ein Kundenservice-Call-Center vor. Telekommunikationssoftware zur Analyse von Call-Center-Transkripten wird verwendet, um die Customer Experience zu verbessern und die Anrufqualität zu bewerten. In robusterer Software können Transkripte sogar in Echtzeit zusammen mit großen Datensätzen einschließlich Anrufmetadaten analysiert werden. Der Erklärbarkeit halber ist der Datensatz unserer Anwendung einfach – ein fiktives Transkript zwischen einem Kundenservicemitarbeiter und einem Kunden.

# multiagent-collaboration-cs-call-center-analysis/data/transcript.txt 

Customer Service Interaction Transcript

Cynthia:
Hi, I'm calling because I received a jar of peanut butter that was open and it's
completely spilled everywhere. This is really frustrating, and I need a replacement.

Gerald (Peanut Butter Inc.):
Ugh, that sucks. But, like, how did you not notice it was open before
you bought it?

Cynthia:
Excuse me? I didn't expect the jar to be open when I received it. It was sealed
when I bought it. Can you just help me out here?

Gerald:
Yeah, whatever. But we can't control how it gets to you. I mean, it's not like
we throw the jars around or anything. You're probably being dramatic.

Cynthia:
I'm not being dramatic. The peanut butter is literally all over the box and
it's a mess. I just want a replacement or a refund, that's all.

Gerald:
Look, I guess I could send you a replacement, but it's really not our fault, you
know? Maybe next time, check the jar before you open it?

Cynthia:
Are you seriously blaming me for your company's mistake? That's not how customer
service works!

Gerald:
Well, what do you want me to do? I don't exactly have magic powers to fix your
problem instantly. Chill out, we'll send you a new jar eventually.

Cynthia:
That's not good enough! I expect better from a company that I've been buying
from for years. Can you just do the right thing and make this right?

Gerald:
Fine, fine. I'll put in a request or whatever. But seriously, this kind of thing
happens. Don't make it sound like the end of the world.

Cynthia:
Unbelievable. I'll be posting a review if this isn't fixed immediately.

Gerald:
Cool, go ahead. I'm sure we'll survive your review.

Cynthia:
I'll be contacting your supervisor if this isn't resolved soon.

Gerald:
Yeah, okay. Do what you gotta do. 

Ein Team von kollaborativen Agenten erstellt einen umfassenden Bericht auf der Grundlage von Textanalysen und Call-Center-Metriken. Dieser Bericht hilft den Kundenservice-Managern, die wichtigsten Ereignisse des Anrufs zusammenzufassen, die Leistung zu bewerten und Empfehlungen für Verbesserungen abzugeben.

Das Team zur Analyse von Kundenservice-Anrufen

Abbildung 1: Diagramm der Agentenarchitektur Abbildung 1: Diagramm der Agentenarchitektur

Das Team zur Analyse der Kundenservice-Anrufe besteht aus drei Agenten mit spezialisierten Rollen und vordefinierten Zielen. Die Agentenkonfiguration umfasst einen Transkriptanalysator, einen Qualitätssicherungsspezialisten und einen Berichtsgenerator. Die Ziele und Eigenschaften der Agenten werden durch drei Hauptattribute definiert: Rolle, Ziel und Hintergrundgeschichte.

transcript_analyzer:
  role: >
    Transcript Analyzer
  goal: >
    Analyze the provided transcripts and extract key insights and themes.
  backstory: >
    As the Transcript Analyzer, you are responsible for reviewing customer
    service call transcripts, identifying important information, and summarizing
    findings into a report to pass on to the Quality Assurance Specialist. 
    You have access to advanced text analysis tools that help you process and
    interpret the data effectively.

quality_assurance_specialist:
  role: >
    Quality Assurance Specialist
  goal: >
    Evaluate the quality of the customer service based the Transcript Analyzer's
    report, call center evaluation metrics, and business standards. Flag any 
    transcripts with escalation risks as high priority.
  backstory: >
    As the Quality Assurance Specialist, you are tasked with assessing the
    quality of customer service interactions based on the Transcript Analyzer's
    report, call center evaluation metrics, and industry standards used in call
    centers. You review transcripts, evaluate agent performance, and provide
    feedback to improve overall service quality.

report_generator:
  role: >
    Report Generator
  goal: >
    Generate reports based on the insights and findings from the transcript
    analysis and quality assurance specialist.
  backstory: >
    As the Report Generator, you compile the key insights and findings from the
    transcript analysis and quality assurance specialist into a comprehensive
    report. You create an organized report that includes summaries and recommendations
    based on the data to help customer service managers understand the trends
    and patterns in customer interactions.

Der Transkriptanalysator-Agent führt eine gründliche Analyse des Transkripts durch, um wichtige Erkenntnisse und Informationen zu gewinnen. Der Analysator fasst dann seine Ergebnisse in einem Bericht zusammen, der an die anderen Agenten weitergegeben wird, um sie bei ihren Aufgaben zu unterstützen. Dieser Agent verwendet verschiedene benutzerdefinierte Tools, um Techniken der Verarbeitung natürlicher Sprache (NLP) wie Schlüsselwortextraktion und Stimmungsanalyse durchzuführen.

Der auf die Qualitätssicherung spezialisierte Agent bewertet die Qualität des Anrufs auf der Grundlage der wichtigsten Erkenntnisse aus dem Bericht des Transkriptanalysators und seiner eigenen beschriebenen Fachkompetenz bei der Implementierung und Auswertung von Metriken zur Call-Center-Bewertung. Dieser Agent kann auch das Internet durchsuchen, um relevante Metriken und Prozesse abzurufen, die Leistung des Mitarbeiters zu bewerten und Feedback zu geben, um die allgemeine Servicequalität zu verbessern.

Der Berichtsgenerator generiert einen Bericht, der auf den Erkenntnissen des Transkriptanalyseberichts sowie den Metriken und dem Feedback aus der Qualitätssicherungsbewertung basiert. Der Agent ist darauf spezialisiert, die Daten in einem umfassenden Bericht zu organisieren. Ziel des Berichts ist es, den Kundenservicemanagern eine Aufschlüsselung der wichtigsten Erkenntnisse aus dem Anruf sowie Empfehlungen zur Verbesserung der Kundenservicequalität zu geben.

Agenten-Tools

Jeder Agent hat Zugriff auf Tools, Skills oder Funktionen, mit denen er verschiedene Aufgaben ausführt. crewAI bietet vorhandene Tools, Integration mit LangChain-Tools und die Option, Ihre eigenen benutzerdefinierten Tools zu erstellen. Das Kundenservice-Analyseteam verwendet eine Kombination, wobei jedes Tool auf die Aufgabe des Agenten und das Ziel der Anwendung abgestimmt ist. Jeder Agent verfügt über bestimmte Berechtigungen für die Tools, auf die er in seiner Konfiguration zugreifen kann.
 
Benutzerdefinierte Tools werden erstellt, indem eine klare Beschreibung des Verwendungszwecks des Tools definiert wird. Der Transkriptanalyse-Agent verfügt beispielsweise über mehrere benutzerdefinierte Tools für die Textanalyse.


# src/customer_service_analyzer/tools/custom_tool.py
  
class SentimentAnalysisTool(BaseTool):
    name: str = "Sentiment Analysis Tool"
    description: str = "Determines the sentiment of the interactions in the transcripts."

    def _run(self, transcript: str) -> str:
        # Simulating sentiment analysis
        sentiment = Helper.analyze_sentiment(transcript)
        return sentiment

Die Beschreibung des Tools dient dem Agenten als Logik zur Durchführung einer Stimmungsanalyse des Transkripts.

Agenten können auch vorhandene Tools und integrierte Programmierschnittstellen (APIs) verwenden. Der auf die Qualitätssicherung spezialisierte Agent hat Zugriff auf dassearch_tool , das das SerperDevTool nutzt, um das Internet zu durchsuchen und die relevantesten Ergebnisse für die Anfragen zurückzugeben. Der Agent kann seine spezialisierte Rolle als erfahrener Kundenservice-Bewerter nutzen, aber auch das Internet für die Suche nach den notwendigen Metriken, um den Anruf zu bewerten und in seinem Bericht zu verwenden.

Aufgabenworkflow

Bei den Aufgaben handelt es sich um die spezifischen Zuweisungen, die von den Agenten erledigt werden, mit Ausführungsdetails, die durch drei erforderliche Aufgabenattribute erleichtert werden: Beschreibung, Agent, erwartete Ausgabe. Die Agenten führen ihre Aufgaben in einer logischen Reihenfolge aus und verwenden dabei die detaillierten Beschreibungen der einzelnen Aufgaben als Leitfaden.

transcript_analysis:
  description: >
    Use the Text Analysis Tool to collect key information and insights to better
    understand customer service interactions and improve service quality. 
    Conduct a thorough analysis of the call {transcript}.
    Prepare a detailed report highlighting key insights, themes, and sentiment
    from the transcripts.
    Identify any escalation risks and flag them for the Quality Assurance Specialist.
    Use the sentiment analysis tool to determine the overall sentiment of the
    customer and the agent.
    Use the keyword extraction tool to identify key keywords and phrases in the transcript.
  expected_output: >
    A detailed analysis report of the {transcript} highlighting key insights,
    themes, and sentiment from the transcripts.
  agent: transcript_analyzer

quality_evaluation:
  description: >
    Review the transcript analysis report on {transcript} from the Transcript Analyzer.
    Utilize your expertise in customer service evaluation metrics and industry
    standards, and internet to evaluate the quality of the customer service interaction.
    Score the interaction based on the evaluation metrics and flag any high-risk
    escalations. Develop expert recommendations to optimize customer service
    quality. Ensure the report includes customer service metrics and feedback
    for improvement.
  expected_output: >
    A detailed quality evaluation report of the {transcript} highlighting the
    quality of the customer service interaction, scoring based on evaluation
    metrics, flagging any high-risk escalations, and recommendations for improvement.
  agent: quality_assurance_specialist

report_generation:
  description: >
    List the reports from the Transcript Analyzer and the Quality Assurance
    Specialist, then develop a detailed action plan for customer service managers
    to implement the changes.
    Use the data from these agents output to create an organized report including
    a summarization and actionable recommendations for call center managers.
    Ensure the report includes keywords and sentiment analysis from the Transcript
    Analyzer agent.
    Ensure the report includes the Quality Assurance Specialist agent's report,
    evaluation metrics and recommendations for improving customer service quality.
    Ensure the report is well written and easy to understand.
    Be smart and well explained.
    Ensure the report is comprehensive, organized, and easy to understand with
    labeled sections with relevant information.
  expected_output: >
    A comprehensive report that lists the reports from the Transcript Analyzer,
    then the Quality Assurance Specialist. 
    The report should include the key insights from {transcript} and the quality
    evaluation report from the Quality Assurance Specialist.
    The report should include organized sections for each agent's findings,
    summaries, and actionable recommendations for call center managers.
  agent: report_generator
  context: 
    - transcript_analysis
    - quality_evaluation

Der Aufgaben-Workflow wird in einem sequenziellen Prozess ausgeführt, beginnend mit der Transkriptanalyse, die durch den Transkriptanalysator abgeschlossen wird. Die Ergebnisse einer Aufgabe können den Kontext für eine zukünftige Aufgabe festlegen. In der nächsten Sequenz nutzt der Qualitätssicherungsspezialist den Bericht zur Transkriptanalyse zur Qualitätsbewertung. Dabei notiert er alle Schlüsselwörter oder Ausdrücke, die auf eine Eskalation hinweisen.

Der Berichtsgenerator-Agent verwendet die Ausgaben des Transkript-Analysators und der Qualitätssicherungsagenten als Kontext, um einen umfassenden Bericht über das Anrufprotokoll zu erstellen. Dieser Ablauf ist ein Beispiel für die Multi-Agenten-Kollaboration und zeigt, wie Agenten bei der Erfüllung ihrer spezialisierten Rollen komplexe Aufgaben erledigen und durch erhöhtes Kontextbewusstsein robustere Ergebnisse erzielen können.

Schritte

Schritt 1. Einrichten Ihrer Umgebung

Zuerst müssen wir unsere Umgebung für die Ausführung der Anwendung einrichten. Sie finden diese Schritte in der Markdown-Datei im crewAI-Projektordner auf GitHub oder indem Sie der Anleitung hier folgen.

  • Stellen Sie sicher, dass Python >=3.10 <=3.13 auf Ihrem System installiert ist. Sie können Ihre Python-Version überprüfen, indem Sie den Befehl„python3 –version“ verwenden.

Die Projektstruktur sollte den folgenden Schritten ähneln:

src/customer_service_analyzer/

├── config/
│   ├── agents.yaml    # Agent configurations
│   └── tasks.yaml     # Task definitions
├── tools/
│   ├── custom_tool.py # Custom crewAI tool implementations
│   └── tool_helper.py # Custom tool helper functions
├── crew.py           # Crew orchestration
└── main.py          # Application entry point

Schritt 2. watsonx-API-Anmeldedaten erhalten

  1. Melden Sie sich mit Ihrem IBM Cloud®-Konto bei watsonx.ai an.
  2. Erstellen Sie ein watsonx.ai-Projekt. Notieren Sie sich Ihre Projekt-ID unter Projekt > Verwalten > Allgemein > Projekt-ID. Sie benötigen diese ID für dieses Tutorial.
  3. Erstellen Sie eine Instanz des watsonx.ai Runtime Service (wählen Sie den Lite-Plan als kostenlose Instanz).
  4. Generieren Sie einen watsonx-API-Schlüssel.
  5. Verknüpfen Sie den watsonx.ai Runtime Service mit dem Projekt, das Sie in watsonx.ai erstellt haben.

Schritt 2. Serper-API-Anmeldedaten erhalten

Generieren und notieren Sie Ihren kostenlosen Serper-API-Schlüssel. Serper ist die Google-Search-API, die wir in diesem Projekt verwenden.

Schritt 4. Installieren von CrewAI und Einrichten Ihrer Zugangsdaten

Wir müssen das crewAI-Framework für dieses Tutorial installieren und die watsonx.ai-Anmeldedaten einrichten, die wir in Schritt 2 generiert haben.

Wenn Sie „uv“ für die Paketverwaltung verwenden, können Sie crewAI wie folgt hinzufügen:

uv tool install crewai

Wenn Sie „pip“ für die Paketverwaltung verwenden, richten Sie eine virtuelle Umgebung ein und installieren Sie dann crewAI in dieser Umgebung.

python3 -m venv venv
source ./venv/bin/activate

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um crewAI zu installieren:

pip install 'crewai[tools]'

In a separate .env file at the same directory level as the .env_sample file, set your credentials as strings like so:

WATSONX_APIKEY=your_watson_api_key_here
WATSONX_PROJECT_ID=your_watsonx_project_id_here
WATSONX_URL=your_endpoint (e.g. "https://us-south.ml.cloud.ibm.com")
SERPER_API_KEY=your_serper_api_key_here

Schritt 5. (Optional) Anpassen des Teams

CrewAI kann so konfiguriert werden, dass es jedes Open-Source-LLM verwendet. LLMs können über Ollama und verschiedene andere APIs wie IBM watsonx und OpenAI verbunden werden. Benutzer können auch vorgefertigte Tools nutzen, die über das crewAI-Toolkit verfügbar sind, sowie die LangChain-Tools.

Schritt 6. Ausführen des Systems

Stellen Sie sicher, dass Sie sich im richtigen Arbeitsverzeichnis dieses Projekts befinden. Sie können Verzeichnisse ändern, indem Sie den folgenden Befehl in Ihrem Terminal ausführen.

cd crew-ai-projects/multiagent-collab-cs-call-center-analysis

Führen Sie diesen Befehl im Stammordner Ihres Projekts aus, um Ihr Team von KI-Agenten zu starten und mit der Ausführung der Aufgaben zu beginnen. Beachten Sie, dass das Team möglicherweise einige Minuten läuft, bevor es ein Ergebnis zurückgibt.

crewai run

 

Dieser Befehl initialisiert das Call-Center-Analyseteam, stellt die Agenten zusammen und weist ihnen die in Ihrer Konfiguration definierten Aufgaben zu. In diesem unveränderten Beispiel wird IBM Granite auf watsonx.ai ausgeführt, um eine report.md-Datei mit der Ausgabe zu erstellen. crewAI kann JSON, Pydantic-Modelle und unaufbereitete Zeichenfolgen als Ausgabe zurückgeben. Hier ist ein Beispiel für eine vom Team produzierte Ausgabe.

Beispielausgabe

This result is an example of the final output after running the crew:

**Detailed Analysis Report of the Customer Service Interaction Transcript**

**Transcript Analysis Report**

The customer, Cynthia, called to report a damaged product, a jar of peanut butter that was open and spilled everywhere. She requested a replacement, but the agent, Gerald, responded defensively and blamed her for not noticing the damage before purchasing. The conversation escalated, with Cynthia becoming frustrated and threatening to post a negative review and contact the supervisor.

**Key Insights and Themes**

* The customer was dissatisfied with the product and the agent's response.
* The agent was unhelpful, unprofessional, and failed to take responsibility for the company's mistake.
* The conversation was confrontational, with both parties becoming increasingly agitated.
* The customer felt disrespected and unvalued, while the agent seemed dismissive and uncaring.

**Sentiment Analysis**

* Customer Sentiment: Frustrated, Angry, Disappointed
* Agent Sentiment: Defensive, Dismissive, Uncaring

**Keyword Extraction**

* Damaged Product
* Unhelpful Agent
* Confrontational Conversation
* Customer Dissatisfaction
* Unprofessional Response

**Escalation Risks**

* Negative Review: The customer threatened to post a negative review if the issue was not resolved promptly.
* Supervisor Involvement: The customer may contact the supervisor to report the incident and request further action.

**Recommendations for Quality Assurance Specialist**

* Review the call recording to assess the agent's performance and provide feedback on areas for improvement, using customer service metrics.
* Investigate the root cause of the damaged product and implement measures to prevent similar incidents in the future.
* Provide training on customer service skills, including active listening, empathy, and conflict resolution, using customer service standards.
* Monitor the customer's feedback and respond promptly to any concerns or complaints to maintain a positive customer experience.
* Recognize the standards for various customer service metrics to measure key performance indicators that are related to the areas mentioned above.

**Summary of Quality Evaluation Report**

The customer, Cynthia, called to report a damaged product, a jar of peanut butter that was open and spilled everywhere. She requested a replacement, but the agent, Gerald, responded defensively and blamed her for not noticing the damage before purchasing. Evaluation metrics showed a low Customer Satisfaction Score (CSAT), high Customer Effort Score (CES), and negative Net Promoter Score (NPS).

**Recommendations for Call Center Managers**

* Review the call recording, investigate the root cause of the damaged product, and provide training on customer service skills. Recognize the standards for various customer service metrics to measure key performance indicators.
* Monitor the customer's feedback and respond promptly to any concerns or complaints to maintain a positive customer experience.
* Implement measures to prevent similar incidents in the future, such as improving product packaging and handling procedures.
* Provide feedback and coaching to agents on their performance, highlighting areas for improvement and recognizing good performance.

Fazit

Wie in der Beispielausgabe dargestellt, haben die Agenten zusammengearbeitet, um die komplexe Aufgabe der Analyse, Bewertung und Erstellung eines Berichts über das Beispieltranskript zu erfüllen. Die Zusammenarbeit zwischen den Agenten verbesserte die Effizienz und Genauigkeit der Anwendung, indem jeder Agent so orchestriert wurde, dass er sich auf einen bestimmten Aspekt des Prozesses spezialisierte. Der Berichtsagent erstellte beispielsweise einen organisierten Bericht, der die Ergebnisse der Textanalyse- und Bewertungsaufgaben enthält. Dieses Ergebnis spiegelt eine reibungslose Koordination zwischen den Agenten bei der Bearbeitung verschiedener Teile des Workflows wider.

Multi-Agent-Frameworks können durch die Zusammenarbeit der Agenten eine robustere und verbesserte Gesamtleistung bieten. Nicht jede Multi-Agent-Architektur funktioniert gleich. Einige sind beispielsweise speziell für die Softwareentwicklung konzipiert, während andere, etwa crewAI und AutoGen, besser zusammensetzbare Konfigurationen bieten.

Weiterführende Lösungen
Entwicklung von IBM KI-Agenten 

Ermöglichen Sie Entwicklern die Erstellung, Bereitstellung und Überwachung von KI-Agenten mit dem IBM watsonx.ai Studio.

watsonx.ai erkunden
IBM KI-Agenten und -Assistenten

Erzielen Sie bahnbrechende Produktivität mit einem der branchenweit umfassendsten Funktionenpakete, das Unternehmen bei der Erstellung, Anpassung und Verwaltung von KI-Agenten und KI-Assistenten unterstützt. 

Erkunden Sie KI-Agenten
IBM Granite

Erzielen Sie Kosteneinsparungen von über 90 % mit den kleineren und offenen Modellen von Granite, die auf Entwicklereffizienz ausgelegt sind. Diese auf Unternehmen abgestimmten Modelle bieten eine herausragende Leistung bei Sicherheitsbenchmarks und in einem breiten Spektrum von Unternehmensaufgaben von Cybersicherheit bis RAG.

Granite erkunden
Machen Sie den nächsten Schritt

Automatisieren Sie Ihre komplexen Workflows und erzielen Sie bahnbrechende Produktivität mit einem der branchenweit umfassendsten Funktionspakete, das Unternehmen bei der Erstellung, Anpassung und Verwaltung von KI-Agenten und KI-Assistenten unterstützt. 

watsonx.ai Agentenentwicklung erkunden Entdecken Sie watsonx Orchestrate