Um mecanismo de memória SQL nativo de código aberto para LLMs, Agentes de IA e sistemas multiagente, implementando memória de IA persistente e pesquisável com uma única linha de código.

NOASSERTIONPythonMemoriGibsonAI 8.5k Last Updated: November 24, 2025

Memori - Introdução Detalhada ao Motor de Memória de IA de Código Aberto

Visão Geral do Projeto

Memori é um motor de memória SQL nativo de código aberto, projetado para Grandes Modelos de Linguagem (LLMs), Agentes de IA e sistemas multiagente. Ele permite que qualquer LLM tenha capacidade de memória persistente e consultável com uma única linha de código, armazenando dados de memória em bancos de dados SQL padrão.

Características Principais:

  • Integração com uma única linha de código via memori.enable()
  • Dados de memória armazenados em bancos de dados SQL padrão (SQLite, PostgreSQL, MySQL), com total propriedade e controle do usuário
  • A IA pode lembrar conversas, aprender com interações e manter o contexto em várias sessões

Por que escolher Memori?

1. Integração com Uma Linha de Código

Suporta OpenAI, Anthropic, LiteLLM, LangChain e qualquer framework LLM, tornando a integração extremamente simples.

2. Armazenamento SQL Nativo

  • Dados de memória portáteis, consultáveis e auditáveis
  • Armazenados no seu banco de dados, sob seu controle total
  • Não são necessários bancos de dados vetoriais complexos

3. Economia de Custos de 80-90%

Não requer bancos de dados vetoriais caros, reduzindo significativamente os custos operacionais.

4. Zero Bloqueio de Fornecedor

Pode exportar a memória para o formato SQLite, permitindo a migração para qualquer lugar a qualquer momento.

5. Gerenciamento Inteligente de Memória

  • Extração automática de entidades
  • Mapeamento de relacionamentos
  • Priorização de contexto

Início Rápido

Instalação

pip install memorisdk

Uso Básico

from memori import Memori
from openai import OpenAI

# Inicialização
memori = Memori(conscious_ingest=True)
memori.enable()
client = OpenAI()

# Primeira conversa
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "I'm building a FastAPI project"}]
)

# Conversa subsequente - Memori fornece contexto automaticamente
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Help me add authentication"}]
)
# O LLM saberá automaticamente sobre o seu projeto FastAPI

Bancos de Dados Suportados

Memori suporta qualquer banco de dados SQL padrão:

Banco de Dados Exemplo de String de Conexão
SQLite sqlite:///my_memory.db
PostgreSQL postgresql://user:pass@localhost/memori
MySQL mysql://user:pass@localhost/memori
Neon postgresql://user:pass@ep-*.neon.tech/memori
Supabase postgresql://postgres:pass@db.*.supabase.co/postgres

Frameworks LLM Suportados

Através do sistema de callback nativo do LiteLLM, Memori suporta todos os principais frameworks:

Framework Status Modo de Uso
OpenAI ✓ Suporte Nativo from openai import OpenAI
Anthropic ✓ Suporte Nativo from anthropic import Anthropic
LiteLLM ✓ Suporte Nativo from litellm import completion
LangChain ✓ Suportado Integração via LiteLLM
Azure OpenAI ✓ Suportado Configurar usando ProviderConfig.from_azure()
100+ Modelos ✓ Suportado Qualquer provedor compatível com LiteLLM

Opções de Configuração

Configuração do Banco de Dados

from memori import Memori

memori = Memori(
    database_connect="postgresql://user:pass@localhost/memori",
    conscious_ingest=True,  # Memória de trabalho de curto prazo
    auto_ingest=True,       # Pesquisa dinâmica a cada consulta
    openai_api_key="sk-..."
)
memori.enable()

Modos de Memória

Modo Conscious - Injeção de Memória de Trabalho Única

memori = Memori(conscious_ingest=True)

Modo Auto - Pesquisa Dinâmica a Cada Consulta

memori = Memori(auto_ingest=True)

Modo Combinado - Ambos

memori = Memori(conscious_ingest=True, auto_ingest=True)

Configuração de Variáveis de Ambiente

from memori import Memori, ConfigManager

config = ConfigManager()
config.auto_load()  # Carrega de variáveis de ambiente ou arquivo de configuração
memori = Memori()
memori.enable()

Definir variáveis de ambiente:

export MEMORI_DATABASE__CONNECTION_STRING="postgresql://..."
export MEMORI_AGENTS__OPENAI_API_KEY="sk-..."
export MEMORI_MEMORY__NAMESPACE="production"

Como Funciona

Memori funciona interceptando chamadas LLM - injetando contexto antes da chamada e registrando informações depois:

Antes da Chamada (Injeção de Contexto)

  1. Seu aplicativo chama client.chat.completions.create(messages=[...])
  2. Memori intercepta essa chamada de forma transparente
  3. O Agente de Recuperação (modo auto) ou Agente Consciente (modo conscious) recupera memórias relevantes
  4. O contexto é injetado nas mensagens antes de serem enviadas ao provedor LLM

Depois da Chamada (Registro)

  1. O provedor LLM retorna a resposta
  2. O Agente de Memória extrai entidades, classifica (fatos, preferências, habilidades, regras, contexto)
  3. A conversa é armazenada no banco de dados SQL, com índice de pesquisa de texto completo
  4. A resposta original é retornada ao seu aplicativo

Processamento em Segundo Plano (a cada 6 horas)

  • O Agente Consciente analisa padrões, elevando memórias importantes do armazenamento de longo prazo para o de curto prazo

Exemplos de Cenários de Aplicação

Exemplos Básicos

  • Uso Básico - Configuração simples de memória
  • Assistente Pessoal - Assistente de IA com memória
  • Recuperação de Memória - Chamada de função
  • Configuração Avançada - Configurações para ambiente de produção

Cenários Multi-usuário

  • Multi-usuário Simples - Isolamento de memória do usuário
  • Aplicativo FastAPI Multi-usuário - API REST com Swagger

Exemplos de Integração de Frameworks

Memori oferece exemplos de integração com vários frameworks de IA populares:

  • Agno
  • AWS Strands
  • Azure AI Foundry
  • AutoGen
  • CamelAI
  • CrewAI
  • Digital Ocean AI
  • LangChain
  • OpenAI Agent
  • Swarms

Demonstrações Online

  • Assistente de Diário Pessoal - Aplicativo Streamlit disponível online
  • Agente Assistente de Pesquisa - Ferramenta de pesquisa disponível online

Arquitetura Técnica

Memori adota um design de arquitetura em camadas:

  1. Camada de Interceptação - Intercepta chamadas de API LLM de forma transparente
  2. Camada de Recuperação - Recupera inteligentemente o contexto de memória relevante
  3. Camada de Armazenamento - Armazenamento persistente em banco de dados SQL
  4. Camada de Análise - Análise em segundo plano e otimização de memória

Para documentação detalhada da arquitetura, consulte architecture.md na documentação oficial.

Edição Empresarial (Memori v3)

Memori está abrindo um pequeno grupo de testes privados para a versão v3. Se você deseja saber mais e ter acesso antecipado à nova arquitetura de memória para IA empresarial, pode participar do plano de testes.

Comunidade e Suporte

Guia de Contribuição

Memori acolhe contribuições da comunidade! O projeto oferece um guia detalhado de contribuição, incluindo:

  • Configuração do ambiente de desenvolvimento
  • Estilo e padrões de código
  • Envio de Pull Requests
  • Relato de problemas

Licença de Código Aberto

Licença Apache 2.0

Resumo

Memori é uma solução de memória de IA poderosa e fácil de usar, especialmente adequada para:

  • Desenvolvedores que precisam adicionar funcionalidade de memória a aplicativos LLM
  • Equipes que constroem assistentes de IA multi-sessão
  • Projetos que precisam reduzir os custos de bancos de dados vetoriais
  • Empresas que desejam controle total sobre os dados de memória da IA

Através do armazenamento SQL nativo e do conceito de integração com uma única linha de código, Memori reduz significativamente a barreira e o custo de adicionar funcionalidade de memória a aplicativos de IA.

Star History Chart