Membangun ingatan agent tiga lapis: short-term, long-term, dan session state. Strategi menyimpan, mengambil secara semantik, dan memangkas memory, serta constraint token usage dan state size.

Di episode 7 kalian bisa mengamati perilaku agent lewat log dan replay. Tapi masih ada satu kemampuan yang belum kita bahas: ingatan. Agent yang tidak ingat percakapan kemarin akan bertanya hal yang sama berulang kali. Episode ini membangun fondasi memory di Hermes.
Roadmap episode ini: pertama mendefinisikan tiga lapisan memory — short-term, long-term, dan session state; kedua strategi menyimpan, mengambil, dan memangkas memory; ketiga constraint pada token usage dan state size.
Memory di Hermes dibagi tiga berdasarkan umur dan fungsinya:
Ketiganya saling bekerja sama. Saat percakapan berlangsung, short-term memory menjadi jembatan; saat sesi berakhir, hal penting diekstrak ke long-term memory.
Konfigurasi memory ditaruh di profile agent. Kalian menentukan kapasitas short-term, backend long-term, dan kebijakan sesi.
memory:
shortTerm:
maxTurns: 10
maxTokens: 4000
longTerm:
store: vector
embeddingModel: text-embedding-3-small
maxEntries: 500
ttlDays: 90
session:
timeoutMinutes: 30
pruneOnEnd: trueDi sini short-term dibatasi 10 turn atau 4000 token — mana yang tercapai lebih dulu. Long-term memakai store vektor dengan masa hidup 90 hari. Session akan di-prune otomatis setelah timeout 30 menit.
Long-term memory disimpan sebagai potongan teks dengan embedding. Saat dibutuhkan, retrieval terjadi secara semantik: Hermes mencari potongan yang paling relevan dengan pertanyaan user, bukan sekadar mencocokkan kata.
import { hermes } from "@hermes/agent";
await hermes.memory.save({
type: "fact",
key: "user.order.preference",
content: "Arman lebih suka tracking lewat WhatsApp",
sessionId: "ses_order-check",
});
const results = await hermes.memory.search(
"cara user ingin tracking order",
{ limit: 3 }
);hermes.memory.save menyimpan satu entri bertipe fact, sementara hermes.memory.search mengambil entri paling relevan secara semantik. Pola ini menjadi dasar personalisasi: agent ingat preferensi user lintas sesi tanpa harus ditanya ulang.
Warning
Long-term memory berisi data personal user. Simpan entri sensitif terenkripsi dan pastikan pengambilannya hanya untuk sesi yang berhak — detail kontrol akses ada di episode 11.
Memory yang tumbuh tanpa batas menimbulkan dua masalah: biaya token membengkak dan retrieval jadi lambat. Karena itu pruning adalah kebijakan rutin, bukan insiden. Beberapa strategi umum:
ttlDays; entri lama ditimpa saat maxEntries tercapai.Contoh pruning dengan ringkasan, dijalankan saat context mulai penuh:
import { hermes } from "@hermes/agent";
const summary = await hermes.memory.summarize(
"ses_order-check",
{ targetTokens: 500 }
);
await hermes.memory.prune("ses_order-check", {
keepLast: 3,
replaceOldestWith: summary,
});hermes.memory.summarize merangkum percakapan panjang menjadi ringkasan 500 token, lalu hermes.memory.prune membuang turn lama dan menggantinya dengan ringkasan. Hasilnya: konteks tetap utuh, token terkendali.
Semua strategi di atas bekerja di bawah satu aturan main: budget. Setiap provider punya batas context window; Hermes mengelola seluruh isi context agar tidak melewatinya.
Kuncinya ada di proporsi. Dari total context window, alokasikan untuk system prompt, ringkasan riwayat, tool definitions, hasil retrieval, dan ruang output model. Jika total melebihi batas, kernel memangkas dari bagian yang paling tidak penting — biasanya riwayat paling lama.
hermes memory stats --session ses_order-checkPerintah ini menampilkan input_tokens, output_tokens, jumlah turn, dan ukuran state sesi. Jadikan ini bagian rutin: kalau state sesi membengkak, pertanda perlu prune atau memulai sesi baru.
Info
State size bukan hanya soal token — ada juga data binary dan cache hasil tool. Simpan hasil tool yang besar ke long-term store dan biarkan short-term hanya memegang ringkasannya.
Memory di Hermes tersusun dari tiga lapisan: short-term untuk konteks langsung, long-term untuk pengetahuan lintas sesi, dan session state untuk data sementara. Kalian sudah bisa mendefinisikannya di profile, menyimpan dan mengambil entri secara semantik, memangkas dengan ringkasan, serta menjaga budget token.
Inti yang harus dibawa pulang:
hermes memory stats memantau kesehatan memory dan state sesi.Di episode 9 kita lanjut ke Multi-turn Conversation & Context Handling — mengelola conversation state antar turn, context retrieval dan manajemen prompt window, serta penanganan topic switch dan conversation reset. Sampai jumpa!