AI agent produksi hampir selalu bergantung ke API pihak ketiga — API WhatsApp, API model LLM, API pembayaran, API pengiriman. Semua API ini punya batas kuota (rate limit): berapa banyak permintaan yang boleh dikirim dalam periode waktu tertentu. Masalahnya bukan kalau agent kena limit sesekali — masalahnya adalah apa yang dilakukan agent SETELAH kena limit itu.
Kesalahan paling umum: retry tanpa jeda
Reaksi paling naif saat request gagal karena limit terlampaui adalah langsung mencoba lagi. Kalau semua permintaan yang gagal langsung di-retry serentak tanpa jeda, hasilnya justru memperparah — permintaan menumpuk lebih banyak lagi ke API yang sudah penuh, membuat semuanya makin lambat, dan dalam kasus terburuk bisa membuat akun API-nya sendiri kena suspend sementara karena dianggap pola pemakaian abnormal.
Circuit breaker: konsep yang dipinjam dari listrik, relevan di software
Analoginya persis sekring listrik di rumah — kalau ada korsleting, sekring memutus aliran listrik SEBELUM kerusakan lebih besar terjadi, bukan membiarkan arus terus mengalir sampai kabel terbakar. Di software, pola yang sama diterapkan: kalau sebuah API terus-menerus gagal atau kena limit dalam periode singkat, sistem “membuka circuit” — berhenti sementara mengirim request baru ke API itu, memberi jeda waktu untuk pulih, baru mencoba lagi secara bertahap (biasanya dengan jeda yang makin panjang tiap percobaan, dikenal sebagai exponential backoff). Ini mencegah satu masalah kecil menjalar jadi sistem yang macet total.
Bedanya dari sekadar “coba lagi nanti”
Yang membedakan desain matang dari sekadar tambal sulam: sistem yang baik tidak cuma menunda retry, tapi juga memberi sinyal jelas ke bagian lain sistem bahwa “API ini sedang bermasalah, jangan kirim request baru dulu” — supaya bagian lain sistem tidak ikut-ikutan antre menunggu API yang sama, yang justru memperlambat semuanya. Untuk agent yang menangani banyak percakapan sekaligus (mis. beberapa pelanggan chat bersamaan), ini penting supaya satu API bermasalah tidak membuat SEMUA percakapan macet, hanya yang benar-benar butuh API itu.
Kenapa ini beda dari sekadar error handling biasa
Error handling menjawab “apa yang terjadi kalau 1 request gagal”. Rate limiting dan circuit breaker menjawab pertanyaan yang lebih besar: “apa yang terjadi kalau BANYAK request gagal berturut-turut dalam waktu singkat”. Ini kelas masalah yang berbeda, dan sering baru terasa penting justru saat bisnis mulai tumbuh — volume yang tadinya aman (puluhan pesan sehari) tiba-tiba jadi ratusan, dan sistem yang sebelumnya “kelihatan baik-baik saja” mulai menunjukkan gejala tersendat di jam sibuk.