Skip to main content

What are Memories?

Memories are discrete pieces of information extracted from user conversations. They complement traits by storing:
  • Specific facts that don’t fit trait schemas
  • Events and experiences mentioned
  • Contextual information for future conversations

Memory Structure

Memory Types

Fact

Concrete information: “Works at Acme Corp as a senior engineer”

Preference

Likes and dislikes: “Prefers dark mode IDEs”

Event

Things that happened: “Started a new project last week”

Context

Situational info: “Currently debugging a production issue”

Importance Scoring

Memories are scored by likely future relevance:

Memory Decay

Over time, memories become less relevant. The decayFactor (starting at 1.0) decreases:
  • Unused memories decay faster
  • Accessed memories are “refreshed”
  • Low importance memories decay faster
This ensures recent and frequently-relevant information takes priority.

Memory Retrieval

When building context for a request, GetProfile retrieves memories based on:
  1. Recency: More recent memories score higher
  2. Importance: Higher importance memories are prioritized
  3. Relevance: (Future) Semantic similarity to the current query
  4. Access patterns: Frequently accessed memories are boosted

Example: Memory Extraction

Given this conversation:
GetProfile extracts:

Deduplication

GetProfile automatically handles duplicate memories:
  • Identical content is merged
  • Similar memories may be consolidated
  • Source messages are aggregated