Membangun SAFIA: Perjalanan Mengembangkan AI Financial Assistant Open-Source dari Sebuah Hackathon

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.

SAFIA Bot — React + Proactive

Secara garis besar, SAFIA dibangun di atas tiga pilar:

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:

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:

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:

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:

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.

fikri

© 2026 Fikri Rudiansyah - Personal Blog

Facebook 𝕏 GitHub