Pydantic AI

Memori integrates at the agent level — register the Agent instance and Memori wraps run_sync and run automatically. Works with any Pydantic AI-supported model.

Want a zero-setup option? The Memori Cloud at app.memorilabs.ai.

Quick Start

from memori import Memori
from pydantic_ai import Agent
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///memori.db")
SessionLocal = sessionmaker(bind=engine)

agent = Agent("openai:gpt-4o-mini")

mem = Memori(conn=SessionLocal).llm.register(agent)
mem.config.storage.build()
mem.attribution(entity_id="user_123", process_id="pydantic_agent")

result = agent.run_sync("Hello!")
print(result.output)

Async Usage

import asyncio
from memori import Memori
from pydantic_ai import Agent
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("sqlite:///memori.db")
SessionLocal = sessionmaker(bind=engine)

agent = Agent("openai:gpt-4o-mini")

mem = Memori(conn=SessionLocal).llm.register(agent)
mem.config.storage.build()
mem.attribution(entity_id="user_123", process_id="pydantic_agent")

async def main():
    result = await agent.run("Hello!")
    print(result.output)

asyncio.run(main())

Different Providers

Pydantic AI supports multiple providers via model strings. Registration is identical regardless of provider.

Pydantic AI Providers
agent = Agent("openai:gpt-4o-mini")
mem = Memori(conn=SessionLocal).llm.register(agent)

Supported Modes

ModeMethod
Syncagent.run_sync()
Asyncawait agent.run()
StreamedVia agent streaming support