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.
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)
- Seu aplicativo chama
client.chat.completions.create(messages=[...]) - Memori intercepta essa chamada de forma transparente
- O Agente de Recuperação (modo auto) ou Agente Consciente (modo conscious) recupera memórias relevantes
- O contexto é injetado nas mensagens antes de serem enviadas ao provedor LLM
Depois da Chamada (Registro)
- O provedor LLM retorna a resposta
- O Agente de Memória extrai entidades, classifica (fatos, preferências, habilidades, regras, contexto)
- A conversa é armazenada no banco de dados SQL, com índice de pesquisa de texto completo
- 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:
- Camada de Interceptação - Intercepta chamadas de API LLM de forma transparente
- Camada de Recuperação - Recupera inteligentemente o contexto de memória relevante
- Camada de Armazenamento - Armazenamento persistente em banco de dados SQL
- 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
- Documentação: https://memorilabs.ai/docs
- Comunidade Discord: https://discord.gg/abD4eGym6v
- GitHub Issues: https://github.com/GibsonAI/memori/issues
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.