Eksperimen Membangun WhatsApp AI yang Aman dengan Baileys dan Hermes Agent

Halo Sobat Codekop, kali ini saya ingin sharing pengalaman tentang eksperimen membangun asisten AI yang dapat digunakan langsung melalui WhatsApp.

Eksperimen ini berawal dari kebutuhan untuk berinteraksi dengan project dan server tanpa harus selalu membuka dashboard. WhatsApp kemudian saya jadikan sebagai salah satu interface untuk bertanya tentang coding, membaca source code, membuat draft artikel, mengambil informasi tertentu, dan membantu beberapa workflow yang saya gunakan sehari-hari.

Tujuannya bukan membuat AI memiliki akses bebas ke server, melainkan mencoba membangun assistant yang tetap praktis digunakan tetapi memiliki batasan dan mekanisme kontrol yang jelas.

Mengapa WhatsApp?

WhatsApp merupakan aplikasi yang sudah sering digunakan sehari-hari. Karena itu, menjadikannya sebagai interface untuk AI terasa cukup praktis.

Saya bisa mengirim pertanyaan atau instruksi langsung dari WhatsApp tanpa harus membuka dashboard khusus. Namun kemudahan ini juga membawa risiko tersendiri.

Tidak semua pesan boleh diproses, tidak semua pengguna boleh menggunakan bot, dan terutama tidak semua perintah boleh langsung dijalankan ke sistem.

Dari situlah eksperimen ini mulai berkembang tidak hanya sebagai chatbot, tetapi juga sebagai eksperimen mengenai permission, approval, session, dan keamanan dalam menjalankan workflow berbasis AI.

Baileys dan Hermes Agent

Pada eksperimen ini saya menggunakan Baileys untuk mengelola koneksi dan session WhatsApp.

Pesan yang masuk diproses oleh handler terlebih dahulu. Di tahap ini sistem dapat melakukan beberapa pemeriksaan seperti identitas pengirim, whitelist, status session, mode AI, dan jenis perintah.

Setelah lolos pemeriksaan, pesan kemudian diteruskan ke Hermes Agent melalui webhook. Respons dari agent selanjutnya dikirim kembali ke percakapan WhatsApp.

Secara sederhana alurnya seperti berikut:

ChatGPT Image 9 Agu 2026, 03.40.28 (1).png
Gambar Diagram Arsitektur dan WhatsApp AI

Dengan pola tersebut, WhatsApp bukan hanya menjadi tempat bertanya kepada AI, tetapi juga dapat digunakan sebagai interface untuk menjalankan workflow coding dan automasi secara lebih terkontrol.

Kenapa Tidak Langsung Menggunakan WhatsApp Bawaan Hermes?

Hermes Agent sebenarnya sudah menyediakan integrasi WhatsApp yang dapat digunakan secara langsung.

Namun saat awal membangun eksperimen ini, saya belum terlalu banyak mengeksplorasi fitur WhatsApp bawaan Hermes. Implementasi menggunakan Baileys juga sudah lebih dulu saya buat dan mulai berjalan.

Daripada membongkar ulang seluruh workflow, saya akhirnya melanjutkan pendekatan tersebut.

Ada alasan lain yang kemudian justru membuat penggunaan Baileys sendiri tetap berguna. Saya membutuhkan koneksi WhatsApp dan API custom tersebut bukan hanya untuk Codekop AI, tetapi juga untuk kebutuhan project lain.

Dengan membuat layer sendiri, saya memiliki kontrol lebih besar terhadap proses penerimaan pesan, routing, session, whitelist, webhook, API, hingga bagaimana respons dikirim kembali.

Memang jalurnya menjadi sedikit lebih panjang dibanding langsung menggunakan integrasi bawaan Hermes. Namun dari sisi eksperimen, justru dari situ saya dapat mempelajari lebih banyak bagian yang biasanya sudah ditangani otomatis oleh tool bawaan.

Whitelist dan Mode AI

Salah satu langkah penting adalah membatasi siapa saja yang dapat menggunakan sistem.

Saya membuat whitelist untuk nomor pribadi maupun grup tertentu. Untuk grup WhatsApp, pemeriksaan dilakukan berdasarkan JID sehingga bot tidak otomatis aktif di sembarang grup atau komunitas.

Selain whitelist, saya juga membuat mode AI yang dapat diaktifkan dan dinonaktifkan melalui perintah seperti:

/start dan /stop

Dengan begitu, keberadaan bot di suatu percakapan tidak berarti semua pesan otomatis dikirim ke AI.

Approval System

Bagian yang menurut saya cukup penting adalah approval system.

Operasi yang hanya membaca informasi dapat diperlakukan berbeda dengan operasi yang dapat mengubah keadaan sistem.

Contohnya, beberapa aktivitas yang membutuhkan approval antara lain membuat atau mengubah file, menjalankan perintah tertentu, mengubah artikel, mencatat transaksi, atau melakukan proses deploy.

Saat operasi seperti ini diminta, sistem tidak langsung menjalankannya.

Pengguna harus memberikan approval terlebih dahulu, misalnya:

Izinkan sekali

atau

Izinkan selama sesi

Approval dicatat berdasarkan session dan identitas pengirim.

19e23039-86e7-4e79-96cc-5f2286239e79.jpeg
Contoh alur pencatatan pengeluaran menggunakan bahasa natural dan approval sebelum data disimpan.

Lalu pesan percakapan biasa seperti "boleh", "oke", atau "lanjut" tidak otomatis dianggap sebagai izin sistem.

Dengan cara ini, percakapan biasa tetap dipisahkan dari mekanisme otorisasi sehingga AI tidak dapat menganggap sebuah balasan informal sebagai izin untuk menjalankan operasi penting.

Memisahkan Read-only dan Mutation

Saya juga mencoba memisahkan operasi menjadi dua kategori utama.

Operasi read-only hanya membaca informasi tanpa mengubah keadaan sistem. Contohnya membaca status server, membaca source code, mengambil data, melihat informasi tertentu, atau mengambil berita.

Operasi seperti ini relatif lebih aman untuk diproses.

Sebaliknya, operasi mutation dapat mengubah data atau kondisi sistem.

Contohnya menulis file, mengubah database, mencatat transaksi, menjalankan command tertentu, mengubah artikel, atau melakukan deploy.

Untuk kategori ini, proses ditahan sampai approval yang sesuai tersedia.

Pemisahan ini membantu mengurangi risiko ketika AI salah memahami maksud pengguna atau menghasilkan tindakan yang sebenarnya tidak diinginkan.

Batasan Akses

Walaupun assistant dapat terhubung dengan beberapa workflow, saya tidak memberikan akses tanpa batas ke server.

Tool dan perintah yang tersedia tetap dibatasi berdasarkan kebutuhan.

Operasi sensitif harus melewati pemeriksaan dan approval terlebih dahulu, sementara data rahasia seperti token, password, credential, dan private key sebisa mungkin tidak diberikan ke konteks AI.

Menurut saya bagian ini cukup penting karena kemampuan AI yang besar tidak selalu berarti AI harus diberikan akses yang besar juga.

Semakin banyak akses yang diberikan, semakin penting pula mekanisme pembatasannya.

Tantangan Selama Eksperimen

Dalam proses eksperimen, ternyata bagian tersulit bukan hanya menghubungkan WhatsApp dengan AI.

Beberapa masalah justru muncul pada bagian kontrol eksekusi.

Salah satunya adalah menyinkronkan approval dari WhatsApp dengan execution guard pada terminal. Sistem harus mengetahui bahwa sebuah operasi benar-benar sudah mendapatkan izin dari pengguna yang sesuai.

Masalah lain adalah retry.

Pada operasi tertentu, request yang terkirim dua kali dapat menyebabkan efek ganda. Pada transaksi misalnya, retry yang tidak ditangani dengan benar berpotensi membuat data tercatat lebih dari satu kali.

Karena itu diperlukan mekanisme seperti idempotency atau identifier tertentu agar operasi yang sama tidak diproses berulang.

Tantangan berikutnya adalah perlindungan secret.

Token API, password, private key, credential database, dan data sensitif lainnya harus dipastikan tidak ikut masuk ke prompt atau respons AI secara sembarangan.

Bagian-bagian seperti ini justru menjadi pelajaran menarik selama eksperimen berlangsung.

Contoh Penggunaan

Dengan struktur tersebut, Codekop AI dapat digunakan untuk beberapa kebutuhan.

Misalnya membantu membaca source code dan memberikan saran coding, mencari informasi atau berita teknologi, membantu membuat draft artikel, membaca status tertentu dari server, serta menjalankan workflow yang sudah disediakan melalui API.

Untuk kebutuhan yang bersifat mutatif, seperti mencatat data keuangan atau menjalankan operasi sistem tertentu, proses tetap membutuhkan konfirmasi sebelum dilakukan.

Dengan begitu saya tetap bisa mendapatkan kemudahan menggunakan AI melalui WhatsApp tanpa harus memberikan kebebasan penuh terhadap sistem.

Yang Saya Pelajari

Dari eksperimen ini saya mulai memahami bahwa membangun AI assistant ternyata bukan hanya soal menghubungkan sebuah model AI ke WhatsApp.

Kemampuan model hanyalah salah satu bagian.

Identitas pengirim, whitelist, session, permission, approval, audit, retry handling, perlindungan secret, dan mekanisme ketika terjadi kegagalan justru sama pentingnya.

Semakin dekat AI dengan sistem nyata seperti server, database, file, dan transaksi, semakin penting pula batas antara AI yang hanya memberikan saran dengan AI yang benar-benar diperbolehkan melakukan tindakan.

Pengalaman menggunakan Baileys sebagai layer sendiri juga membuat prosesnya memang sedikit lebih ribet dibanding menggunakan integrasi siap pakai.

Namun justru dari situ saya bisa mempelajari bagaimana pesan diterima, diverifikasi, diteruskan ke agent, sampai akhirnya menghasilkan sebuah tindakan atau respons.

Penutup

Eksperimen WhatsApp AI menggunakan Baileys dan Hermes Agent ini masih terus saya kembangkan.

Tujuannya bukan membuat AI yang dapat melakukan semuanya secara bebas, tetapi membangun assistant yang cukup praktis untuk membantu coding dan automasi sehari-hari sambil tetap memiliki batasan yang jelas.

Ke depannya mungkin masih banyak bagian yang perlu diperbaiki, terutama dari sisi permission, keamanan, audit, dan reliability.

Namun sejauh ini eksperimen tersebut memberikan gambaran bahwa membuat AI assistant yang benar-benar terhubung dengan workflow nyata membutuhkan lebih dari sekadar model AI yang pintar.

Yang tidak kalah penting adalah bagaimana kita menentukan apa yang boleh dibaca, apa yang boleh dilakukan, siapa yang boleh memberikan izin, dan apa yang harus terjadi ketika sesuatu gagal.


Disusun oleh Fauzan Falah bersama Codekop AI.

Komentar