Kolaborasi multiagen untuk analisis panggilan pelanggan menggunakan watsonx.ai dan CrewAI

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

Technical Content, Editorial Lead

IBM

Dalam tutorial ini, kami mendemonstrasikan bagaimana tim dari beberapa agen kecerdasan buatan (AI) dapat berkolaborasi untuk menyelesaikan tugas yang kompleks dan mengoptimalkan alur kerja. Kami membangun aplikasi Python untuk menjelaskan orkestrasi agen khusus yang beroperasi dalam arsitektur multiagen. Pada bagian akhir, Anda akan melihat dan menjalankan contoh kolaborasi multiagen dalam aplikasi AI agen.

Aplikasi yang kita kerjakan adalah kru analisis layanan pelanggan menggunakan CrewAI sebagai kerangka kerja multiagen dan IBM watsonx.ai untuk menerapkan model bahasa besar (LLM) yang mendukungnya.

Agen AI adalah entitas berbasis LLM yang dapat melakukan operasi atas nama pengguna atau sistem AI agen. Arsitektur agen terstruktur di sekitar dua sistem yang berbeda: tunggal dan multiagen.

Sistem agen tunggal paling baik untuk memecahkan masalah sempit karena mereka bergantung pada satu agen LLM untuk melakukan tugas AI generatif. Misalnya, seorang agen chatbot dapat difokuskan pada berbagai tugas atau percakapan tertentu yang dapat diselesaikan dalam lingkup kemampuan individualnya.

Sistem multiagen (MAS) adalah kerangka kerja yang mengatur fungsi dan interaksi antara agen AI. Alih-alih mencoba mencakup semua kemampuan dalam satu agen, arsitektur multiagen menggunakan agen yang berbeda untuk bekerja dalam lingkungan yang sama guna mencapai tujuan bersama. Manfaat utama dari sistem multiagen termasuk kolaborasi agen dan kemampuan beradaptasi untuk memecahkan masalah melampaui kemampuan agen tunggal. Pendekatan terbaik bergantung pada tingkat kompleksitas tugas machine learning yang diperlukan untuk menyusun solusi atau mencapai hasil tertentu.

Pemecahan masalah dengan sistem multiagen

crewAI adalah kerangka kerja agen sumber terbuka yang mengatur otomatisasi agen LLM dengan merakit kru yang dapat disesuaikan atau tim agen bermain peran. Kami menerapkan contoh penggunaan industri yang disederhanakan untuk menjelaskan bagaimana agen berkolaborasi dalam arsitektur multiagen.

Bayangkan contoh penggunaan dunia nyata untuk pusat panggilan layanan pelanggan. Perangkat lunak telekomunikasi untuk menganalisis transkrip pusat panggilan digunakan untuk meningkatkan pengalaman pelanggan dan mengevaluasi kualitas panggilan. Dalam perangkat lunak yang lebih canggih, transkrip bahkan dapat dianalisis secara real-time bersama dengan kumpulan data besar, termasuk metadata panggilan. Untuk keperluan dapat dijelaskan, kumpulan data aplikasi kami sederhana, yaitu transkrip simulasi antara seorang perwakilan layanan pelanggan dan pelanggan.

# 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. 

Sebuah tim agen kolaboratif membuat laporan komprehensif berdasarkan analisis teks dan metrik evaluasi pusat panggilan pelanggan. Laporan ini membantu manajer layanan pelanggan merangkum peristiwa utama panggilan, mengevaluasi kinerja, dan memberikan rekomendasi untuk perbaikan.

Kru analisis panggilan layanan pelanggan

Gambar 1 - Diagram Arsitektur Agen Gambar 1 - Diagram arsitektur agen

Kru analisis panggilan layanan pelanggan terdiri dari tiga agen dengan peran khusus dan tujuan yang telah ditentukan sebelumnya. Konfigurasi agen mencakup analis transkrip, spesialis jaminan kualitas, dan pembuat laporan. Tujuan dan karakteristik agen ditentukan oleh tiga atribut utama, yaitu peran, tujuan, dan latar belakang.

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.

Agen analis transkrip melakukan analisis menyeluruh pada transkrip untuk mengekstrak insight utama dan informasi penting. Analis kemudian merangkum temuannya ke dalam laporan yang diteruskan kepada agen lain untuk membantu mereka dalam tugas-tugas mereka. Agen ini menggunakan rangkaian alat khusus untuk melakukan berbagai teknik pemrosesan bahasa alami (NLP) seperti ekstraksi kata kunci dan analisis sentimen.

Agen spesialis jaminan kualitas mengevaluasi kualitas panggilan berdasarkan insight utama dari laporan analis transkrip dan keahliannya sendiri yang diuraikan dalam menerapkan dan mengevaluasi metrik evaluasi pusat panggilan. Agen ini juga dapat mencari di internet untuk mengambil metrik dan proses yang relevan untuk mengevaluasi kinerja karyawan dan memberikan masukan untuk meningkatkan kualitas layanan secara keseluruhan.

Agen pembuat laporan membuat laporan berdasarkan insight dalam laporan analisis transkrip dan metrik serta masukan yang diberikan oleh evaluasi jaminan kualitas. Agen ini mengkhususkan diri dalam mengatur data ke dalam laporan komprehensif. Tujuan dari laporan ini adalah untuk memberikan manajer layanan pelanggan perincian insight utama dari panggilan dan rekomendasi untuk meningkatkan kualitas layanan pelanggan.

Alat agen

Setiap agen memiliki akses ke alat, keterampilan, atau fungsi yang digunakan agen untuk melaksanakan tugas-tugas yang berbeda. crewAI menawarkan alat yang sudah ada, integrasi dengan alat LangChain, dan opsi untuk membuat alat khusus Anda sendiri. Kru analisis layanan pelanggan menggunakan kombinasi alat dan setiap alat ditentukan untuk tugas agen dan tujuan aplikasi. Setiap agen memiliki izin tertentu untuk alat yang dapat diakses dalam konfigurasinya.
 
Alat khusus dibuat dengan mendefinisikan deskripsi yang jelas tentang tujuan penggunaan alat tersebut. Misalnya, agen analis transkrip memiliki beberapa alat khusus untuk analisis teks.


# 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

Deskripsi alat adalah apa yang digunakan agen sebagai logika untuk melakukan analisis sentimen pada transkrip.

Agen juga dapat menggunakan alat yang ada dan antarmuka pemrograman aplikasi (API) terintegrasi. Agen spesialis jaminan kualitas memiliki akses kesearch_tool  yang menggunakan SerperDevTool untuk mencari di internet dan menampilkan hasil yang paling relevan dengan pertanyaannya. Agen dapat menggunakan peran khusus sebagai evaluator layanan pelanggan berpengalaman, tetapi juga memanfaatkan internet untuk mencari metrik yang diperlukan untuk mengevaluasi panggilan dan digunakan dalam laporannya.

Alur kerja tugas

Tugas adalah tugas spesifik yang diselesaikan oleh agen dengan perincian pelaksanaan yang difasilitasi oleh tiga atribut tugas yang diperlukan: deskripsi, agen, dan output yang diharapkan. Agen melakukan tugas mereka dalam urutan logis dengan menggunakan deskripsi terperinci untuk setiap tugas sebagai panduan.

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

Alur kerja tugas dijalankan dalam proses berurutan yang dimulai dengan analisis transkrip yang diselesaikan oleh analis transkrip. Hasil dari satu tugas dapat menetapkan konteks untuk tugas mendatang. Selama urutan berikutnya, spesialis jaminan kualitas memanfaatkan laporan analisis transkrip untuk menginformasikan evaluasi kualitasnya, dengan mencatat kata kunci atau frasa yang menunjukkan eskalasi.

Agen pembuat laporan menggunakan output dari analis transkrip dan agen spesialis jaminan kualitas sebagai konteks untuk membuat laporan komprehensif tentang transkrip panggilan. Alur ini adalah contoh kolaborasi multiagen dan bagaimana agen dapat menyelesaikan berbagai tugas kompleks dan membuat output yang lebih kuat dengan peningkatan kesadaran konteks saat melakukan peran khusus mereka.

Langkah-langkah

Langkah 1. Siapkan lingkungan Anda

Pertama, kita perlu menyiapkan lingkungan untuk menjalankan aplikasi. Anda dapat menemukan langkah-langkah ini dalam file Markdown di dalam folder proyek crewAI di GitHub atau dengan mengikuti di sini.

  • Pastikan Python >=3.10 <=3.13 diinstal pada sistem Anda. Anda dapat memeriksa versi Python Anda menggunakanperintah –versi python3.
  • Kloning repositori GitHub yang ditemukan di sini. Untuk langkah-langkah terperinci tentang cara membuat kloning repositori, lihat dokumentasi GitHub.

Struktur proyek harus menyerupai langkah-langkah berikut:

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

Langkah 2. Dapatkan kredensial API watsonx

  1. Masuk ke watsonx.ai menggunakan aku IBM Cloud Anda.
  2. Buat proyek watsonx.ai. Catat ID proyek Anda di proyek > Kelola > Umum > ID Proyek. Anda akan memerlukan ID ini untuk tutorial ini.
  3. Buat instans layanan Waktu Proses watsonx.ai (pilih paket Lite, yang merupakan instans gratis).
  4. Buat Kunci API watsonx.
  5. Kaitkan layanan Waktu Proses watsonx.ai dengan proyek yang Anda buat di watsonx.ai.

Langkah 3. Dapatkan kredensial API Serper

Buat dan catat kunci API Serper gratis Anda. Serper adalah API Google Search yang kita gunakan dalam proyek ini.

Langkah 4. Instal crewAI dan siapkan kredensial Anda

Kita perlu menginstal kerangka kerja crewAI untuk tutorial ini dan menyiapkan kredensial watsonx.ai yang telah kita buat dalam langkah 2.

Jika menggunakan uv untuk manajemen paket, Anda dapat menambahkan crewAI sebagai berikut:

uv tool install crewai

Jika menggunakan pip untuk manajemen paket, siapkan lingkungan virtual dan kemudian instal crewAI di lingkungan itu.

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

Untuk menginstal crewAI, jalankan perintah berikut di terminal Anda.

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

Langkah 5. (Opsional) Sesuaikan kru

crewAI dapat dikonfigurasi untuk menggunakan LLM sumber terbuka apa pun. LLM dapat dihubungkan melalui Ollama dan beberapa API lainnya seperti IBM watsonx dan OpenAI. Pengguna juga dapat memanfaatkan alat yang telah dibuat sebelumnya yang tersedia melalui crewAI Toolkit serta LangChain Tools.

Langkah 6. Jalankan sistem

Pastikan Anda berada di direktori kerja proyek ini yang tepat. Anda dapat mengubah direktori dengan menjalankan perintah berikut di terminal Anda.

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

Untuk memulai kru agen AI Anda dan memulai eksekusi tugas, jalankan perintah ini dari folder root proyek Anda. Perhatikan, kru mungkin harus dijalankan selama beberapa menit sebelum menampilkan hasil.

crewai run

 

Perintah ini mengawali kru analisis pusat panggilan, mengumpulkan agen, dan memberikan mereka tugas sebagaimana ditentukan dalam konfigurasi Anda. Contoh ini, tidak dimodifikasi, akan menjalankan IBM Granite di watsonx.ai untuk membuat file report.md dengan output. crewAI dapat menampilkan JSON, model Pydantic, dan string mentah sebagai output. Berikut adalah contoh output yang dihasilkan oleh kru.

Contoh output

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.

Kesimpulan

Seperti yang ditunjukkan dalam output contoh, agen bekerja sama untuk menyelesaikan tugas kompleks berupa analisis, evaluasi, dan pembuatan laporan tentang transkrip contoh. Kolaborasi di antara agen meningkatkan efisiensi dan akurasi aplikasi dengan mengatur setiap agen untuk mengkhususkan diri dalam aspek tertentu proses ini. Agen laporan, misalnya, menghasilkan laporan tertata yang mencakup temuan dari tugas analisis dan evaluasi teks. Hasil ini mencerminkan koordinasi yang lancar di antara agen dalam menangani bagian alur kerja yang berbeda.

Kerangka kerja multiagen dapat memberikan kinerja keseluruhan yang lebih kuat dan lebih baik melalui kolaborasi agen. Tidak semua arsitektur multiagen bekerja dengan cara yang sama. Misalnya, beberapa di antaranya khusus untuk pengembangan perangkat lunak, sementara yang lain, seperti crewAI dan AutoGen, menawarkan konfigurasi yang dapat lebih disesuaikan.

Solusi terkait
Pengembangan agen AI IBM 

Bantu pengembang untuk membangun, menerapkan, dan memantau agen AI dengan studio IBM watsonx.ai.

Jelajahi watsonx.ai
Agen AI dan asisten IBM

Ciptakan produktivitas inovatif dengan salah satu rangkaian kemampuan paling komprehensif di industri untuk membantu bisnis membangun, menyesuaikan, dan mengelola agen dan asisten AI. 

Jelajahi agen AI
IBM Granite

Raih penghematan biaya lebih dari 90% dengan model Granite yang lebih kecil dan terbuka, yang dirancang untuk efisiensi pengembang. Model yang sesuai dengan kebutuhan perusahaan ini memberikan kinerja luar biasa terhadap tolok ukur keamanan dan di berbagai tugas perusahaan, mulai dari keamanan siber hingga RAG.

Jelajahi Granite
Ambil langkah selanjutnya

Otomatisasi alur kerja yang kompleks dan ciptakan produktivitas inovatif dengan salah satu rangkaian kemampuan paling komprehensif di industri untuk membantu bisnis membangun, menyesuaikan, dan mengelola agen dan asisten AI. 

Jelajahi pengembangan agen watsonx.ai Temukan watsonx Orchestrate