my-memory
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
🧠 Memória semântica e relacional unificada (Go, SQLite-Vec, TurboQuant 4-bit, Grafo CTEs e MCP) para Agentes de IA
🧠 My-Memory
Transforme qualquer repositório ou vault Markdown em uma memória autoconsciente (Repository Brain) para você e seus Agentes de IA.
💡 Por que o My-Memory?
Agentes de IA (Claude Code, Cursor, Antigravity, GitHub Copilot, Windsurf) sofrem com limites de contexto e alucinações relacionais quando navegam em projetos grandes:
- Perda de Contexto: Não é viável enviar centenas de arquivos para a janela de contexto sem estourar tokens e aumentar custos.
- Dependências Quebradas: A IA altera um módulo sem saber quais componentes dependem dele no grafo.
- Decisões Esquecidas: A IA refatora código ignorando decisões de arquitetura (ADRs) documentadas no passado.
O My-Memory resolve isso unificando busca vetorial, grafo de conhecimento e busca léxica em uma camada unificada de altíssima performance, acessível diretamente via terminal ou pelo Model Context Protocol (MCP).
⚡ Arquitetura em 5 Pilares
[ Arquivos Markdown / Notas ]
│
┌────────────────────┴────────────────────┐
▼ ▼
[ Parser [[wikilinks]] & #tags ] [ Chunking Semântico ]
│ │
▼ ▼
( graph_nodes & edges ) [ Ollama Embeddings ]
│ (nomic-embed-text 768d)
│ │
│ ┌───────────────┴───────────────┐
│ ▼ ▼
│ [ sqlite-vec ] [ TurboQuant 4-bit ]
│ (float32 k-NN) (32 Reflexões Householder
│ │ + Bit-Packing)
│ │ │
▼ ▼ ▼
┌───────────────────────────────────────────────────────────────────────────────────────┐
│ SQLite Local (memory.db) │
│ • documents • chunks_vec (vec0) • graph_nodes │
│ • chunks • chunks_turboquant (4-bit) • graph_edges │
│ • chunks_fts (BM25) │
└───────────────────────────────────────────────────────────────────────────────────────┘
▲
│
┌─────────────────────────┴─────────────────────────┐
▼ ▼
[ CLI: mem search [-tq] ] [ Servidor MCP: mem mcp ]
(Desenvolvedor no terminal) (Claude Code, Cursor, IAs)
- 📦 SQLite Unificado & PostgreSQL Opcional: Sem dependências pesadas (sem Neo4j, sem Pinecone, sem Elasticsearch). Armazena documentos, tabela virtual
sqlite-vec, índice léxicoFTS5 (BM25)e conexões de grafo em um arquivo local único ou em PostgreSQL corporativo compgvector. - 🔬 TurboQuant (Google DeepMind, ICLR 2026): Implementação pioneira em Go da quantização de 4-bits com 32 reflexões ortogonais de Householder ($R^T R = I$). Reduz o consumo vetorial em ~88% (de 3.072 para 388 bytes por chunk) mantendo fidelidade $> 99%$.
- 🕸 Grafo Estilo Obsidian via SQL Recursivo: Extrai conexões explícitas de notas (
[[links]]e#tags), permitindo travessias relacionais, detecção de comunidades (LPA) e análise de raio de impacto em microssegundos. - 🔌 Model Context Protocol (MCP) Nativo: Conecta-se diretamente aos assistentes de codificação de IA via
stdio(JSON-RPC 2.0) ou rede HTTP/SSE, expondo ferramentas de busca e expansão de contexto. - 🏛️ Federação, Cofre Central e Wikilinks Cross-Vault: Vincula um Cofre Central de padrões corporativos (Google Drive / OneDrive para Obsidian) a repositórios satélites com
repo_idcriptográfico imutável, catálogo global (~/.memory/config.yaml), zero-credentials no Git, busca híbrida federada via RRF e protocolo canônico universalmemory://<repo>/<path>para resolução transparente de wikilinks cross-vault em editores e MCP.
📊 Eficiência TurboQuant (Google DeepMind, ICLR 2026)
Para um vetor de 768 dimensões (nomic-embed-text):
| Formato | Precisão | Bytes / Chunk | Redução de Espaço | Fidelidade Angular |
|---|---|---|---|---|
| Float32 Padrão | 32-bit float | 3.072 bytes | Linha de Base | 100.0% |
| Int8 Clássico | 8-bit int | 768 bytes | ~75.0% | ~95.0% (sensível a outliers) |
| TurboQuant 4-bit | 4-bit packed | 388 bytes | ~87.4% | > 99.0% (ortogonalmente protegido) |
⚡ Instalação Rápida (1 Comando)
Instale a versão oficial compilada do My-Memory em segundos, com integridade criptográfica SHA-256 verificada e configuração automática de PATH (sem requerer Go instalado):
Windows (PowerShell)
irm https://raw.githubusercontent.com/FelipeMiiller/my-memory/main/scripts/install.ps1 | iex
Linux & macOS (POSIX Shell)
curl -fsSL https://raw.githubusercontent.com/FelipeMiiller/my-memory/main/scripts/install.sh | sh
Opção via Go Toolchain: Se você possui Go $\ge$ 1.22 instalado:
go install github.com/FelipeMiiller/my-memory/cmd/mem@latest
🚀 Início Rápido (Quickstart)
1. Inicializar o Vault no seu Projeto
Na pasta raiz do seu repositório de código ou vault de notas:
mem init
(Gera a pasta .memory/ com repo_id, escopo de pastas, .gitignore seguro e registra no catálogo global).
2. Configurar Cofre Central e Preferências Globais (Opcional)
mem setup
(Assistente interativo que conecta seu Google Drive/OneDrive e grava em ~/.memory/config.yaml).
3. Auto-Configurar Clientes de IA
mem install
(Configura automaticamente Claude Desktop, Cursor, VS Code e Windsurf para se conectarem ao seu vault via MCP).
4. Indexar e Buscar
# Indexar notas com cache incremental SHA-256
mem index
# Busca híbrida federada (Local + Central via RRF)
mem search "como funciona o cache incremental?"
🌐 Visualizador Interativo de Grafo (graph.html)
O My-Memory gera um visualizador interativo de grafo em HTML/SVG standalone (Zero-CDN, sem internet ou dependências de bibliotecas externas). Ele transforma todas as conexões de notas Markdown, [[wikilinks]], tags # e decisões arquiteturais em uma teia visual navegável em tempo real no seu navegador:
🔍 O que a visualização revela:
- Autoridade e Centralidade Estrutural (PageRank & God Nodes): O tamanho dos círculos é proporcional à autoridade estrutural calculada via PageRank Ponderado (ADR-014). Hubs centrais como
Wikilinks,ARCHITECTURE,AGENTS,COMO_USAReCLI_GUIDEemergem naturalmente como referências estruturais do repositório. - Clusters e Comunidades Semânticas (LPA): As cores dos nós refletem agrupamentos conceituais gerados pelo Label Propagation Algorithm (LPA) ponderado com cálculo de Modularidade Newman-Girvan (ADR-022), revelando subsistemas e domínios de conhecimento interligados.
- Arestas Semânticas & Relações: Linhas direcionadas demonstram fluxos de dependência e referências cruzadas (
links_to,tagged_as, dependências técnicas). - Detecção Visual de Órfãos & Dead Links: Nós periféricos (em tons avermelhados/magenta desconectados) representam notas isoladas ou referências quebradas, funcionando como uma auditoria visual complementar ao
mem doctor(ADR-013). - Inspeção Cirúrgica em 3 Colunas (Triptych Node Inspector - ADR-024): Ao clicar em qualquer nó no gráfico interativo, abre-se um modal retrátil com visão cirúrgica completa:
- Coluna 1 (Inbound): Notas e dependentes chamadores classificados por risco e PageRank.
- Coluna 2 (Centro): Metadados canônicos, score de Blast Radius e preview de conteúdo seguro.
- Coluna 3 (Outbound): Referências de saída com verificação ativa de integridade e atalho para abrir diretamente no Obsidian (
obsidian://open?file=...).
🕹️ Como Gerar e Abrir:
# 1. Gerar e abrir automaticamente no navegador padrão
./bin/mem.exe graph view --open
# 2. Exportar para um arquivo HTML específico
./bin/mem.exe export --html graph.html
# 3. Via ferramenta MCP para Agentes de IA
# A tool memory_visualize_graph compila e salva o grafo instantaneamente.
📚 Navegação da Documentação
Para mergulhar nos detalhes operacionais, matemáticos e de integração, consulte os guias dedicados:
| Guia | Para quem é | Descrição |
|---|---|---|
📖 COMO_USAR.md |
Desenvolvedores | Manual prático de comandos CLI, exemplos de busca, configuração de PostgreSQL/SQLite e monitoramento em tempo real. |
🔍 COMO_FUNCIONA.md |
Engenheiros & Arquitetos | Explicação profunda da arquitetura, matemática do TurboQuant, algoritmo RRF, CTEs recursivas e ciclo de vida do cache. |
🤖 AGENT_INTEGRATION_GUIDE.md |
Agentes de IA & Integrações | Como integrar o My-Memory com Cursor, Claude Code, Copilot e Antigravity via MCP e regras AGENTS.md. |
🏛 docs/adr/ |
Decisões de Engenharia | 34 Registros de Decisão de Arquitetura (ADRs) documentados no formato padrão MADR. |
🤖 Ferramentas MCP para Assistentes de IA
Quando executado como servidor MCP (mem mcp), o My-Memory disponibiliza 17 ferramentas para o ecossistema de IA:
memory_search: Busca híbrida (RRF) unificando FTS, vetores e grafo com decaimento temporal opcional.memory_get_neighbors: Expansão recursiva de nós e dependências conectadas via SQL recursivo (CTEs) com marcaçãois_federated: true.memory_find_path: Descoberta do caminho mais curto entre duas notas via BFS bidirecional com pesos epistêmicos.memory_get_impact: Análise de raio de destruição (Blast Radius) e dependentes reversos com risk scoring.memory_get_clusters: Detecção de comunidades e módulos temáticos via LPA ponderado e modularidade Q.memory_get_hubs: Identificação de God Nodes e nós líderes por grau ou PageRank ponderado.memory_get_insights: Métricas globais da topologia da base de conhecimento (densidade, componentes, isolados).memory_inspect_node: Inspeção cirúrgica de nós (in-links, out-links com sinalização cross-vault, chunks quantizados e status).memory_doctor: Auditoria de integridade do grafo com detecção de dead links e notas órfãs.memory_get_drift: Auditoria de desvio semântico e divergência entre código e documentação.memory_write_note: Criação de notas atômicas estruturadas com sincronização e indexação instantâneas.memory_append_section: Adição atômica de seções a notas existentes com auto-linking e parsing.memory_compile_note: Síntese de fragmentos recuperados (Compile-not-Retrieve) para economia de contexto.memory_pack_context: Empacotamento de orçamento de contexto de tokens (Tier L0/L1/L2) com subgrafos Mermaid.memory_visualize_graph: Exportação de visualizador interativo em HTML/SVG standalone com física de forças.memory_export_canvas: Exportação bidirecional para o padrão Obsidian JSON Canvas 1.0 (.canvas).memory_open_node: Abertura cirúrgica de notas locais e canônicas federadas (memory://) no editor via deep links de IDE.
📁 Estrutura do Repositório
my-memory/
├── cmd/mem/ # Ponto de entrada CLI (init, index, search, inspect, impact, drift, mcp, etc.)
├── internal/
│ ├── autowire/ # Injeção e sugestão automática de wikilinks em Markdown
│ ├── canvas/ # Conversor e exportador para formato JSON Canvas 1.0 (.canvas)
│ ├── compiler/ # Compilador semântico de contexto e síntese sob demanda
│ ├── config/ # Configuração declarativa, descoberta de vault e variáveis de ambiente
│ ├── db/ # Schemas SQLite, virtual tables sqlite-vec e queries recursivas CTE
│ ├── deeplink/ # Integração e deep linking com editores (VS Code, Cursor, Obsidian)
│ ├── drift/ # Análise de divergência semântica e staleness entre git e documentação
│ ├── embedder/ # Cliente Ollama e resolução dinâmica de modelos de embedding
│ ├── federation/ # Federação multirrepositório, RRF e resolução de URIs canônicas memory://
│ ├── graph/ # Algoritmos de grafo (LPA, modularidade Q, PageRank, Blast Radius, Inspector)
│ ├── graphview/ # Visualizador interativo HTML/SVG standalone com física de forças
│ ├── mcp/ # Servidor Model Context Protocol com 17 tools (stdio + HTTP/SSE)
│ ├── parser/ # Extração de wikilinks, tags, metadados e chunking
│ ├── repo/ # Scanner de arquivos do repositório respeitando escopo e gitignore
│ ├── staleness/ # Rastreamento de desatualização temporal de notas e links quebrados
│ ├── store/ # Camada de armazenamento unificada e suporte a PostgreSQL com pgvector
│ ├── turboquant/ # Rotações ortogonais de Householder e quantização de 4-bit
│ └── watcher/ # File watcher em segundo plano com debouncing inteligente
├── docs/ # Documentação técnica detalhada e 31 ADRs
├── COMO_USAR.md # Manual prático passo a passo para o usuário
├── COMO_FUNCIONA.md # Explicação detalhada da arquitetura e funcionamento interno
├── AGENTS.md # Regras operacionais para Agentes de IA
└── README.md # Apresentação geral do projeto
🧪 Validação e Testes
O My-Memory conta com cobertura de testes unitários e de integração em todos os 18 pacotes Go:
# Executar todos os testes do repositório
go test -count=1 ./...
# Executar testes com relatório de cobertura
go test -v -cover ./internal/turboquant/... ./internal/graph/... ./internal/parser/...
📄 Licença
Distribuído sob a licença MIT.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found