Skip to content

Memory

Memory allows Agents to persist information across sessions.

Overview

YosrAI provides a simple Memory interface with multiple backends.

Usage

from yosrai.engine.memory import FileMemory

# Create a memory backed by a JSON file
memory = FileMemory(path="./agent_memory.json")

# Attach to an Agent
agent = Agent(
    name="Remembrall",
    instructions="You remember everything.",
    memory=memory
)

Shared Memory (Team Knowledge)

You can share a single memory instance across multiple agents by injecting it via a Conductor. This creates a collaborative knowledge base.

from yosrai import Conductor, Agent
from yosrai.engine.memory import FileMemory

# Shared memory
team_memory = FileMemory("team_data.json")

# Agents don't need memory explicitly assigned here
researcher = Agent(name="Researcher", ...)
writer = Agent(name="Writer", ...)

conductor = Conductor(
    name="Lead",
    skills=[researcher, writer],
    shared_memory=team_memory  # Injects 'team_memory' into both skills
)

Text Chunking

Prepare large documents for ingestion using chunking utilities.

from yosrai.engine.utils import chunk_text, chunk_content

# Split text into segments
chunks = chunk_text("Very long text...", size=500, strategy="sentence")

# Split and attach metadata
dataset = chunk_content(
    "Long article...", 
    metadata={"source": "viking_history.txt"},
    strategy="paragraph"
)

API Reference

yosrai.engine.memory.base.Memory

Bases: ABC

Abstract interface for Agent Memory.

aadd(content, metadata=None) abstractmethod async

Async store a new memory item.

add(content, metadata=None) abstractmethod

Store a new memory item.

asearch(query, limit=5) abstractmethod async

Async retrieve relevant memories.

clear() abstractmethod

Clear all memories.

get_recent(limit=10) abstractmethod

Retrieve the most recent memories.

search(query, limit=5) abstractmethod

Retrieve relevant memories based on query (semantic search).

yosrai.engine.memory.simple.SimpleMemory

Bases: Memory

A transient, in-memory storage. Good for testing or single-session context.

yosrai.engine.memory.simple.FileMemory

Bases: SimpleMemory

Persists memory to a JSON file.

yosrai.engine.memory.vector.LocalVectorMemory

Bases: FileMemory

A light-weight Vector Store that runs locally. Uses an Embedder to generating embeddings and pure Python math for cosine similarity. Persists to a single JSON file.

Ideal for: < 1000 items (Agent scratchpad, small context). Not for: Large knowledge bases (Use Chroma/Qdrant).