Memory Tiers & Evolution
Snipara's memory system uses intelligent tiering to automatically prioritize and manage agent memories, ensuring the most relevant context is always available.
New in 2026
Memory Tiers, Daily Journals, Agent Profiles, and Compaction tools are now available. These features enable persistent agent identity and self-curating memory systems.
Memory Tier System
Memories are automatically classified into three tiers based on type, access patterns, and age:
| Tier | Auto-Load | Token Budget | Memory Types |
|---|---|---|---|
| CRITICAL | Yes, always | 8,000 tokens | Decisions, Facts |
| DAILY | Today + Yesterday | 4,000 tokens | Context, TODOs |
| ARCHIVE | Query-only | - | Learnings, Preferences |
Automatic Classification
When you store a memory with rlm_remember, it's automatically assigned to a tier based on its type:
- DECISION and FACT → CRITICAL (always available)
- TODO and CONTEXT → DAILY (recent context)
- LEARNING and PREFERENCE → ARCHIVE (query when needed)
Automatic Promotion
Memories can be promoted to CRITICAL tier based on usage:
- Access count ≥ 3: If a memory is recalled 3+ times, it's promoted to CRITICAL
- Confidence ≥ 0.8: High-confidence memories are promoted automatically
Daily Journals
Daily journals provide temporal structure to your operational notes. Unlike flat memories, journals are organized by day and automatically included in session context.
rlm_journal_append
Add an entry to today's journal:
rlm_journal_append(
text="Completed auth refactor. Switched from JWT to session cookies.",
tags=["auth", "refactor"]
)rlm_journal_get
Read journal entries for a specific date:
# Today's entries
rlm_journal_get()
# Specific date with yesterday included
rlm_journal_get(date="2026-03-18", include_yesterday=True)rlm_journal_summarize
Prepare a day's journal for summarization before archival:
rlm_journal_summarize(date="2026-03-18")
# Returns combined content with a suggested summarization promptSession Memory Loading
Use rlm_session_memories to get tiered memories optimized for session start:
rlm_session_memories(
max_critical_tokens=8000,
max_daily_tokens=4000,
include_yesterday=True
)This returns:
- critical: All CRITICAL tier memories within token budget
- daily: DAILY tier memories from today + yesterday
- total_tokens: Combined token count
Memory Compaction
Over time, memories accumulate. Use compaction to optimize your memory store:
rlm_memory_compact
# Preview changes first
rlm_memory_compact(dry_run=True)
# Execute compaction
rlm_memory_compact(
deduplicate=True, # Merge duplicate memories
promote_threshold=3, # Promote learnings accessed 3+ times
archive_older_than_days=30 # Archive old non-critical memories
)Compaction performs:
- Promotion: Frequently-accessed learnings → CRITICAL
- Archival: Old non-critical memories → ARCHIVE
- Deduplication: Merge similar memories
rlm_memory_daily_brief
Generate a "Top 10 constraints" brief for the day:
rlm_memory_daily_brief(max_items=10)
# Returns formatted brief with:
# - Active decisions
# - Pending TODOs
# - Recent learningsTenant Profiles
For client projects, create structured tenant profiles that auto-load as CRITICAL memories:
rlm_tenant_profile_create
rlm_tenant_profile_create(
client_name="Acme Corp",
business_model="B2B SaaS for logistics",
industry="Supply Chain",
tech_stack="React, Node.js, PostgreSQL, AWS",
legal_constraints="GDPR compliant, SOC2 Type II",
security_requirements="MFA required, no PII in logs",
risk_tolerance="low",
dos=["Always validate input", "Use parameterized queries"],
donts=["Never store passwords in plaintext"]
)rlm_tenant_profile_get
# Get all profiles for the project
rlm_tenant_profile_get()
# Get specific profile by ID
rlm_tenant_profile_get(tenant_id="mem_xyz789")Best Practices
Use Appropriate Memory Types
Store decisions as type="decision" and facts as type="fact" to ensure they're automatically classified as CRITICAL and always available.
Journal Daily Progress
Use rlm_journal_append throughout your work sessions. Journal entries from today and yesterday are automatically included in session context.
Run Weekly Compaction
Schedule rlm_memory_compact weekly to keep your memory store efficient. Always preview with dry_run=True first.
Create Client Profiles Early
At project onboarding, create a tenant profile with client constraints and preferences. This ensures consistent context across all sessions.
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ LAYER 1: Documents (Knowledge) │
│ • CLAUDE.md, docs/*, indexed content │
│ • Access: rlm_context_query │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ LAYER 2: Agent Profile (Soul) │
│ • Identity, personality, boundaries │
│ • Auto-load on session start (swarm agents) │
│ • Access: rlm_agent_profile_get/update │
└─────────────────────────────────────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ LAYER 3: Tiered Memory (Operational) │
│ • CRITICAL: decisions, facts (auto-load) │
│ • DAILY: context, todos (today + yesterday) │
│ • ARCHIVE: learnings, preferences (query-only) │
│ • Access: rlm_remember, rlm_recall, rlm_journal_* │
└─────────────────────────────────────────────────────────────────┘