Skip to content
Memory & Knowledge

Memory Decay Tuning

How Armbrain 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.

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


How It Works

When you search, or when Armbrain 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:


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, Armbrain 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


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:

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