- Para resolver o problema de perda de contexto entre sessões no Claude Code, foi construído um sistema de memória que combina o mecanismo de busca local QMD com a skill
/recall - O QMD é um mecanismo de busca local que indexa um vault do Obsidian e oferece três modos de busca: BM25, semântica e híbrida
- A skill
/recallrestaura instantaneamente o contexto completo de sessões passadas em três modos: cronológico, por tópico e visualização em grafo - Foi implementado um pipeline automatizado que faz parsing e embedding automaticamente de registros de conversa em JSONL de 700 sessões e os reflete no índice do QMD
- É apresentado um workflow centrado em contexto, no qual, mesmo que as ferramentas mudem, qualquer agente de IA pode ser usado desde que o contexto seja preservado
Problema: Claude Code reinicia a cada sessão
- Todas as conversas no Claude Code começam do zero e, ao longo de 700 sessões em 3 semanas, ficou difícil acompanhar decisões passadas e o contexto dos projetos
- Quando o limite de contexto chega a 60% no meio da sessão, é necessário fazer compact ou hand off, e nesse processo metade das decisões se perde
- Ao tentar continuar o trabalho no dia seguinte, repete-se o incômodo de não lembrar o que foi feito
- A abordagem tradicional de busca baseada em grep em arquivos não escala
QMD: mecanismo de busca local para vaults
- O QMD é um mecanismo de busca local criado por Tobias Lutke, CEO da Shopify, que indexa vaults do Obsidian e retorna resultados em menos de 1 segundo
- É possível mapear collections do QMD por pasta do vault (notas, registros diários, sessões, transcrições etc.) para realizar buscas focadas
- Funciona com comandos simples, como
qmd collection list,qmd search "video workflow" -c notes -n 3 - A busca padrão do Claude Code usa um subagente Haiku que faz grep em todos os arquivos de forma bruta; nos testes, levou 3 minutos, retornou 300 arquivos e teve baixa qualidade nos resultados
- A busca com QMD é imediata, mais precisa e consome menos tokens — sem necessidade de subagente
Grep vs BM25 vs busca semântica
- BM25 (
qmd search): busca full-text determinística que faz correspondência de palavras-chave como o grep, mas atribui pontuação a cada arquivo
— Baseia-se na frequência de ocorrência das palavras e na raridade relativa no conjunto de documentos, usando apenas cálculo matemático, sem IA nem embeddings- Uma nota curta com 5 menções a "sleep" recebe pontuação maior do que um arquivo de 10.000 palavras com apenas 1 menção
- Semântica (
qmd vsearch): baseada em embeddings, permite buscar por significado mesmo sem as palavras exatas - Híbrida (
qmd query): combina BM25 e busca semântica - Comparação de benchmark para a busca por "sleep":
- grep: retorna 200 arquivos, com muito ruído, incluindo até o comando de programação
sleep() - BM25: em menos de 2 segundos, retorna resultados relevantes como experimentos de qualidade do sono e registros de interrupção do sono
- Porém,
qmd search "insomnia"retorna 0 resultados se essa palavra não existir no vault - Semântica: ao buscar por "couldn't sleep, bad night", encontra até metas de hábitos de sono definidas anos antes — 4 dos 5 resultados não contêm a consulta
- Híbrida: oferece o melhor ranqueamento, com sleep quality improvement 89%, sleep interrupted at 3am 51%, health sleep optimization 42%
- grep: retorna 200 arquivos, com muito ruído, incluindo até o comando de programação
- Padrão de uso recomendado: 80% das buscas com BM25 (ideal para notas estruturadas) e adicionar busca semântica para transcrições e memos não estruturados
Casos reais de descoberta com busca semântica
- Para consultas não estruturadas como "find the days when I was happy and what was the reason", o Claude combina automaticamente várias buscas:
- executa múltiplas consultas como
qmd vsearch "happy, grateful, excited","energy, great day, feeling good","satisfaction, accomplishment"etc.
- executa múltiplas consultas como
- A partir de notas diárias de vários meses, ele encontra ligações semânticas e extrai um padrão: "os dias mais felizes foram aqueles em que algo foi lançado e houve boa recuperação com sauna ou 9 horas de sono"
Skill /recall: carregar contexto antes de começar a trabalhar
- O /recall é uma skill do Claude Code que roda sobre o QMD e carrega automaticamente o contexto antes do início do trabalho
- Suporta três modos:
- temporal: varredura do histórico de sessões por data (
/recall yesterday,/recall last week) - topic: busca BM25 em collections do QMD (
/recall topic graph) - graph: visualização interativa de sessões e arquivos (
/recall graph last week)
- temporal: varredura do histórico de sessões por data (
- No teste com
/recall yesterday, foram reconstruídas em linha do tempo 39 sessões de um único dia — com horário, número de mensagens e conteúdo do trabalho de cada sessão - O resultado de
/recall topic "QMD video"retorna em menos de 1 minuto arquivos relacionados como dashboard, plano de produção e lista de tarefas em sessões e notas — superior ao grep bruto em tempo, tokens e qualidade - O modo graph visualiza sessões como blobs coloridos, deixando as antigas esmaecidas e destacando as recentes em roxo — os arquivos são agrupados por tipo, como goals, research, voice, docs, content e skills
- Exemplo: uma sessão de busca por lugar para almoçar foi reencontrada no grafo uma semana depois, e foi possível copiar o caminho do arquivo para o Claude Code e retomar o trabalho a partir da conversa anterior
Indexação automática de 700 sessões
- O Claude Code salva todas as conversas localmente em arquivos JSONL — 700 sessões acumuladas em 3 semanas
- Como os arquivos originais incluem tool uses, prompts de sistema, roles etc., eles são parseados e convertidos em Markdown limpo (mensagens reais do usuário e sinais relevantes) antes de serem embutidos e indexados no QMD
- Ao fechar o terminal, um hook automático é executado para exportar e gerar embeddings da sessão no QMD — mantendo o índice sempre atualizado sem trabalho manual
Descobrindo ideias que nunca foram executadas
- Na busca por "find the ideas that I have never acted on", o Claude sintetizou os resultados do QMD e encontrou:
- 19 de outubro — havia um plano para construir um dashboard de escrita do PhD, mas ele não foi executado
- Havia uma ideia de app baseado em ilustração, mas sem qualquer acompanhamento posterior
- Havia uma ideia de gravação de tela do workflow no Obsidian, mas ela não foi executada
- Conteúdos escritos meses antes e completamente esquecidos foram redescobertos
- Todos os embeddings são armazenados localmente
Workflow centrado em contexto
- As notas deixam de ficar presas no Obsidian e passam a ser contexto útil aplicado ao alcance de objetivos reais
- As ferramentas mudam (novos modelos, novos agentes), mas se o contexto for mantido, tudo pode funcionar no Claude Code, Codex, Gemini CLI e outros
- A camada de memória funciona em toda a stack na forma de skill
- Configuração real: o Obsidian Sync sincroniza o vault entre um Mac e um Mac Mini sempre ligado, enquanto o OpenClaw roda 24/7 no Mac Mini — ao acessar o OpenClaw pelo celular, é possível usar o mesmo vault, índice do QMD e skills de qualquer lugar
- Estrutura completa da stack:
- base: Obsidian Vault
- meio: QMD Search
- topo: Claude Code / OpenClaw
- o contexto flui de baixo para cima
11 comentários
Por que tanta coisa anda morrendo ultimamente?
kkkkkkkk
grepmorreu. Useripgrep.Vendo de forma mais clássica, parece que técnicas clássicas de recuperação da informação estão simplesmente sendo reutilizadas em um nível mais local.
~~ está morto 💀💀💀
É só RAG;
Como a página de instalação pede um endereço de e-mail, achei que fosse um repositório privado, mas na verdade é um repositório público.
Você pode acessar pelo link abaixo.
https://github.com/ArtemXTech/personal-os-skills/…
Pensei em experimentar o qmd, então pedi para a IA pesquisar, mas ela diz que, embora a parte de embeddings seja razoável, o suporte em coreano para BM25 e expansão de consulta não é bom, então não recomenda...
Isso vale para quase a maioria dos casos no BM25 também.
Por isso, é bom usar um analisador morfológico junto.
https://github.com/bab2min/Kiwi
Fui checar os fatos e parece que não há evidências precisas disso. Alguém mais teve essa experiência, por acaso?
Como o BM25 é uma busca focada em palavras, a opinião do galadbran parece fazer sentido.