Memory & Knowledge

Memory Decay Tuning

How Coppermind ages different types of memories at different rates so that search results and meeting briefs surface the most relevant knowledge, and how to customize decay for specific clients.


Why Decay Matters#

Not all memories age the same way. A decision made 6 months ago ("We're pausing LinkedIn ads") is still valid until someone reverses it. But an action item from 6 months ago that was never completed ("Send the report by Friday") is almost certainly stale. Without differentiated decay, both would rank similarly in search results -- burying the relevant decision under the irrelevant commitment.

Coppermind applies per-type time decay to search results so that:

  • Decisions and preferences persist across quarters
  • Campaign outcomes remain useful for year-over-year comparison
  • Stale commitments and unanswered questions naturally fall out of results
  • You spend less time hiding outdated memories manually

How It Works#

When you search, or when Coppermind gathers context for a meeting brief, how strongly each memory surfaces is adjusted based on its age and type:

adjusted_similarity = similarity * max(floor, 1.0 - (age_days / 365.0 * decay_rate))

This means:

  • Higher decay rate = the memory loses relevance faster
  • Floor = the minimum multiplier (the memory never drops below this fraction of its original similarity)
  • Age in days determines how much decay has been applied

Default Decay Rates#

Memory TypeDecay RateFloorWhat This Means
preference0.2/year0.8Preferences barely decay. "Sarah prefers async updates" is still valid after a year, retaining at least 80% of its original score.
decision0.3/year0.7Decisions persist until reversed. A 1-year-old decision still has 70% of its original score.
stakeholder0.3/year0.7People and roles change slowly. Stakeholder info stays relevant for quarters.
campaign_outcome0.5/year0.6Results are historical -- they do not change. Useful for year-over-year comparison.
fact1.0/year0.5The baseline rate. General facts have mixed shelf lives, so this is the middle ground.
question1.5/year0.4Unanswered questions lose urgency. If nobody followed up in 6 months, it has probably been resolved or is no longer relevant.
commitment2.0/year0.3Action items go stale fast. A 3-month-old uncompleted commitment retains only about 50% of its score.

Practical Examples#

A 6-month-old decision (180 days):

adjusted = similarity * max(0.7, 1.0 - (180/365 * 0.3))
         = similarity * max(0.7, 0.852)
         = similarity * 0.852

Barely decayed. Still prominent in search results.

A 6-month-old commitment (180 days):

adjusted = similarity * max(0.3, 1.0 - (180/365 * 2.0))
         = similarity * max(0.3, 0.014)
         = similarity * 0.3  (hit the floor)

Heavily decayed. Only shows up if the similarity is very high or no other results are available.


Customizing Decay for a Client#

Some clients have different rhythms. A client on quarterly cadence might have commitments that naturally span 3 months instead of 1-2 weeks. For these clients, you can override the default decay rates:

"Configure Acme's memory settings: make commitments decay slower -- they track quarterly goals, not weekly tasks"

Behind the scenes, Coppermind saves your custom decay settings for this client:

{
  "memory_config": {
    "decay_overrides": {
      "commitment": {"rate": 1.0, "floor": 0.5}
    }
  }
}

This changes only the commitment decay for Acme Corp. All other types keep their defaults. Other clients are unaffected.

When to Customize#

ScenarioOverride
Client has quarterly deliverables, not weekly tasksLower commitment decay rate (e.g., 1.0 instead of 2.0)
Fast-moving client where decisions change frequentlyRaise decision decay rate (e.g., 0.8 instead of 0.3)
Client where historical facts are critical (regulated industry)Lower fact decay rate and raise the floor
Startup client where everything changes quarterlyRaise all decay rates slightly

Validation Rules#

  • Rate must be greater than 0
  • Floor must be between 0.0 and 1.0
  • Override keys must be valid memory types (decision, preference, campaign_outcome, commitment, stakeholder, fact, question)
  • Unknown memory types in overrides are rejected

How Decay Affects Different Features#

search_memory#

This is where decay has the most visible impact. Results are sorted by adjusted_similarity (after decay), not raw similarity. Both scores are returned in the response so you can see the effect:

{
  "summary": "Pausing LinkedIn ads through Q2",
  "memory_type": "decision",
  "similarity": 0.87,
  "adjusted_similarity": 0.8367,
  "age_days": 45
}

briefing#

Meeting briefs use the same retrieval logic. This means:

  • Recent commitments appear prominently in the "Action Items" section
  • Old unresolved commitments naturally drop off without manual hiding
  • Decisions from months ago still surface in the "Key Decisions" section

get_campaign_history#

Campaign outcomes are filtered by type, not by search -- but when meeting prep includes campaign context, their higher floor (0.6) keeps historical results visible for comparison.


Interaction with Completed Commitments#

Completed commitments are excluded from active retrieval entirely -- once marked done, they no longer appear in open-commitment lists. Decay only applies to memories that are still active and current.

Completed commitments appear in meeting briefs as checked-off items (- [x]), but they are retrieved by a separate query that does not apply decay.


Checking Current Decay Settings#

There is no dedicated tool to view decay settings. The defaults are hardcoded and well-documented (the table above). To check if a client has custom overrides:

"What are Acme's memory configuration settings?"

This retrieves the memory_config from the client mind's configuration. If decay_overrides is present, you will see the custom rates. If absent, defaults are in effect.


Key Details#

  • Decay does not delete memories. It only adjusts their ranking in search results. Every memory is still stored and can be found with a highly specific query.
  • New clients see no decay effect. When all memories are recent, decay multipliers are close to 1.0 and have no practical impact on ranking.
  • Unknown memory types fall back to fact defaults. If a memory has an unrecognized type, it decays at the baseline 1.0/year rate.
  • Very old memories hit the floor and stay there. A 5-year-old decision at 0.7 floor will never drop below 70% of its original similarity score. Nothing goes to zero.
  • Per-client overrides merge with defaults. You only need to specify the types you want to change. Unmentioned types keep their default rates.
  • No per-memory overrides. Decay is configured per memory type (globally or per client), not per individual memory.

Ready to try this yourself?

Coppermind is free to start and runs inside Claude. Your first meeting prep will convince you.

Try Coppermind Free
Browse all guides →