Bagaimana sebuah ide dari hackathon berkembang menjadi AI agent open-source yang mencoba memahami kebiasaan finansial setiap orang secara personal.
Beberapa bulan lalu saya mengikuti sebuah hackathon yang diselenggarakan oleh Bank Indonesia dengan tema pemanfaatan Artificial Intelligence untuk memberikan dampak nyata bagi masyarakat. Alih-alih membangun chatbot atau aplikasi AI generik, saya memilih sebuah permasalahan yang sangat dekat dengan kehidupan sehari-hari: bagaimana membuat AI yang benar-benar dapat membantu seseorang mengelola kondisi finansialnya secara personal.
Dari situlah SAFIA lahir.
SAFIA (Smart AI Financial Assistant) merupakan AI agent open-source yang dirancang sebagai personal financial assistant. Berbeda dengan chatbot konvensional yang hanya menjawab pertanyaan, SAFIA dibangun agar mampu memahami konteks pengguna, mengingat kebiasaan finansial mereka, serta memberikan rekomendasi yang semakin relevan seiring waktu. Menurut halaman resminya, SAFIA berfokus pada pencatatan keuangan, tanya jawab finansial, dan pengalaman yang dapat di-host sendiri (self-hosted), sehingga pengguna memiliki kendali lebih besar terhadap data mereka. (PT Maximus Solusi Digital)
Namun setelah pengembangan dimulai, saya menyadari bahwa tantangan sebenarnya bukan terletak pada penggunaan model AI, melainkan pada bagaimana membuat AI tersebut benar-benar terasa seperti asisten pribadi.
Arsitektur SAFIA: React + Proactive
Sebelum masuk lebih dalam ke tiap tantangan, ada gambaran umum arsitektur SAFIA yang saya rangkum dalam satu diagram.

Secara garis besar, SAFIA dibangun di atas tiga pilar:
- React — alur responsif ketika pengguna mengirim pesan (teks, suara, atau foto), melewati rate limit, lalu masuk ke LLM tool-calling loop yang dapat memanggil tools sampai 5 ronde sebelum menjawab.
- Tools — kumpulan kemampuan yang dapat dipanggil LLM, mulai dari pencatatan expense/income, utang-piutang, harga aset, berita, RAG knowledge base, hingga reminder dan memory. Semua tools membaca dan menulis ke SQLite.
- Proactive — background loop yang berjalan setiap 30 detik untuk mengecek reminder, mengambil data terbaru, merapikan pesan lewat LLM, lalu mengirimkannya via Telegram meskipun pengguna sedang diam.
Seluruh data — chat history, rate limit, reminder, memory, dan konfigurasi — tersimpan di SQLite dalam satu proses, tanpa Redis, tanpa cron job terpisah.
Dari Sebuah Hackathon Menjadi Sebuah Misi
SAFIA pada dasarnya berangkat dari pertanyaan sederhana: kalau AI bisa jadi asisten untuk banyak hal, kenapa tidak untuk kondisi finansial kita masing-masing?
Sejak hari pertama hackathon, targetnya sudah jelas: bukan membangun aplikasi AI yang canggih, melainkan AI yang benar-benar dekat dengan kehidupan nyata penggunanya.
AI Tidak Bisa Memperlakukan Semua Orang dengan Cara yang Sama
Salah satu pelajaran terbesar selama mengembangkan SAFIA adalah menyadari bahwa tidak ada dua pengguna yang memiliki perilaku finansial yang identik.
Ada pengguna yang aktif berinvestasi setiap hari.
Ada yang hanya ingin mencatat pengeluaran.
Ada pula yang lebih sering bertanya mengenai perencanaan keuangan dibanding mencatat transaksi.
Jika semua pengguna diberikan prompt dan konteks yang sama, jawaban AI akan terdengar generik.
Padahal tujuan utama SAFIA justru kebalikannya: membuat setiap interaksi terasa personal.
Karena itu saya mulai merancang sebuah mekanisme behavior memory, yaitu sistem yang memungkinkan AI belajar dari kebiasaan pengguna secara bertahap.
Alih-alih hanya menyimpan riwayat chat, SAFIA merekam berbagai informasi seperti:
- pola pertanyaan yang sering diajukan,
- preferensi gaya komunikasi,
- kategori transaksi yang sering muncul,
- tujuan finansial,
- hingga keputusan-keputusan yang pernah diambil pengguna.
Data tersebut kemudian diolah menjadi embedding dan disimpan menggunakan Qdrant sebagai vector database, sementara data operasional dan metadata tetap berada di SQLite.
Pendekatan ini memungkinkan AI melakukan semantic retrieval terhadap informasi yang benar-benar relevan ketika sedang menyusun jawaban.
Dengan kata lain, AI tidak hanya "mengingat" percakapan sebelumnya, tetapi juga mulai memahami karakteristik masing-masing pengguna.
Tantangan Berikutnya: AI Tidak Hanya Berinteraksi Melalui Teks
Mayoritas chatbot modern bekerja menggunakan satu jenis input: teks.
Namun ketika mencoba membangun financial assistant yang benar-benar praktis, pendekatan tersebut terasa kurang memadai.
Dalam kehidupan sehari-hari, pengguna lebih sering mengirim:
- screenshot mutasi rekening,
- foto struk belanja,
- dokumen PDF,
- laporan keuangan,
- gambar grafik investasi,
- bahkan pesan suara.
Artinya SAFIA harus mampu memahami berbagai bentuk informasi sebelum melakukan reasoning.
Hal ini mengubah arsitektur AI secara signifikan.
Alih-alih satu pipeline sederhana, SAFIA memerlukan beberapa tahap preprocessing yang berbeda untuk setiap jenis input.
Misalnya:
- OCR untuk gambar,
- document parsing untuk PDF,
- speech-to-text untuk audio,
- image understanding menggunakan vision model,
- kemudian seluruh hasil tersebut dinormalisasi menjadi konteks yang dapat dipahami oleh Large Language Model.
Menyatukan seluruh alur tersebut menjadi pengalaman yang terasa natural merupakan salah satu bagian paling menantang selama proses pengembangan.
Membuat AI yang Bisa Berjalan di Mana Saja
Karena SAFIA merupakan proyek open-source, saya ingin siapa pun dapat menjalankannya tanpa bergantung pada cloud tertentu.
Targetnya cukup ambisius:
satu kode yang dapat berjalan di Linux, macOS, maupun Windows.
Pada praktiknya, hal ini jauh lebih rumit daripada yang terlihat.
Setiap sistem operasi memiliki karakteristik yang berbeda, mulai dari pengelolaan proses, struktur direktori, mekanisme instalasi dependensi, hingga kompatibilitas pustaka Python. Perbedaan tersebut sering kali memunculkan bug yang hanya muncul di satu platform tertentu.
Akibatnya, banyak waktu dihabiskan bukan untuk menambah fitur baru, melainkan memastikan pengalaman instalasi tetap konsisten di berbagai lingkungan.
Bagi proyek open-source, pengalaman "berhasil dijalankan dalam lima menit" sering kali sama pentingnya dengan kualitas fitur yang ditawarkan.
Ketika AI Harus Melayani Banyak Pengguna Sekaligus
Tantangan terbesar justru muncul ketika SAFIA mulai digunakan oleh banyak pengguna secara bersamaan.
Pada awal pengembangan, semuanya berjalan lancar.
Namun setelah dilakukan simulasi multi-user, muncul satu pertanyaan mendasar:
Bagaimana memastikan AI tidak mencampurkan konteks antara pengguna yang satu dengan yang lain?
Untuk financial assistant, kesalahan seperti ini tidak dapat ditoleransi.
Setiap pengguna harus memiliki ruang memori yang benar-benar terisolasi.
Setiap vector embedding.
Setiap riwayat percakapan.
Setiap workflow reasoning.
Seluruhnya harus dipisahkan secara ketat.
Untuk itu, saya mendesain arsitektur dengan pemisahan data per pengguna sejak lapisan penyimpanan hingga proses reasoning. Setiap permintaan hanya dapat mengakses memori dan konteks milik pengguna yang bersangkutan, sehingga risiko kebocoran konteks dapat diminimalkan.
Di sisi lain, AI juga harus tetap responsif ketika banyak permintaan datang secara bersamaan.
Pendekatan sinkron (synchronous) akan membuat antrean permintaan semakin panjang.
Sebagai solusi, saya memanfaatkan multi-threading di Python untuk menangani berbagai pekerjaan yang bersifat I/O-bound secara paralel, seperti komunikasi dengan model AI, pengambilan konteks dari vector database, hingga pemrosesan dokumen. Dengan desain ini, beberapa proses dapat berlangsung bersamaan tanpa saling menghambat, sehingga pengalaman pengguna tetap terasa cepat meskipun beban meningkat.
Merancang workflow yang aman sekaligus efisien menjadi salah satu bagian yang paling banyak mengalami iterasi selama pengembangan.
Mencoba SAFIA atau Berkontribusi
SAFIA masih terus dikembangkan dan saya percaya proyek seperti ini akan jauh lebih baik jika dibangun bersama komunitas. Seluruh source code tersedia secara open-source, sehingga siapa pun dapat mempelajari arsitekturnya, memberikan masukan, melaporkan bug, maupun berkontribusi langsung terhadap pengembangannya.
Jika tertarik untuk mencoba atau sekadar melihat bagaimana arsitektur AI agent ini dibangun, silakan kunjungi:
- 🌐 Official Website: safia.maximusolution.com
- 💻 GitHub Repository: github.com/superXdev/SAFIA
Saya juga sangat terbuka terhadap diskusi mengenai AI Agent, personal finance, maupun implementasi teknologi seperti vector database, memory architecture, dan agent workflow. Semoga SAFIA tidak hanya menjadi sebuah proyek hackathon, tetapi juga menjadi fondasi bagi AI financial assistant yang benar-benar bermanfaat bagi banyak orang.
Penutup
Hackathon mungkin hanya berlangsung beberapa hari.
Namun bagi saya, hackathon tersebut hanyalah titik awal.
SAFIA berkembang menjadi eksperimen untuk menjawab pertanyaan yang jauh lebih besar:
Bagaimana membangun AI agent yang bukan hanya pintar menjawab pertanyaan, tetapi juga mampu memahami kebiasaan, belajar dari interaksi, dan tumbuh bersama penggunanya?
Perjalanan ini masih panjang. Masih banyak tantangan teknis yang harus diselesaikan, mulai dari peningkatan akurasi reasoning, efisiensi penggunaan memori, hingga pengembangan workflow agent yang lebih adaptif. Namun setiap iterasi membawa SAFIA lebih dekat pada tujuan awalnya: menjadi asisten keuangan berbasis AI yang benar-benar personal, transparan, dan dapat diakses oleh siapa saja melalui pendekatan open-source.