Zep: Bikin AI Agent Punya Memori Jangka Panjang dengan Temporal Knowledge Graph
Temen-temen, pernah ngobrol sama chatbot yang tiap kali kamu buka percakapan baru dia lupa total sama siapa kamu? Kamu udah cerita panjang lebar soal preferensi, nama proyek, sampai detail teknis yang penting, eh besoknya dia nanya lagi kayak kenalan pertama kali. Nyebelin banget kan. Nah, masalah ini muncul karena secara default Large Language Model (LLM) itu stateless. Dia cuma tau apa yang ada di dalam satu window konteks. Begitu percakapan panjang atau sesi baru dibuka, semua ingatan itu hilang.
Di tutorial ini aku mau ngajak kalian kenalan sama Zep, sebuah memory layer buat AI agent yang menurutku ngerapihin banget cara kita ngasih "ingatan" ke agent. Bukan sekadar nyimpen riwayat chat mentah-mentah, tapi Zep bikin sesuatu yang disebut temporal knowledge graph. Jadi Zep bakal ngambil fakta-fakta penting dari percakapan, nyusun jadi graph relasi, plus nyatet kapan fakta itu berlaku dan kapan berubah. Waktu agent-mu butuh konteks, Zep ngasih ringkasan yang relevan buat dimasukin ke prompt. Praktis dan hemat token.
Aku bakal bahas dari nol banget: kenapa memori itu penting buat agent, gimana daftar Zep Cloud dan ambil API key, cara install, bikin user dan session, nambahin pesan, ngambil memori dan konteks, nyari fakta di graph, sampai akhirnya kita rakit jadi satu loop chatbot sederhana yang beneran inget kamu. Semua contoh pakai Python biar gampang diikutin. Yuk kita mulai.
Introduction
Kenapa memori itu penting buat AI agent
Coba bayangin kamu punya asisten pribadi manusia. Nilai plus utamanya bukan cuma dia bisa jawab pertanyaan, tapi dia inget konteks kamu. Dia tau kamu alergi kacang, tau kamu lagi ngerjain proyek migrasi database, tau kamu lebih suka penjelasan yang to the point. Asisten yang inget hal-hal ini terasa jauh lebih pintar dan personal dibanding yang harus dijelasin ulang tiap hari.
AI agent yang kita bangun juga gitu. Tanpa memori, agent kita cuma reaktif dan generik. Dengan memori jangka panjang, agent bisa:
- Personalisasi jawaban berdasarkan histori interaksi user.
- Ngelanjutin tugas multi-sesi tanpa user harus ngulang konteks.
- Ngambil keputusan yang lebih konsisten karena tau preferensi dan fakta sebelumnya.
- Ngurangin biaya token, karena kita nggak perlu nyeret seluruh transkrip panjang ke tiap request.
Poin terakhir itu sering diremehin temen-temen. Kalau kamu naif dan tiap kali ngirim semua histori percakapan ke LLM, token cost kamu bakal meledak dan latency makin lama seiring percakapan makin panjang. Belum lagi ada limit context window. Jadi kita butuh sistem yang cerdas milih mana yang relevan, bukan asal timbun.
Apa itu Zep dan bedanya sama nyimpen histori biasa
Cara paling primitif buat ngasih memori ke agent adalah nyimpen seluruh array pesan di database, terus di-load semua tiap percakapan. Ini gampang tapi nggak scalable. Pendekatan kedua yang lumayan populer adalah RAG di atas riwayat chat: kita embed tiap pesan, simpan ke vector store, terus retrieve pesan yang mirip. Ini lebih baik, tapi masih ngambil potongan mentah percakapan tanpa ngerti fakta apa yang sebenarnya penting.
Zep ngambil pendekatan yang lebih pinter. Di belakang layar, Zep ngejalanin proses yang mereka sebut ekstraksi dan pembangunan knowledge graph. Setiap kali kamu nambahin pesan ke Zep, sistemnya bakal:
Kata "temporal" di sini kunci banget. Dunia berubah, preferensi user berubah, status proyek berubah. Zep nyimpen dimensi waktu ini jadi agent-mu nggak cuma tau fakta terbaru, tapi juga bisa tau riwayat perubahan fakta. Ini yang bikin Zep beda dari sekadar key-value store atau vector search biasa.
Waktu kita minta konteks ke Zep buat sebuah sesi, dia ngasih blok teks ringkas berisi fakta-fakta relevan yang tinggal kita tempel ke system prompt. Jadi agent kita dapet "ingatan" yang padat dan relevan tanpa harus baca ribuan token transkrip.
Konsep inti yang perlu kamu pahami
Sebelum ngoding, ada beberapa istilah yang bakal sering muncul: