Memories are facts, preferences, and contextual information extracted from processed sessions. RecallrAI automatically analyzes conversations to identify and store meaningful information about users. Memories are organized into categories and can be retrieved with filtering and pagination.
def organize_memories_by_category(user): """Organize all memories into a dictionary by category.""" memories = user.list_memories(limit=100) organized = {} for item in memories.items: for category in item.categories: if category not in organized: organized[category] = [] organized[category].append(item.content) return organized# Usagememory_map = organize_memories_by_category(user)print("Memory Categories:")for category, contents in memory_map.items(): print(f"\n{category.upper()} ({len(contents)} memories):") for content in contents[:3]: # Show first 3 print(f" - {content}")
def search_memories(user, keyword): """Search for memories containing a specific keyword.""" all_memories = user.list_memories(limit=100) matching = [ item for item in all_memories.items if keyword.lower() in item.content.lower() ] return matching# Usageitalian_memories = search_memories(user, "italian")print(f"Found {len(italian_memories)} memories about Italian:")for mem in italian_memories: print(f"- {mem.content}")
from datetime import datetimedef display_memory_timeline(user, days=7): """Display memories created in the last N days.""" memories = user.list_memories(limit=100) now = datetime.now() recent = [] for item in memories.items: # Convert to timezone-aware if needed created = item.created_at if created.tzinfo is None: created = created.replace(tzinfo=now.tzinfo) days_ago = (now - created).days if days_ago <= days: recent.append((days_ago, item)) # Sort by most recent recent.sort(key=lambda x: x[0]) print(f"Memories from last {days} days:") for days_ago, item in recent: print(f"\n{days_ago} days ago:") print(f" {item.content}") print(f" Categories: {', '.join(item.categories)}") return recent# Usagetimeline = display_memory_timeline(user, days=14)
Raised when trying to list memories for a user that doesn’t exist.
Copy
from recallrai.exceptions import UserNotFoundErrortry: memories = user.list_memories()except UserNotFoundError as e: print(f"User not found: {e.message}")
InvalidCategoriesError (400)
Raised when invalid categories are provided.
Copy
from recallrai.exceptions import InvalidCategoriesErrortry: # Invalid category names memories = user.list_memories(categories=["invalid_category"])except InvalidCategoriesError as e: print(f"Invalid categories: {e.message}")
Pagination for large memory sets: If a user has many memories, use pagination to avoid loading everything at once. Start with a limit of 50-100.
Category filtering for performance: When you know what type of information you need, filter by category to reduce API calls and improve performance.
Monitor memory growth: Track the number of memories per user over time. A sudden spike might indicate issues with session processing or duplicate information.
Memories are read-only via API: You cannot directly create, update, or delete memories. They are managed automatically through session processing.