LiveKit + MemorySync
Voice agents that remember callers — recall injected under a hard latency budget, so a reply is never late.
Overview
Install livekit-memorysync and your LiveKit voice agent remembers callers across calls without ever sounding slow: recalled context is injected in on_user_turn_completed under a hard budget (default 1.2s) with the next recall prefetched in the background, so the common case is a zero-network cache hit. Both sides of the conversation persist as items finalize — with interruption metadata and deterministic idempotency seeds — and the injected block is turn-only and capture-excluded, so recalled context never re-enters storage. Composable by design: attach the engine to your own Agent subclass, or use the MemorySyncAgent drop-in. A memory outage degrades to "no memories this turn"; it can never stall or break a call.
Setup status and requirements
- Supported version
- livekit-memorysync 1.0.0 (PyPI)
- Last setup review
- 2026-08-24
- Permissions
- A MemorySync API key with read and write scopes.
- Limits
- Requires livekit-agents 1.x (Python 3.10+). With speech-to-speech realtime models, prefer the memory search tool over turn injection — the turn boundary is synthesized from transcripts.
Capabilities
- Hard recall budget (default 1.2s) — tested against a 5s-slow backend
- Background prefetch: the common case is a zero-network cache hit
- Both-role capture with interruption metadata as items finalize
- Deterministic idempotency seeds — reconnects never duplicate memories
- Injection is turn-only and capture-excluded, by test
- Composition-first: keep your own Agent class (drop-in also available)
- Memory search function_tool for speech-to-speech realtime models
- livekit:: transcript scope — separate history, same shared memories
Quick Start
from livekit.agents import Agent, AgentSessionfrom livekit_memorysync import MemorySyncMemorymemory = MemorySyncMemory(api_key="ms_...", user_id="caller-42",thread_id="room-123")class Assistant(Agent):def __init__(self) -> None:super().__init__(instructions="You are a helpful voice assistant.")async def on_user_turn_completed(self, turn_ctx, new_message):await memory.on_user_turn(self, turn_ctx, new_message)session = AgentSession(...)memory.attach(session) # capture both roles
Use Cases
Phone and web voice assistants that greet returning callers by context
Voice support agents that remember prior issues and preferences
Outbound voice campaigns with per-customer conversational history
Explore More
Built for production AI systems
Build AI systems that remember
MemorySync provides the infrastructure layer for persistent memory, adaptive retrieval, and enterprise AI intelligence.
Start free. No credit card required.