Memory Graph

Um servidor do Protocolo de Contexto de Modelo (MCP) baseado em grafo que fornece memória persistente para agentes de codificação de IA. Originalmente construído para o Claude Code, o MemoryGraph funciona com qualquer agente de codificação compatível com MCP. Armazene padrões de desenvolvimento, acompanhe relacionamentos e recupere conhecimento contextual entre sessões e projetos.

Documentação

MemoryGraph Logo

MemoryGraph

CLI de Memória Baseada em Grafos para Agentes de Codificação de IA

Bun TypeScript Zero Config 5 Backends

Um sistema de memória baseado em grafos que dá aos agentes de codificação de IA memória persistente.
Armazene padrões, rastreie relacionamentos, recupere conhecimento entre sessões.


Usando com Agentes de Codificação

Agentes de codificação já executam comandos de shell, então podem usar o MemoryGraph diretamente. Dois passos: instale globalmente, depois adicione instruções.

Instalação

cd memory-graph/ts && bun install && bun link
# or: bun build src/cli.ts --compile --outfile ~/.local/bin/memorygraph
memorygraph stats  # verify

memorygraph agora está disponível a partir de qualquer diretório. Os dados persistem em ~/.memorygraph/.

Adicionar Instruções do Agente

Cole isto no arquivo de instruções do seu agente (~/.claude/CLAUDE.md, .cursorrules, .windsurfrules ou AGENTS.md):

## Memory
`memorygraph` CLI is installed. Use it for persistent memory across sessions.

Before work: `memorygraph recall --query "<task>" --limit 10` and `memorygraph briefing`
On decisions/fixes: `memorygraph store --type solution --title "<title>" --content "<what>" --tags "<component>,fix"`
On errors: `memorygraph store --type error --title "<error>" --content "<details>" --tags "<component>,error"`
Link: `memorygraph link <from-id> <to-id> SOLVES --strength 0.8`
Session end: `memorygraph store --type conversation --title "Session: <topic>" --content "<summary>" --tags "<tags>"`
Types: solution | problem | code_pattern | fix | error | workflow | command | technology
Tags: lowercase, hyphenated, include component (auth, database, cli), 2-5 per memory
Do NOT wait to be asked. Store automatically on triggers.

Exemplo de Sessão

# Start: load context
memorygraph recall --query "authentication redis" --limit 10
memorygraph briefing

# Fix a bug: store problem + solution, link them
memorygraph store --type problem --title "Auth token expiry too short" --content "Tokens expiring after 1h" --tags "auth,bug"
# → abc-123
memorygraph store --type solution --title "Extend token expiry to 24h" --content "Changed JWT expiry, added refresh rotation" --tags "auth,fix" --importance 0.8
# → def-456
memorygraph link def-456 abc-123 SOLVES --strength 0.9

# End: store summary
memorygraph store --type conversation --title "Session: auth token fix" --content "Fixed token expiry, added refresh rotation" --tags "auth,session-summary"

Configuração Multi-Projeto

Todos os projetos compartilham ~/.memorygraph/falkordblite.db por padrão. Para isolar por projeto:

export MEMORY_FALKORDBLITE_PATH=~/.memorygraph/my-project.falkor
# or tag memories with project name and filter:
memorygraph search --query "auth" --tags my-project

Solução de Problemas

  • Agente não está usando comandos: Use "REQUIRED"/"MUST" nas instruções, inclua comandos exatos
  • Comando não encontrado: bun link de ts/, ou garanta que ~/.local/bin esteja no PATH
  • Memórias não persistindo: memorygraph config para verificar o caminho, memorygraph health para confirmar

Por que MemoryGraph?

Relacionamentos em Grafo Fazem a Diferença

Armazenamento plano (CLAUDE.md, armazenamentos vetoriais) mantém memórias como entradas isoladas. O armazenamento em grafo as conecta:

[timeout_fix] --CAUSES--> [memory_leak] --SOLVED_BY--> [connection_pooling]
     |                                                        |
     +------------------SUPERSEDED_BY------------------------+

Consulta: "O que aconteceu com a lógica de retry?" retorna a cadeia causal completa, não apenas memórias individuais.

Quando Usar o Quê

Use CLAUDE.md / AGENTS.md ParaUse MemoryGraph Para
"Sempre use indentação de 2 espaços""Da última vez usamos 4 espaços, quebrou o linter"
"Execute testes antes de commitar""Os testes de autenticação falharam por causa de X, corrigido por Y"
Regras estáticas, diretrizes primáriasAprendizados dinâmicos com relacionamentos

Comandos CLI

Operações de Memória

ComandoFinalidadeExemplo
storeArmazenar uma nova memóriastore --type solution --title "Fix" --content "..." --tags redis,fix
getObter uma memória por IDget <memory-id>
updateAtualizar uma memória existenteupdate <id> --title "New title"
deleteExcluir uma memóriadelete <memory-id>
searchPesquisar com filtrossearch --query "timeout" --tags redis --limit 10
recallRecuperação em linguagem naturalrecall --query "authentication security"
relatedObter memórias relacionadasrelated <id> --types SOLVES,CAUSES --max-depth 2
linkCriar um relacionamentolink <from-id> <to-id> SOLVES --strength 0.8

Busca por Contexto

ComandoFinalidade
context-searchPesquisar relacionamentos por tipo, força ou texto de contexto
contextual-searchPesquisar dentro dos itens relacionados de uma memória

Inteligência

ComandoFinalidade
entitiesExtrair entidades (arquivos, funções, classes, tecnologias) de uma memória
patternsEncontrar problemas semelhantes e sugerir padrões
contextObter recuperação inteligente de contexto com correspondência de entidades e palavras-chave

Análises

ComandoFinalidade
statsEstatísticas do banco de dados (contagem de memórias, tipos, relacionamentos)
activityResumo de atividade recente com problemas não resolvidos
visualizeDados de visualização do grafo (nós e arestas)
similarityAnalisar similaridade de soluções para uma determinada memória
learningRecomendar caminhos de aprendizado para um tópico
gapsIdentificar lacunas de conhecimento (problemas não resolvidos, conexões ausentes)

Proativo

ComandoFinalidade
briefingGerar um briefing de sessão com atividade recente e problemas em aberto
predictPrever o que pode ser necessário com base no contexto atual
warnAlertar sobre problemas potenciais (abordagens obsoletas, erros conhecidos)
outcomeRegistrar um resultado para uma memória (acompanhamento de sucesso/falha)

Integração

ComandoFinalidade
captureCapturar contexto de tarefa do ambiente atual
analyze-projectAnalisar a base de código do projeto atual
workflowAcompanhar ou sugerir melhorias no fluxo de trabalho

Temporal

ComandoFinalidade
as-ofConsultar relacionamentos como existiam em um momento específico
historyObter histórico completo de relacionamentos de uma memória
changesMostrar mudanças de relacionamento desde um timestamp

Gerenciamento de Dados

ComandoFinalidade
exportExportar para JSON ou Markdown
importImportar de JSON
migrateMigrar entre backends
healthExecutar uma verificação de saúde
configMostrar configuração atual

Backends

BackendTipoConfigGrafo NativoZero-ConfigMelhor Para
falkordblite (padrão)EmbutidoCaminho de arquivoCypherSimPadrão, consultas de grafo sem servidor
sqliteEmbutidoCaminho de arquivoSimuladoSimFallback sem dependências
falkordbCliente-servidorHost:portaCypherNãoProdução de alto desempenho
memgraphCliente-servidorURI BoltCypherNãoAnálises em tempo real
cloudNuvemChave de APICypherNãoSincronização multi-dispositivo, compartilhamento em equipe

Configuração do Backend

# Use FalkorDBLite (default, zero-config)
bun run src/cli.ts stats

# Use SQLite
MEMORY_BACKEND=sqlite bun run src/cli.ts stats

# Use FalkorDB (client-server)
MEMORY_BACKEND=falkordb MEMORY_FALKORDB_HOST=localhost MEMORY_FALKORDB_PORT=6379 bun run src/cli.ts stats

# Use Memgraph
MEMORY_BACKEND=memgraph MEMORY_MEMGRAPH_URI=bolt://localhost:7687 bun run src/cli.ts stats

# Use Cloud
MEMORY_BACKEND=cloud MEMORYGRAPH_API_KEY=mg_your_key bun run src/cli.ts stats

Variáveis de Ambiente

VariávelDescriçãoPadrão
MEMORY_BACKENDTipo de backendfalkordblite
MEMORY_FALKORDBLITE_PATHCaminho do banco de dados FalkorDBLite~/.memorygraph/falkordblite.db
MEMORY_SQLITE_PATHCaminho do banco de dados SQLite~/.memorygraph/memory.db
MEMORY_FALKORDB_HOSTHost do servidor FalkorDBlocalhost
MEMORY_FALKORDB_PORTPorta do servidor FalkorDB6379
MEMORY_MEMGRAPH_URIURI Bolt do Memgraphbolt://localhost:7687
MEMORYGRAPH_API_KEYChave da API Cloud-
MEMORYGRAPH_API_URLURL da API Cloudhttps://graph-api.memorygraph.dev
MEMORY_TOOL_PROFILEPerfil da ferramenta (core ou extended)core
MEMORY_LOG_LEVELNível de logINFO

Tipos de Memória

TipoCaso de Uso
taskTarefas e itens de ação
code_patternPadrões de código recorrentes ou convenções
problemProblemas ou desafios encontrados
solutionSoluções, decisões ou abordagens escolhidas
projectContexto do projeto, ambiente, informações de configuração
technologyEscolhas e avaliações de tecnologia
errorErros descobertos
fixCorreções aplicadas a erros
commandComandos úteis ou trechos de CLI
file_contextContexto sobre arquivos específicos
workflowDescrições de fluxo de trabalho ou processos
generalMemórias de propósito geral
conversationResumos de conversas

Tipos de Relacionamento

TipoSignificado
RELATED_TOConexão geral
BUILDS_ONNova memória estende uma mais antiga
CONTRADICTSNova memória substitui ou invalida uma mais antiga
CONFIRMSNova memória fornece evidência para uma mais antiga
SOLVESUma solução resolve um problema
CAUSESUma memória causa outra
REQUIRESUma memória depende de outra
IMPROVESUma melhoria em relação a uma abordagem existente
REPLACESSubstitui uma abordagem mais antiga
DEPENDS_ONDependência de fluxo de trabalho

Melhores Práticas de Memória

Fluxo de Trabalho de Sessão

# Start of session: recall recent context
bun run src/cli.ts recall --query "recent work" --limit 10

# During work: store decisions and patterns
bun run src/cli.ts store \
  --type solution \
  --title "Use JWT for auth" \
  --content "JWT tokens with 24h expiry, refresh token rotation" \
  --tags "auth,security,api" \
  --importance 0.8

# Link it to a prior decision
bun run src/cli.ts link <new-id> <prior-id> BUILDS_ON --strength 0.9

# End of session: store summary
bun run src/cli.ts store \
  --type conversation \
  --title "Session: auth refactor" \
  --content "Refactored auth middleware, added JWT, fixed token refresh bug" \
  --tags "auth,session-summary"

# Export backup
bun run src/cli.ts export --format json --output session-backup.json

Adicionar ao CLAUDE.md ou AGENTS.md

## Memory Protocol

### REQUIRED: Before Starting Work
You MUST use `recall` before any task. Query by project, tech, or task type.

### REQUIRED: Automatic Storage Triggers
Store memories on ANY of:
- Git commit: what was fixed/added
- Bug fix: problem + solution
- Architecture decision: choice + rationale
- Pattern discovered: reusable approach

### Memory Fields
- Type: solution | problem | code_pattern | fix | error | workflow
- Title: Specific, searchable
- Content: Accomplishment, decisions, patterns
- Tags: project, tech, category (required)
- Importance: 0.8+ critical, 0.5-0.7 standard, 0.3-0.4 minor
- Relationships: Link related memories when they exist

Arquitetura

Estrutura do Projeto

memory-graph/
├── ts/
│   ├── src/
│   │   ├── cli.ts              # CLI entry point (35+ commands)
│   │   ├── index.ts            # Library exports
│   │   ├── config.ts           # Configuration management
│   │   ├── database.ts         # Database interface
│   │   ├── models.ts           # Data models and schemas
│   │   ├── backends/           # Backend implementations
│   │   │   ├── falkordb-shared.ts  # Shared FalkorDB base class
│   │   │   ├── falkordblite.ts     # Embedded FalkorDBLite
│   │   │   ├── falkordb.ts         # Client-server FalkorDB
│   │   │   ├── bolt-shared.ts      # Shared Bolt protocol base
│   │   │   ├── memgraph.ts         # Memgraph (Bolt protocol)
│   │   │   ├── sqlite.ts           # SQLite fallback
│   │   │   ├── cloud.ts            # Cloud REST API
│   │   │   └── factory.ts          # Backend factory
│   │   ├── tools/              # CLI tool handlers
│   │   ├── intelligence/       # Entity extraction, pattern recognition, context retrieval
│   │   ├── analytics/          # Graph visualization, similarity, learning paths
│   │   ├── proactive/          # Session briefing, predictions, outcome learning
│   │   ├── integration/        # Context capture, project analysis, workflow tracking
│   │   ├── migration/          # Backend-to-backend migration
│   │   ├── sdk/                # Cloud API client SDK
│   │   └── utils/              # Export/import, validation, helpers
│   ├── tests/                  # 97 tests
│   └── package.json
├── docs/                       # Documentation
└── CLAUDE.md                   # Agent instructions

Compilação

cd ts
bun install
bun test                    # Run tests
npx tsc --noEmit            # Type check
bun build src/cli.ts --compile --outfile memorygraph  # Compile binary

Importação / Migração

# Import from JSON export
bun run src/cli.ts import --input backup.json --skip-duplicates

# Migrate between backends
bun run src/cli.ts migrate --to sqlite --to-path ./local.db
bun run src/cli.ts migrate --to falkordblite --to-path ./graph.falkor --no-verify
bun run src/cli.ts migrate --to memgraph --to-uri bolt://localhost:7687

SDK

O SDK TypeScript fornece um cliente para a API Cloud do MemoryGraph:

import { MemoryGraphClient } from "memorygraph/sdk";

const client = new MemoryGraphClient({ apiKey: "mg_..." });

const memory = await client.createMemory({
  type: "solution",
  title: "Fixed timeout issue",
  content: "Used exponential backoff with retries",
  tags: ["redis", "timeout"],
});

Licença

Licença MIT - veja LICENSE.


Comece simples. Atualize quando necessário. Nunca perca contexto novamente.