Beads AI Memory: Sistem Memori Terstruktur untuk Mengatasi Agent Amnesia

Masalah: Ketika AI Lupa Rencana Besar

Bayangkan ini: kita sudah tiga minggu mengerjakan sebuah aplikasi. Asisten AI coding telah merefaktor autentikasi, membuat ulang sistem navigasi, dan memigrasikan state management. Namun hari ini, saat kita mengecek progres, ada yang terasa janggal.

AI menyatakan proyeknya sudah selesai. Namun ketika kita membuka codebase, Navigasi baru setengah termigrasi. State management menjadi duplikat. Test yang minggu lalu masih sukses sekarang gagal . Apa yang sebenarnya terjadi?

AI mengalami agent amnesia karena tidak memiliki Beads AI Memory atau sistem penyimpanan konteks yang permanen.

Berbeda dengan developer manusia yang mampu menjaga konteks selama berhari-hari, berminggu-minggu, bahkan berbulan-bulan, AI pada dasarnya “reset” di setiap sesi. Mereka hanya melihat apa yang ada di codebase saat itu. Rencana yang sebelumnya pernah kita susun bersama? Jika tidak ada di context window saat ini, rencana itu seolah tidak pernah ada.

Dampak Agent Amnesia: Ketika Proyek Kehilangan Beads AI Memory

Dalam proyek kompleks, biasanya muncul tiga pola kegagalan utama:

Hilangnya konteks menyebabkan klaim selesai terlalu cepat.

Agent yang sedang mengerjakan fase ke-3 dari total 6 fase lupa pada gambaran besar. Ia membuat rencana baru khusus untuk subtask tersebut, menyelesaikannya, lalu menyatakan selesai. Baru kemudian kita sadar bahwa 70% pekerjaan yang direncanakan sama sekali belum tersentuh.

Insight berharga menguap begitu saja.

Misal saat merefaktor widget tree Flutter, agent menemukan memory leak pada bagian image loading. Namun karena konteks mulai penuh, AI menganggap itu “bug existing” dan lanjut. Insight tersebut tidak pernah dicatat. Berminggu minggu kemudian, ada laporkan aplikasi sering crash dikarenakan penyebabnya sama, memory leak yang baru “ditemukan” lagi.

Kualitas menurun saat mendekati batas konteks.

Mendekati limit konteks, agent mulai mengambil jalan pintas: melewati update test, mengomentari assertion yang gagal, atau membuat error handling setengah matang demi menandai task sebagai “selesai” sebelum memorinya habis.

Solusi yang Umum Dipakai: Mengapa Markdown Gagal dalam Manajemen Konteks AI

Respons paling umum biasanya sederhana: tulis saja rencananya. Minta AI membuat plan dalam markdown.

# Project Plan: Flutter App Refactor

## Phase 1: Authentication ✓
- [x] Migrate to Firebase Auth
- [x] Update login flow

## Phase 2: Navigation
- [ ] Replace Navigator 1.0 with GoRouter
- [ ] Update deep linking
- [ ] Test on iOS and Android

## Phase 3: State Management
...

Cara ini biasanya berhasil di sesi pertama. Namun di sesi ketiga, masalah mulai muncul.

Perangkap Markdown

Dalam waktu singkat, proyek bisa dipenuhi puluhan file markdown: PLAN.md, TODO.md, PROJECT_PHASES.md, DETAILED_PLAN_v2.md, IMPLEMENTATION_STEPS.md. Setiap file sebagian sudah usang, sebagian saling bertentangan, dan semuanya sulit dikelola.

Masalahnya bukan pada markdown itu sendiri, tetapi karena markdown menghasilkan teks tidak terstruktur, bukan data terstruktur.

Dari sudut pandang AI:

  • Ia harus membaca dan menafsirkan teks setiap kali ditanya
  • Ia tidak bisa menentukan secara programatis “task mana yang siap dikerjakan?”
  • Ia tidak bisa melacak dependensi antar task
  • Ia jarang memperbarui rencana saat eksekusi, sehingga rencana cepat basi

Akhirnya, kita terjebak dalam file-file terpisah yang justru membingungkan, bukan memandu.

Cara Kerja Beads AI Memory System: Memori Terstruktur untuk Agent

Beads adalah issue tracker khusus yang berfungsi sebagai sistem memori eksternal untuk asisten AI coding. Daripada memaksa tools buatan manusia agar cocok untuk AI, Beads sejak awal dirancang berdasarkan cara AI berpikir dan bekerja.

Perubahan arsitektur intinya adalah: dari prosa ke graph yang bisa di-query.

Daripada meminta AI menafsirkan teks seperti “TODO: implement payment flow (blocked by auth migration)” di markdown, Beads menyimpannya sebagai data terstruktur dengan dependensi yang eksplisit. AI bisa langsung bertanya: “Pekerjaan apa yang tidak terblokir dan siap dikerjakan?” Jawabannya pasti, bukan hasil interpretasi.

Tiga Prinsip Desain Utama

1. Penyimpanan Git-Native

Semua task disimpan sebagai baris JSON di .beads/beads.jsonl di dalam repository kita. Task graph ikut terversioning, bisa di-branch, dan di-merge bersama kode. Checkout commit dari bulan lalu, dan kita melihat kondisi task persis seperti saat itu, kemampuan time-travel yang mungkin tidak bisa dilakukan oleh issue tracker tradisional.

2. Sadar Dependensi

Dependensi adalah entitas kelas satu, bukan sekadar teks. Task A memblokir Task B direpresentasikan sebagai data, bukan kalimat. AI cukup menjalankan bd ready dan mendapatkan daftar kerja yang benar-benar bisa dieksekusi. Tanpa menebak, tanpa asumsi.

3. Agent-First

Beads menyediakan output JSON dan CLI yang dirancang untuk akses programatis. AI tidak perlu membaca dokumentasi lalu menafsirkan makna. Ia cukup melakukan query ke data terstruktur dan menerima respons terstruktur.

Setup: Memulai dengan Beads

Instalasi

# via npm
npm install -g @beads/bd

# via Homebrew
brew install beads

Inisialisasi Proyek

cd our-project
bd init

Perintah ini akan membuat direktori .beads/ di repository kita. Jika kita bekerja di proyek bersama tapi ingin Beads bersifat personal:

bd init --stealth

Mode ini menyimpan .beads/ di .git/info/exclude, sehingga tidak terlihat oleh developer lain.

Verifikasi Instalasi

bd version
bd ready  # Awalnya harus kosong

Siap digunakan.

Baca Juga: Cara Integrasi Generative AI di Aplikasi Flutter

Contoh Workflow: Migrasi Aplikasi Flutter

Mari lihat contoh lengkap: migrasi aplikasi Flutter e-commerce dari Provider ke Riverpod.

Fase 1: Membuat Rencana Proyek

Mulai dengan diskusi high-level bersama AI:

Prompt: “Kita perlu migrasi aplikasi Flutter ini dari Provider ke Riverpod. Total sekitar 15.000 baris kode di 47 widget. Kita harus rencanakan dengan hati-hati.”

AI: Membahas pendekatan, mengidentifikasi fase: setup, migrasi state inti, update widget, testing, cleanup

Prompt: “Oke. Sekarang masukkan rencana ini ke Beads. Buat epic untuk tiap fase besar, pecah jadi task konkret, dan atur dependensinya dengan benar.”

AI kemudian membuat strukturnya:

# Epic: Setup and Dependencies
bd create "Setup Riverpod dependencies and project structure" -p 0
# Returns: Created bd-a3f8

# Tasks under Setup
bd create "Add riverpod and flutter_riverpod to pubspec.yaml" -p 0 --parent bd-a3f8
# Returns: Created bd-a3f8.1

bd create "Create providers/ directory structure" -p 0 --parent bd-a3f8
# Returns: Created bd-a3f8.2

bd create "Set up ProviderScope in main.dart" -p 0 --parent bd-a3f8
# Returns: Created bd-a3f8.3

# Epic: Core State Migration
bd create "Migrate core state management to Riverpod" -p 0
# Returns: Created bd-b2k9

bd create "Migrate AuthProvider to Riverpod" -p 1 --parent bd-b2k9
# Returns: Created bd-b2k9.1

bd create "Migrate CartProvider to Riverpod" -p 1 --parent bd-b2k9
# Returns: Created bd-b2k9.2

# Set dependency
bd dep add bd-b2k9 bd-a3f8

Fase 2: Review Awal dan Penyempurnaan

Prompt: “Coba review semua beads yang baru kita buat. Apakah task-nya cukup kecil? Dependensinya sudah benar? Ada yang kurang?”

AI mengaudit pekerjaannya sendiri:

bd list --all
bd show bd-a3f8
bd show bd-b2k9

AI: “Saya melihat bd-b2k9.2 (CartProvider) seharusnya diblokir oleh bd-b2k9.1 (AuthProvider) karena Cart bergantung pada Auth. Kita juga perlu task untuk update test setelah tiap migrasi provider.”

AI langsung memperbaiki:

bd dep add bd-b2k9.2 bd-b2k9.1
bd create "Update auth tests for Riverpod" -p 1 --parent bd-b2k9.1
bd create "Update cart tests for Riverpod" -p 1 --parent bd-b2k9.2

Biasanya, 2–3 iterasi penyempurnaan sudah cukup.

Fase 3: Loop Eksekusi Harian

Di sinilah Beads benar-benar mengubah workflow.

Senin Pagi – Sesi 1:

Prompt: “Pekerjaan apa yang siap?”

bd ready

Output:

bd-a3f8.1: Add riverpod and flutter_riverpod to pubspec.yaml [P0]
bd-a3f8.2: Create providers/ directory structure [P0]
bd-a3f8.3: Set up ProviderScope in main.dart [P0]

Prompt: “Kerjakan bd-a3f8.1.”

AI menyelesaikan task, menjalankan test, lalu commit.

bd close bd-a3f8.1 -m "Added riverpod 2.4.9 and flutter_riverpod 2.4.9 to dependencies"

Prompt: “Sekarang apa yang siap?”

bd ready

Sekarang task bd-a3f8.2 and bd-a3f8.3 sudah bisa dikerjakan. AI akan mengerjakan task tersebut.

Senin Sore – Sesi 2:

Kita mulai percakapan baru (agar lebih fokus dan menghemat token).

bd ready

AI langsung tahu kondisi terkini. Tidak perlu mengulang penjelasan proyek. Memori tetap ada.

Fase 4: Menangkap Pekerjaan yang Baru Ditemukan

Selasa – Saat Migrasi:

Ketika migrasi AuthProvider, AI menemukan sesuatu:

AI: “Saya melihat fungsi logout tidak benar-benar membersihkan secure storage. Ini memang issue lama, tetapi seharusnya diperbaiki. Saya akan mencatatnya sebagai bead.”

bd create "Fix: Clear secure storage on logout" -p 1 --tag bug

Insight tidak hilang, tapi tersimpan dan bisa dilacak dengan query:

bd list --tag bug  # Cek bugs yang ditemukan

Fase 5: Menangani Blocker

Rabu:

AI menyadari dependensi yang terlewat:

AI: “Saya belum bisa memperbarui ProductListWidget. Widget ini bergantung pada ProductProvider, sementara ProductProvider sendiri belum dimigrasikan ke Riverpod. Seharusnya migrasi ini dilakukan lebih dulu.”

bd create "Migrate ProductProvider to Riverpod" -p 0 --parent bd-b2k9
bd dep add bd-d4m2 bd-b2k9.4

Graph dependensi otomatis terkoreksi.

Fase 6: Kontinuitas Multi-Sesi

Kamis – Setelah Banyak Sesi Terpisah:

Minggu ini kita sudah me-restart AI sebanyak lima kali. Setiap kali memulai sesi baru, kita cukup menjalankan:

bd ready

AI langsung mengetahui: kondisi proyek saat ini, task mana yang sudah selesai, task mana yang belum selesai, task mana yang masih terblokir dan oleh apa.

Jumat – Status Proyek:

bd stats

Output:
Total beads: 34
Closed: 28
Open: 6
Ready: 3
Blocked: 3

Dari sini kita dapat melihat progress proyek. Tiga task siap dikerjakan, Tiga terblokir (lkemungkinan oleh 3 task yang Ready), Progress akhir 82%.

Fase 7: Review Akhir

Prompt : “List semua task yang masih open.”

bd list --status open

Semua task tersisa terlihat jelas hingga migrasi selesai dengan rapi.

Perintah Maintenance Penting

# Setiap Hari: Cek & Perbaiki issue
bd doctor

# Setiap Beberapa Hari: Arsipkan task yang selesai
bd cleanup

# Setiap Minggu: Update ke versi terakhir
bd upgrade

Catatan performa: jaga task aktif di bawah ±500 untuk performa optimal.

Baca Juga: guideline_cam: Package Kamera Flutter untuk Pemindaian yang Lebih Praktis

Kesimpulan

AI sangat hebat untuk task individual, tetapi lemah dalam memori jangka panjang. Beads AI Memory berhasil mengisi celah tersebut dengan menyediakan struktur yang konsisten

Proyek beberapa minggu yang sebelumnya sering stuck kini bisa berjalan konsisten sampai selesai. Bukan menggantikan pengawasan manusia, tetapi memberi AI “arsitektur kognitif” agar bisa menjadi partner jangka panjang yang andal.

Perbedaan markdown plan dan Beads sama seperti menyuruh seseorang mengingat semua instruksi versus memberinya buku catatan yang rapi dan bisa dipercaya. Untuk developer yang sering menggunakan AI, memori terstruktur bukan lagi opsional, ini fondasi.

Sebagai perusahaan yang selalu berada di garis depan inovasi teknologi, LOGIQUE Digital Indonesia memahami pentingnya integrasi AI yang efisien seperti penggunaan Beads AI Memory untuk mempercepat proses pengembangan aplikasi. Jika Anda ingin mengoptimalkan transformasi digital perusahaan Anda dengan solusi software development berbasis AI yang terukur dan profesional, LOGIQUE siap menjadi mitra strategis Anda. Hubungi kami unuk mulai berkonsultasi!

Scroll to top