Mem0 is a production-grade memory layer for AI agents, providing persistent, searchable, and updatable memory across sessions. It operates as both an open-source Python/TypeScript SDK and a hosted platform (api.mem0.ai). The core library abstracts away LLM providers (OpenAI, Anthropic, Groq, vLLM, etc.), embedding models, vector stores (over 20 backends including Qdrant, Pinecone, PGVector, Chroma, Weaviate, and many more), and rerankers behind a consistent config-driven interface. Memory operations (add, search, update, delete) support scoping by user, agent, session, or run, and leverage hybrid search combining semantic, BM25, and entity-boost signals with configurable reranking. The repository is architected as a monorepo with a clear separation of concerns: the core SDK packages (`mem0/` for Python, `mem0-ts/` for TypeScript), a self-hosted FastAPI server with a Next.js dashboard, CLI tools in both Python and Node.js, and a comprehensive plugin ecosystem for AI coding agents (Claude Code, Cursor, Codex, Kimi, Antigravity, Pi Agent, OpenClaw, etc.). Each integration follows a uniform hook adapter pattern, translating native agent events into memory operations via MCP servers or shared core modules. The platform backend includes authentication, API key management, telemetry via PostHog, and a webhook system for event-driven workflows. Key data flows: An application calls `memory.add()` with messages and metadata → the SDK extracts facts via an LLM → embeds them using the configured embedder → stores vectors and metadata in the chosen vector store. On `memory.search()`, the query is embedded, hybrid-scored against stored vectors (with optional reranking), and results are returned with relevance scores. The system supports temporal reasoning (timestamp filtering, memory decay), entity-based partitioning, custom categories, and feedback mechanisms to refine future retrievals. External dependencies include LLM APIs, vector databases, embedding services, and optionally Redis/SQLite for local history.