Agen yang Anda bangun menjawab dengan baik, tetapi setiap pesan baru diperlakukan seperti perkenalan pertama. Nama yang disebut satu menit lalu hilang, konteks pertanyaan sebelumnya tidak terbawa, dan jawabannya terasa pintar sekaligus pikun. Hampir selalu ini bukan soal model bahasanya kurang canggih, melainkan soal memori yang belum dipasang atau dipasang dengan kunci yang keliru.
Rantai tidak punya memori, hanya agen yang punya
Pemeriksaan pertama sering terlewat: di n8n, node AI Agent bisa memakai memori, sedangkan AI Chain tidak bisa. Kalau alur Anda dibangun dengan chain, tidak ada pengaturan apa pun yang akan membuatnya mengingat. Memori juga bukan bawaan agen, melainkan sub-node terpisah yang perlu ditambahkan sendiri.
Session key: pemisah antar penutur, bukan sekadar nama
Memori disimpan per kunci sesi. Kalau pemicunya node chat bawaan, sessionId diambil otomatis. Begitu pemicunya diganti ke Telegram, WhatsApp, atau webhook, kunci itu tidak ada lagi dan n8n memunculkan galat No sessionId. Di situlah kunci harus diisi manual dengan sesuatu yang benar-benar membedakan satu orang dari yang lain, misalnya chat ID Telegram atau nomor pengirim WhatsApp.
Dua kesalahan yang paling sering terjadi berlawanan arah, dan keduanya tidak memunculkan galat:
- Kunci berubah setiap eksekusi, sehingga setiap pesan membuka sesi baru dan agen tampak pikun.
- Kunci konstan untuk semua orang, sehingga seluruh pengguna berbagi satu riwayat. Ini bukan cuma jawaban yang kacau, tetapi juga percakapan satu pengguna terbaca oleh pengguna lain.
Dokumentasi n8n menyebut kunci statis seperti my_test_session hanya untuk pengujian, dan meminta pengelolaan sesi yang benar dipasang sebelum alur dipublikasikan.
Jebakan sub-node: ekspresi selalu jatuh ke item pertama
Ini perilaku yang berbeda dari node biasa dan mudah terlewat. Pada node umum, ekspresi diselesaikan untuk setiap item bergiliran. Pada sub-node, termasuk node memori, ekspresi selalu menghasilkan item pertama. Jadi kalau kunci sesi diisi ekspresi sementara node memproses lima item sekaligus, kelimanya memakai kunci milik item pertama.
Satu alur, satu memori
Kalau ada lebih dari satu node memori di alur yang sama, semuanya mengakses instance memori yang sama secara bawaan. Untuk benar-benar memisahkannya, session ID di tiap node harus dibedakan. Ini penting sebelum menjalankan aksi yang menimpa isi memori, seperti operasi override all messages pada node Chat Memory Manager.
Ingin mendalaminya lebih terstruktur? Taalenta punya kelas N8N dan AI Integration untuk Membangun Smart Workflow & AI Agent.
Context Window Length: lupa yang memang disengaja
Parameter ini menentukan berapa banyak interaksi sebelumnya yang ikut diperhitungkan. Karena bentuknya jendela, giliran percakapan yang paling lama otomatis keluar saat yang baru masuk. Kalau agen ingat lima menit terakhir tetapi lupa awal percakapan, itu perilaku normal dari jendela, bukan kerusakan.
Simple Memory berhenti bekerja begitu masuk queue mode
Ini batas yang paling sering menggigit saat alur naik ke produksi. Dokumentasi n8n menyatakan Simple Memory tidak bekerja pada alur produksi aktif bila instance berjalan dalam queue mode, karena n8n tidak bisa menjamin setiap panggilan memori jatuh ke worker yang sama.
Alasannya ada di cara queue mode bekerja: instance utama hanya membuat eksekusi, ID-nya dititipkan ke Redis sebagai antrean, lalu worker mana pun yang sedang senggang mengambilnya. Tiap worker adalah proses Node.js tersendiri, dan satu worker bisa menjalankan beberapa eksekusi sekaligus, dengan nilai bawaan concurrency 10.
Untuk produksi, pindahkan penyimpanan ke luar proses. Postgres Chat Memory memakai tiga parameter, yaitu Session Key, Table Name yang tabelnya dibuat otomatis kalau belum ada, dan Context Window Length. Pilihan lain yang disediakan n8n adalah Redis, MongoDB, Motorhead, Xata, dan Zep.
Urutan memeriksa saat agen tampak pikun
- Node yang dipakai agen atau chain.
- Sub-node memori sudah terpasang atau belum.
- Sumber kunci sesi, otomatis dari pemicu chat atau diisi manual.
- Kunci itu benar-benar unik per pengguna, tidak konstan dan tidak berubah tiap eksekusi.
- Nilai Context Window Length cukup untuk panjang percakapan yang diharapkan.
- Instance berjalan dalam queue mode atau tidak.
Cara memasang memori dan mengisi kunci sesinya juga ditunjukkan langsung di kelas N8N dan AI Integration untuk Membangun Smart Workflow & AI Agent bersama Kristian Ekachandra. Kalau lebih enak melihat langkahnya dijalankan, ada klipnya di sini.