Belajar Hermes AI Agent - Memory & State Management
Episode 8 of 23

Belajar Hermes AI Agent - Memory & State Management

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.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

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.

Tiga Lapisan Memory

Memory di Hermes dibagi tiga berdasarkan umur dan fungsinya:

  • Short-term memory — isi context window saat ini: riwayat turn terakhir, hasil tool terbaru, dan konteks langsung percakapan. Sifatnya cepat hilang.
  • Long-term memory — pengetahuan yang bertahan lintas sesi: preferensi user, fakta dari percakapan lampau, dan dokumen yang diingat. Disimpan di store persisten.
  • Session state — data internal satu sesi: plan yang sedang dikerjakan, subtask yang tersisa, dan variabel sementara.

Ketiganya saling bekerja sama. Saat percakapan berlangsung, short-term memory menjadi jembatan; saat sesi berakhir, hal penting diekstrak ke long-term memory.

Mendefinisikan Memory di Profile

Konfigurasi memory ditaruh di profile agent. Kalian menentukan kapasitas short-term, backend long-term, dan kebijakan sesi.

agents/support.yml
memory:
  shortTerm:
    maxTurns: 10
    maxTokens: 4000
  longTerm:
    store: vector
    embeddingModel: text-embedding-3-small
    maxEntries: 500
    ttlDays: 90
  session:
    timeoutMinutes: 30
    pruneOnEnd: true

Di 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.

Menyimpan dan Mengambil Memory

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.

tools/save-memory.ts
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.

Strategi Prune dan Ringkasan

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:

  • Sliding window — hanya N turn terakhir yang masuk context; yang lama dibuang.
  • Ringkasan — turn lama dirangkum menjadi satu ringkasan pendek agar konteks tetap terjaga.
  • TTL dan kuota — entri kedaluwarsa otomatis lewat ttlDays; entri lama ditimpa saat maxEntries tercapai.
  • Relevansi — retrieval hanya mengembalikan potongan di atas ambang skor kemiripan; sisanya dibiarkan di store.

Contoh pruning dengan ringkasan, dijalankan saat context mulai penuh:

tools/prune-summary.ts
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.

Batasan Token & State Size

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.

memeriksa pemakaian memory sesi
hermes memory stats --session ses_order-check

Perintah 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.

Penutup

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:

  • Short-term memory hidup di context window; long-term memory bertahan di store persisten.
  • Retrieval semantik memakai embedding, bukan pencocokan kata semata.
  • Pruning adalah kebijakan rutin: sliding window, ringkasan, TTL, dan kuota.
  • Setiap sesi punya budget token; kernel memangkas bagian yang paling tidak penting.
  • 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!

Belajar Hermes AI Agent - Memory & State Management | Belajar Hermes AI Agent