Skip to main content

Give your AI agents human-like memory. The pluggable memory layer for AI applications.

Project description

Remina Logo

Remina

Memory infrastructure for AI applications.

Remina is the memory layer for AI systems. Extract facts, persist context, and retrieve relevant memories — with pluggable infrastructure that fits your stack.

from remina import Memory

memory = Memory()

# Extract and store facts
memory.add("I'm John, I work at Google as a software engineer.", user_id="john")

# Semantic retrieval
results = memory.search("What is John's profession?", user_id="john")
# → ["Works as a software engineer at Google"]

Why Remina

AI applications without persistent memory accumulate technical debt: lost context, repeated user friction, degraded personalization. Remina addresses this at the infrastructure layer.

Core capabilities:

  • Automatic fact extraction — LLM-powered extraction from conversations
  • Hybrid retrieval — Vector similarity + temporal decay + importance weighting
  • Deduplication — Similarity-based duplicate prevention
  • Pluggable architecture — Swap storage, vectors, embeddings, and LLM providers independently

Installation

pip install remina

Provider extras: openai, anthropic, gemini, pinecone, qdrant, chroma, postgres, mongodb, redis.

Quick Start

from remina import Memory

# Defaults: OpenAI embeddings + Chroma vectors + SQLite storage
memory = Memory()

# Extract facts from conversation
memory.add(
    messages=[
        {"role": "user", "content": "I just moved to Seattle"},
        {"role": "assistant", "content": "How do you like it?"},
        {"role": "user", "content": "Great city, but the rain takes adjustment"}
    ],
    user_id="user_123"
)
# Extracts: ["Lives in Seattle", "Likes Seattle", "Rain requires adjustment"]

# Semantic search
results = memory.search("Where does the user live?", user_id="user_123")

# Retrieve all
all_memories = memory.get_all(user_id="user_123")

# Cleanup
memory.close()

Async API

from remina import AsyncMemory
import asyncio

async def main():
    memory = AsyncMemory()
    await memory.add("I prefer dark mode", user_id="user_123")
    results = await memory.search("user preferences", user_id="user_123")
    await memory.close()

asyncio.run(main())

Configuration

from remina import Memory

config = {
    "llm": {
        "provider": "openai",  # or "anthropic", "gemini", "ollama"
        "config": {"model": "gpt-4o-mini"}
    },
    "embedder": {
        "provider": "openai",
        "config": {"model": "text-embedding-3-small"}
    },
    "vector_store": {
        "provider": "qdrant",  # or "pinecone", "chroma", "pgvector"
        "config": {"url": "http://localhost:6333"}
    },
    "storage": {
        "provider": "postgres",  # or "mongodb", "sqlite"
        "config": {
            "host": "localhost",
            "database": "remina",
            "user": "postgres",
            "password": "password"
        }
    },
    "cache": {
        "redis_url": "redis://localhost:6379",
        "enabled": True
    }
}

memory = Memory(config)

Supported Providers

Category Providers
LLMs OpenAI, Anthropic, Gemini, Ollama
Embeddings OpenAI, Gemini, Cohere, Ollama, HuggingFace
Vector Stores Pinecone, Qdrant, Chroma, pgvector
Storage PostgreSQL, MongoDB, SQLite
Cache Redis

Roadmap

v0.2 — Extraction & Intelligence

  • Conversation ingestion pipeline
  • Contradiction detection
  • Memory consolidation

v0.3 — Graph & Relationships

  • Memory graph with relationship linking
  • Graph-enhanced retrieval
  • Adaptive decay rates

v0.4 — Provider Expansion

  • Weaviate, Milvus vector stores
  • DynamoDB, Supabase storage
  • Voyage, HuggingFace embeddings
  • vLLM local inference

v1.0 — Production Hardening

  • TypeScript SDK
  • REST API wrapper
  • Prometheus metrics
  • Distributed tracing

Contributing

git clone https://github.com/bikidsx/remina
cd remina-memory
pip install -e ".[dev]"
pytest

See CONTRIBUTING.md for details.

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remina-0.1.5.tar.gz (31.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remina-0.1.5-py3-none-any.whl (44.4 kB view details)

Uploaded Python 3

File details

Details for the file remina-0.1.5.tar.gz.

File metadata

  • Download URL: remina-0.1.5.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Deepin","version":"25","id":"crimson","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for remina-0.1.5.tar.gz
Algorithm Hash digest
SHA256 a46edfd0aba2718a0fed16b66a8c68324dc9b0e4589d28527eb3b7dbd611e9f2
MD5 ff6958d26f78022bcddbb24f7638f163
BLAKE2b-256 f2b5999a6a1153f8fca8bed6c1f9634f85d18cfb93991400a669f94d44c86182

See more details on using hashes here.

File details

Details for the file remina-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: remina-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 44.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Deepin","version":"25","id":"crimson","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for remina-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 dba0f37e03cd8f79ff32a74fe1064698f1b27389801d25a8486f44e9c3ab8eb7
MD5 36fec61feac1fa5402e5ce683b5589ad
BLAKE2b-256 f959b2dea6ae82bc4e9657b9a745f73b4a3a7e5d352dd76d30aff21667d3a398

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page