Lewati ke konten
Deska Mulyana
Semua karya

Studi kasus

Cierra

Agen penjualan AI untuk penjual di WhatsApp

Cierra menjawab chat pembeli di nomor WhatsApp milik penjual sendiri, menawar dalam batas diskon yang ditetapkan penjual, dan menyimpan pesanan sebagai draf untuk dikonfirmasi penjual. Halaman ini membahas bagaimana Cierra dibangun dan alasannya.

Peran saya
API Go, gateway WhatsApp, layanan AI, dan infrastruktur
Tim
Dua engineer. Dasbor web sebagian besar oleh Dimas Danang Aji
Status
MVP sudah dibangun, pendaftaran pilot dibuka. Rilis layanan WhatsApp dan AI ke produksi masih menunggu
Stack
Go, Python, gRPC, PostgreSQL + pgvector, Redis Streams, Next.js, Docker, Terraform
Landing page Cierra

Masalahnya

Balasan yang lambat membuat penjual kehilangan pembeli

  • Penjual kehilangan pembeli karena balasan yang lambat.
  • Mereka mengulang negosiasi yang sama sepanjang hari.
  • Pesanan hilang di tengah chat.

Agen berbicara dengan pelanggan sungguhan atas nama penjual. Jadi bagian tersulitnya bukan menghasilkan balasan, tetapi memastikan agen tidak pernah menjanjikan sesuatu yang tidak diizinkan penjual.

Arsitektur

Layanan kecil, dengan satu antrean di antaranya

  1. PembeliWhatsApp
  2. GatewayGo, whatsmeow
  3. AntreanRedis Streams
  4. Worker APIGo
  5. Layanan AIPython, gRPC
  6. LLMQwen, API kompatibel OpenAI
  • PostgreSQL 16 + pgvectorSumber kebenaran dan pencarian katalog
  • DasborNext.js lewat REST dan SSE
  • ObservabilityOpenTelemetry, Prometheus, Grafana, Loki

Arahkan kursor ke diagram untuk melihat aliran data dari kiri ke kanan.

Tiga aturan batas

  1. 01API adalah satu-satunya layanan yang menghadap internet. Gateway, layanan AI, database, dan Redis hanya bisa dijangkau di dalam jaringan privat.
  2. 02Gateway tidak pernah berbicara langsung ke LLM. Semuanya lewat antrean.
  3. 03Setiap query database membawa konteks tenant, dan lapisan repository menolak query tanpa konteks itu.

Satu pesan

Apa yang terjadi ketika pembeli minta diskon

  1. Pembeli menulis: “Ada warna merah? Bisa diskon?”

  2. Gateway menerimanya, membuang duplikat berdasarkan id pesan WhatsApp, menyimpannya, lalu mendorongnya ke stream masuk.

  3. Sebuah worker memuat konteks: penjual, pelanggan, riwayat chat, dan playbook penjualan milik penjual.

  4. Layanan AI memeriksa kata kunci eskalasi, mencari di katalog milik penjual itu sendiri, membuat balasan terstruktur, menjalankan pengamannya, dan beralih ke model kedua bila perlu.

  5. Jika ada pesanan terdeteksi, draf pesanan dibuat dan pemilik diberi tahu. Jika chat butuh manusia, chat beralih ke mode ambil alih.

  6. Balasan dialirkan kembali, dirakit menjadi satu pesan, lalu masuk ke stream keluar.

  7. Gateway mengirimnya dengan pembatasan laju dan jeda singkat antar pesan.

Keputusan

Pilihan yang membentuk sistem, dan alasannya

Kualitas dan operasional

Cara menjaganya tetap jujur

  • 23 file tes Go dan 5 file tes Python, ditambah rangkaian evaluasi untuk agen penjualan.
  • CI menjalankan lint, tes, dan build image di setiap perubahan. Deploy dilakukan manual dari branch main, lewat self-hosted runner di server produksi, dengan image dibangun lokal dan tanpa registry eksternal.
  • Perubahan infrastruktur lewat pull request Terraform, bukan lewat konsol cloud.
  • Penyedia LLM diisolasi di modulnya sendiri, sehingga mengganti model atau vendor adalah perubahan yang terbatas.
  • Keputusan arsitektur dituliskan, dan perubahannya masuk lewat pull request pada dokumen arsitektur.

Posisi saat ini

Sudah dibangun, pekerjaan menuju peluncuran masih ada

Berdasarkan audit repositori per 13 Oktober 2026.

Selesai

  • Fondasi, API inti dengan auth, dan migrasi data
  • Gateway WhatsApp
  • Layanan AI, kode lengkap
  • Dasbor web terhubung ke API baru

Sebelum peluncuran

  • Deploy gateway dan layanan AI ke produksi
  • Uji end-to-end dengan dua HP nyata, mengukur biaya token dan waktu sampai balasan pertama
  • Alerting, runbook, dan restore drill
  • Load test

Setelah MVP

  • Follow-up otomatis
  • Transkripsi pesan suara
  • Inbox real-time
  • Konektor TikTok Shop, jika persetujuan partner turun

Merekrut untuk tim yang terbiasa merilis?

Email paling cocok untuk membahas peran dan detail proyek. Untuk pertanyaan singkat, WhatsApp juga boleh.