Latar Belakang Proyek
Tahun lalu, saya diminta oleh sebuah startup fintech di Bandung untuk membangun AI Agent yang bisa menangani customer service mereka. Challenge utamanya: agent harus bisa memahami bahasa Indonesia yang campur-campur (informal), handle multiple channel (WhatsApp, web chat, email), dan tetap akurat dalam memberikan informasi produk keuangan.
Ini adalah proyek yang sangat menarik karena menggabungkan NLP, integrasi multi-channel, dan business logic yang kompleks. Berikut saya ceritakan bagaimana kami menyelesaikannya.
Arsitektur Sistem
Kami membangun sistem dengan tiga layer utama:
// System Architecture
type CustomerServiceAgent struct {
// Layer 1: Channel Adapters
whatsapp *WhatsAppAdapter
webchat *WebChatAdapter
email *EmailAdapter
// Layer 2: AI Core
nlu *NaturalLanguageUnderstanding
dialog *DialogManager
llm *LLMClient
// Layer 3: Business Logic
account *AccountService
ticket *TicketService
knowledge *KnowledgeBase
}
// Flow: User Input → Channel Adapter → NLU → Dialog Manager → LLM → Response
func (a *CustomerServiceAgent) HandleMessage(ctx context.Context, msg IncomingMessage) error {
// Normalize input
normalized := a.normalize(msg.Content)
// Understand intent
intent, entities := a.nlu.Understand(normalized)
// Route based on intent
switch intent.Type {
case IntentBalanceCheck:
return a.handleBalanceCheck(ctx, msg, entities)
case IntentTransfer:
return a.handleTransfer(ctx, msg, entities)
case IntentComplaint:
return a.handleComplaint(ctx, msg, entities)
default:
return a.handleGeneralQuery(ctx, msg)
}
}Tantangan Bahasa Indonesia
Tantangan terbesar adalah memahami bahasa Indonesia informal. User menulis dengan singkatan, slang, dan kadang campur bahasa. Misalnya 'tf 50k ke mba rina' atau 'cek saldo dong'. Untuk mengatasi ini, kami training custom NLU model dengan ribuan dataset percakapan customer service asli.
// Custom NLU untuk bahasa Indonesia informal
var informalPatterns = map[string]string{
"tf": "transfer",
"cek saldo": "check_balance",
"dong": "_filler",
"mba": "_addressing",
"kak": "_addressing",
"gmn": "gimana",
"bs": "bisa",
"utk": "untuk",
}Hasil dan Metrik
Setelah 6 bulan deployment, hasilnya sangat memuaskan. Resolution rate naik dari 45% ke 82%. Response time rata-rata turun dari 4 menit ke 15 detik. Customer satisfaction score naik 30%. Yang paling impressive adalah agent kami bisa handle 70% pertanyaan tanpa intervensi human agent.
Tentu saja ada juga edge case yang harus di-handle manual, terutama untuk kasus yang melibatkan emosi customer atau keputusan bisnis yang complex. Kami implement handoff mechanism yang mulus dari AI agent ke human agent.
Pelajaran Penting
Dari proyek ini, pelajaran terpenting saya dapatkan adalah: AI Agent untuk customer service harus humble - tahu kapan harus mengakui keterbatasannya dan beralih ke human agent. Customer tidak peduli apakah yang menjawab AI atau manusia, yang penting masalah mereka terselesaikan dengan cepat dan akurat.