Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agno-v2-shaloo-ai-support-link.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

"""
SurrealDB Memory Search
"""

from agno.db.surrealdb import SurrealDb
from agno.memory import MemoryManager, UserMemory
from agno.models.openai import OpenAIChat
from rich.pretty import pprint

# ---------------------------------------------------------------------------
# Setup
# ---------------------------------------------------------------------------
SURREALDB_URL = "ws://localhost:8000"
SURREALDB_USER = "root"
SURREALDB_PASSWORD = "root"
SURREALDB_NAMESPACE = "agno"
SURREALDB_DATABASE = "memories"

creds = {"username": SURREALDB_USER, "password": SURREALDB_PASSWORD}
db = SurrealDb(None, SURREALDB_URL, creds, SURREALDB_NAMESPACE, SURREALDB_DATABASE)


# ---------------------------------------------------------------------------
# Create Memory Manager
# ---------------------------------------------------------------------------
memory = MemoryManager(model=OpenAIChat(id="gpt-4o"), db=db)


# ---------------------------------------------------------------------------
# Run Example
# ---------------------------------------------------------------------------
def run_example() -> None:
    john_doe_id = "john_doe@example.com"
    memory.add_user_memory(
        memory=UserMemory(memory="The user enjoys hiking in the mountains on weekends"),
        user_id=john_doe_id,
    )
    memory.add_user_memory(
        memory=UserMemory(
            memory="The user enjoys reading science fiction novels before bed"
        ),
        user_id=john_doe_id,
    )
    print("John Doe's memories:")
    pprint(memory.get_user_memories(user_id=john_doe_id))

    memories = memory.search_user_memories(
        user_id=john_doe_id, limit=1, retrieval_method="last_n"
    )
    print("\nJohn Doe's last_n memories:")
    pprint(memories)

    memories = memory.search_user_memories(
        user_id=john_doe_id, limit=1, retrieval_method="first_n"
    )
    print("\nJohn Doe's first_n memories:")
    pprint(memories)

    memories = memory.search_user_memories(
        user_id=john_doe_id,
        query="What does the user like to do on weekends?",
        retrieval_method="agentic",
    )
    print("\nJohn Doe's memories similar to the query (agentic):")
    pprint(memories)


if __name__ == "__main__":
    run_example()

Run the Example

# Clone and setup repo
git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/92_integrations/surrealdb

# Create and activate virtual environment
./scripts/demo_setup.sh
source .venvs/demo/bin/activate

python memory_search_surreal.py