Visão Geral
O fmem é um sistema de memória local-first que torna as conversas com IA naturais e contínuas. Ele lembra o contexto preciso que você precisa. Não documentos inteiros ou palavras-chave isoladas, mas os chunks significativos que importam.
Inovação Central: O chunking híbrido divide documentos de forma inteligente. Usa chunks de 800 caracteres com splitting atômico consciente de tabelas e detecção de limites de cabeçalho—sem limites arbitrários de tokens.
Nota: Esta é uma abordagem entre muitas (LlamaIndex, Chroma, armazenamentos vetoriais simples). O fmem foi construído especificamente para Raspberry Pi — dependências mínimas, local-first, roda em hardware restrito.
Pré-requisitos
- Python 3.9+
- pip
- ~22MB para pesos do modelo (baixado na primeira execução)
Principais Funcionalidades
| Funcionalidade | Descrição |
|---|---|
| Indexação em nível de chunk | Recupera seções relevantes, não arquivos inteiros |
| Ranqueamento multi-fator | Semântico (50%) + Recência (30%) + Localização (20%) |
| Zero APIs externas | Todos os embeddings rodam localmente via FastEmbed. A primeira execução baixa um modelo de ~22MB. |
| Chunking consciente de tabelas | Tabelas tratadas como unidades atômicas |
| Privacy-first | Sua memória permanece na sua máquina |
Como Funciona
|
|
Ranqueamento Multi-Fator:
- Semântico (50%): Similaridade vetorial FAISS
- Recência (30%): Decaimento baseado em tempo na modificação do arquivo
- Localização (20%): Importância do diretório (docs > notas > chats)
Desempenho
- Indexação: ~1,5s por arquivo markdown de 7KB
- Busca: Sub-100ms para consultas típicas
- Memória: Tamanho do modelo ~22MB, cabe em sistemas embarcados
Início Rápido
|
|
Configuração mínima (~/.openclaw/memory/fmem.conf):
|
|
Casos de Uso
- Assistentes pessoais de IA — Lembrar contexto entre sessões
- Trabalho exploratório — Indexar notas diárias; o fmem recorda momentos específicos, como “aquela ideia de fluxo de auth da terça-feira passada”
- Gestão de conhecimento — Busca semântica sobre notas, decisões, documentos
Detalhes Técnicos
- Embedding: all-minilm:22m via FastEmbed (local, sem API)
- Tamanho do chunk: 800 caracteres (restrito pelo modelo para 512 tokens)
- Index: FAISS para busca de similaridade rápida
- Licença: MIT
Links
- GitHub: github.com/LuisEduardoAvila/fmem
- Documentação: Arquitetura · Exemplos
- Status: v1 Stable (v3.1.0)