First, import and initialize Ryumem with your server URL and API key:
from ryumem import Ryumem# Initialize with your self-hosted Ryumem serverryumem = Ryumem( server_url="http://localhost:8000", api_key="ryu_your_api_key_here",)
Need to set up Ryumem? See the Setup Guide for Docker Compose or local installation instructions.
Episodes are the fundamental unit of memory in Ryumem. Each episode contains content that gets parsed into entities and relationships:
# Add your first episoderyumem.add_episode( content="Alice works at Google in Mountain View as a Software Engineer.", user_id="user_123", session_id="session_abc",)# Add a related episoderyumem.add_episode( content="Bob is Alice's colleague and recently moved to Meta.", user_id="user_123", session_id="session_abc",)
The user_id parameter is used for multi-tenancy to isolate memories by user. The session_id groups related episodes together within a conversation or session.
Retrieve comprehensive information about a specific entity:
# Get all context for an entitycontext = ryumem.get_entity_context( entity_name="Alice", user_id="user_123", session_id="session_abc",)print(f"Entity: {context['entity']['name']}")print(f"Type: {context['entity']['entity_type']}")print(f"Relationships: {context['relationship_count']}")
from ryumem import Ryumem# Initialize with your self-hosted serverryumem = Ryumem( server_url="http://localhost:8000", api_key="ryu_your_api_key_here")# Add knowledgeryumem.add_episode( content="Alice works at Google in Mountain View as a Software Engineer.", user_id="user_123", session_id="session_abc",)ryumem.add_episode( content="Bob is Alice's colleague and recently moved to Meta.", user_id="user_123", session_id="session_abc",)# Searchresults = ryumem.search( query="Where does Alice work?", user_id="user_123", session_id="session_abc", strategy="hybrid", limit=10,)# Process resultsfor entity in results.entities: score = results.scores.get(entity.uuid, 0.0) print(f"{entity.name} - {score:.3f}")
This example demonstrates Ryumem’s query augmentation with Google ADK. An AI agent learns from previous attempts to guess a password more intelligently.
from ryumem import Ryumemfrom ryumem.integrations import add_memory_to_agent, wrap_runner_with_trackingfrom google.adk.agents import Agentfrom google.adk.tools import FunctionToolfrom google.adk.runners import Runner# Initialize Ryumem with query augmentationryumem = Ryumem( track_tools=True, # Enable tool tracking augment_queries=True, # Enable query augmentation similarity_threshold=0.3, # Match queries with 30%+ similarity top_k_similar=5, # Use top 5 similar queries for context)# Create your agent with toolsagent = Agent( model="gemini-2.0-flash-exp", name="password_guesser", instruction="You are a strategic password guesser...", tools=[validate_tool, history_tool, hint_tool])# Add memory to the agentagent = add_memory_to_agent(agent, ryumem)# Wrap the runner for automatic query trackingrunner = wrap_runner_with_tracking(runner, agent)