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
| Mode | Method |
|---|---|
| Sync | agent.run_sync() |
| Async | await agent.run() |
| Streamed | Via agent streaming support |