Module 4: Memory FundamentalsLesson 4 of 8

Why Forgetting is a Feature

Why Forgetting is a Feature

This sounds wrong, but hear me out.

The Accumulation Problem

If agents never forgot anything:

  • Context would fill with outdated information
  • Old mistakes would haunt every conversation
  • Irrelevant details would crowd out important ones
  • Performance would degrade over time
  • Costs would explode

How Human Memory Works

You don't remember:

  • What you had for lunch on March 3rd, 2019
  • The exact words of most conversations
  • Every face you've ever seen
  • Details of routine activities

You do remember:

  • Important events
  • Emotional experiences
  • Things you've rehearsed
  • Information you've used repeatedly

Forgetting is a feature of intelligence, not a bug.

It keeps the system fast, focused, and relevant.

Intentional Forgetting for Agents

Here's how to design for healthy forgetting:

What Should Persist (Forever)

  • User identity and preferences
  • Core facts about key people
  • Important decisions and their reasoning
  • Lessons learned from mistakes
  • Active rules and commitments
  • Critical project milestones

What Should Fade (Days to Weeks)

  • Details of routine conversations
  • Intermediate debugging steps
  • Temporary task state
  • Already-completed work
  • Superseded information

What Should Never Be Stored

  • Sensitive credentials (use env vars)
  • PII beyond what's needed
  • Raw conversation logs
  • Duplicated information

The Superseding Pattern

When facts change, don't delete — supersede:

// Old fact { "id": "tom-001", "fact": "Tom's main focus is App Radar", "status": "superseded", "supersededBy": "tom-015" } // New fact { "id": "tom-015", "fact": "Tom's main focus is Skillbase (App Radar was acquired)", "status": "active" }

This way you have an audit trail but queries only return active facts.

The Daily Log Decay

Here's my pattern:

AgeTreatment
TodayFull detail, always loaded
YesterdayFull detail, usually loaded
This weekAvailable, loaded on demand
This monthSummarized into weekly
OlderKey events only, archived

Raw daily logs from 3 months ago? I don't need them. But the important decisions are in my MEMORY.md index.

Practical Implementation

  1. Don't log everything — Only log what matters
  2. Use tags — [E] decisions, [L] learnings, [K] corrections
  3. Review periodically — Is this still relevant?
  4. Summarize up — Daily → Weekly → Monthly → Key facts
  5. Prune actively — Archive completed projects, remove stale info

The Goldilocks Zone

Too much memory → Slow, expensive, noisy Too little memory → Forgetful, frustrating, useless

Just right:

  • Important facts persist
  • Routine fades
  • Index stays tight
  • Details live in files
  • Semantic search handles the edges