0Pricing
AI Agents · Pelajaran

Peluruhan Memori dan Pengumpulan Sampah

Lupakan memori lama yang kurang relevan secara terjadwal agar indeks tetap terfokus.

Peluruhan Memori dan Pengumpulan Sampah adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Memori Tumbuh Tanpa Batas

Tanpa pemeliharaan aktif, penyimpanan memori Anda akan terus bertambah. Memori lama yang tidak relevan mengotori hasil pengambilan dan memboroskan penyimpanan.

Memori memerlukan pengumpulan sampah, sama seperti sumber daya lainnya.

Mengapa Menghapus Memori?

  • Privasi — penuhi permintaan penghapusan sesuai GDPR/CCPA
  • Relevansi — fakta lama mungkin sudah tidak benar
  • Biaya — penyimpanan vektor menjadi mahal pada skala besar
  • Kualitas — indeks yang membengkak mengurangi relevansi pencarian

Strategi 1: TTL

Tetapkan stempel waktu kedaluwarsa pada setiap memori:

ALTER TABLE semantic_facts ADD COLUMN expires_at TIMESTAMPTZ;

-- short-lived
INSERT INTO semantic_facts (..., expires_at) VALUES (..., NOW() + INTERVAL '7 days');

-- garbage collect
DELETE FROM semantic_facts WHERE expires_at < NOW();

Strategi 2: Peluruhan Berbasis Waktu

Kurangi tingkat keyakinan seiring bertambahnya usia—memori yang lebih lama diprioritaskan lebih rendah:

import math

def decayed_confidence(original, age_days, half_life_days=30):
    return original * math.exp(-age_days * math.log(2) / half_life_days)

# Then retrieval filters: WHERE decayed_confidence > 0.3
for age in [0, 30, 60, 90]:
    print(f"Age {age} days -> confidence {decayed_confidence(1.0, age):.3f}")

Strategi 3: Peluruhan Berbasis Penggunaan

Memori yang tidak pernah diambil tidak berguna—hapus memori tersebut setelah masa tenggang:

ALTER TABLE semantic_facts ADD COLUMN last_used_at TIMESTAMPTZ DEFAULT NOW();

-- update on retrieval
UPDATE semantic_facts SET last_used_at = NOW() WHERE id = ANY(:retrieved_ids);

-- gc
DELETE FROM semantic_facts WHERE last_used_at < NOW() - INTERVAL '90 days';

Strategi 4: Batas Kapasitas per Pengguna

Batasi jumlah memori untuk setiap pengguna; jika sudah penuh, keluarkan memori yang paling jarang digunakan:

MAX_FACTS = 500

SELECT COUNT(*) FROM semantic_facts WHERE user_id = %s;
-- if > MAX_FACTS: delete oldest unused

Pemadatan: Menggabungkan Memori Serupa

Beberapa memori mungkin menyampaikan hal yang sama dengan cara berbeda. Kelompokkan dan gabungkan secara berkala:

def compact(user_id):
    facts = all_facts(user_id)
    clusters = cluster_by_embedding(facts, threshold=0.85)
    for cluster in clusters:
        merged = llm.invoke(f'Merge these into one canonical statement: {cluster}')
        replace_with_merged(cluster, merged)

Penyelesaian Kontradiksi

Jika dua memori saling bertentangan, tandai memori yang lebih lama sebagai usang:

def resolve(user_id, new_fact):
    similar = retrieve(user_id, new_fact, k=5)
    for s in similar:
        if llm_says_contradicts(s, new_fact):
            mark_obsolete(s.id)
    save(new_fact)

Strategi 5: Pembobotan Kepentingan

Beberapa memori lebih penting daripada yang lain. Beri skor pada setiap memori:

importance_prompt = 'Rate the importance of this fact for future interactions (0-1):\n{fact}'

for fact in facts:
    score = float(llm.invoke(importance_prompt.format(fact=fact)).content)
    update_importance(fact.id, score)

# Retrieval: weight by importance and recency

Perangkum Bergaya Letta

Letta (MemGPT) memadatkan memori arsip lama dengan merangkum blok fakta yang berkaitan saat penyimpanan mulai penuh:

if archival_size > LIMIT:
    block = oldest_facts(50)
    summary = summarise(block)
    replace(block, summary)

Penghapusan yang Dipicu Pengguna

Berikan tombol "lupakan saya" kepada pengguna. Saat tombol diklik:

def forget_user(user_id):
    conn.execute('DELETE FROM semantic_facts WHERE user_id = %s', (user_id,))
    conn.execute('DELETE FROM episodes WHERE user_id = %s', (user_id,))
    vector_db.delete(filter={'user_id': user_id})

Penghapusan Lunak vs Penghapusan Permanen

Untuk keperluan audit, gunakan penghapusan lunak (tandai sebagai terhapus, tetapi tetap simpan dalam bentuk terenkripsi) hingga masa penyimpanan berakhir, lalu lakukan penghapusan permanen:

ALTER TABLE semantic_facts ADD COLUMN deleted_at TIMESTAMPTZ;
-- queries always: WHERE deleted_at IS NULL

Tugas Pengumpulan Sampah Terjadwal

Jalankan pengumpulan sampah secara terjadwal (cron, pekerja harian). Jangan menjalankan pengumpulan sampah berat secara langsung—hal itu menambah waktu tunda bagi pengguna:

# Daily cron at 03:00 UTC
for user_id in all_users():
    decay_confidence(user_id)
    delete_expired(user_id)
    compact_clusters(user_id)

Mengapa Memori Meluruh?

Mengapa tingkat keyakinan memori perlu diluruhkan seiring waktu?

Ringkasan

TTL, peluruhan, pengeluaran berbasis penggunaan, batas kapasitas, pemadatan, penyelesaian kontradiksi, dan penghapusan yang dipicu pengguna. Memori memerlukan pembersih; buatlah satu.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Peluruhan Memori dan Pengumpulan Sampah” gratis?

Ya — teks lengkap “Peluruhan Memori dan Pengumpulan Sampah” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Peluruhan Memori dan Pengumpulan Sampah”?

Lupakan memori lama yang kurang relevan secara terjadwal agar indeks tetap terfokus. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Peluruhan Memori dan Pengumpulan Sampah” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?

Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memori Episodik (Riwayat per Sesi)
  2. Memori Semantik (Fakta Bervektor)
  3. Memori Prosedural (Pustaka Keterampilan)
  4. Peluruhan Memori dan Pengumpulan Sampah
← Kembali ke AI Agents