A pesquisa híbrida com RRF melhora o sistema de memória de IA em relação à pesquisa vetorial pura.

Um sistema de memória de código aberto para assistentes de IA foi desenvolvido, usando PostgreSQL com pgvector em uma configuração local-first e auto-hospedada. O sistema armazena informações para que os assistentes de IA se lembrem entre sessões e as torna pesquisáveis.
Por que a busca vetorial pura não foi suficiente
O desenvolvedor começou com busca vetorial pura: incorporando consultas, usando similaridade de cosseno e retornando os resultados top-k. Embora isso funcionasse para perguntas vagas, consistentemente falhava em correspondências exatas. Por exemplo, pesquisar por "RRF merging" retornaria trechos sobre "combining ranked lists" de meses atrás, em vez do documento que literalmente diz "RRF merging".
Solução de busca híbrida
A solução envolveu adicionar um segundo braço de busca: busca de texto completo usando tsvector do PostgreSQL com um índice GIN. Essa correspondência por palavras-chave captura o que a busca vetorial perde. No entanto, isso criou duas listas classificadas que precisavam ser mescladas.
Fusão de Classificação Recíproca (RRF)
A Fusão de Classificação Recíproca provou ser a resposta para mesclar as duas listas classificadas. A fórmula é simples: pontuação = 1 / (k + classificação), onde k=60 (o valor padrão). Resultados que aparecem em ambas as listas recebem ambas as pontuações somadas. Essa abordagem não requer ajuste de pesos e nem normalização de pontuação entre similaridade de cosseno e ts_rank—usa apenas posições de classificação.
Técnica de enriquecimento de consulta
Antes de pesquisar, o sistema executa consultas através do tokenizador WordPiece do modelo de incorporação para extrair termos-chave (tokens multi-subpalavra que são provavelmente termos técnicos ou de domínio). Isso gera até 3 variações de consulta, incorpora todas elas e pesquisa em paralelo. Isso captura resultados que uma formulação poderia perder.
Stack técnico
- PostgreSQL 16 + pgvector (índice HNSW para vetores, índice GIN para texto completo)
- all-MiniLM-L6-v2 para incorporações (384 dimensões, executa na CPU)
- Python com psycopg 3 assíncrono
- 3 adaptadores de ingestão: markdown, texto simples e JSON de conversação Claude
Todo o sistema é executado localmente sem chamadas de API para incorporações e sem dependências de nuvem. O código foi recentemente lançado, e o desenvolvedor escreveu um post de blog detalhado sobre a abordagem completa.
📖 Read the full source: r/LocalLLaMA
👀 See Also

A ferramenta de automação de fluxo de trabalho Symphony funciona com o Claude Code
Um desenvolvedor conseguiu fazer a especificação do Symphony funcionar com o Claude Code para automatizar fluxos de trabalho de ticket para PR, usando Node/TypeScript inicialmente, mas observando que Elixir pode ser melhor. A ferramenta requer configuração separada de chave de API e faturamento além das assinaturas do Claude.

EmoBar: Visualizando os Vetores Internos de Emoção do Claude do Artigo da Anthropic
Um desenvolvedor criou o EmoBar, uma ferramenta de código aberto que visualiza as 171 representações internas de emoção no Claude identificadas no artigo recente da Anthropic. A ferramenta utiliza uma abordagem de canal duplo para revelar esses vetores mensuráveis que causam o comportamento do modelo.

Claude Code Skill refatora componentes React usando princípios de 'Não Me Faça Pensar'
Uma nova habilidade do Claude Code refatora automaticamente componentes React para usabilidade com base nos princípios de Steve Krug — elimina "happy talk", destaca CTAs primárias, corrige estados vazios/de erro e ajusta rótulos.

Clawback: Implementação baseada em hooks dos loops de verificação vazados do Claude
Clawback é um projeto do GitHub que reimplementa os loops de verificação do vazamento do mapa de origem do Claude como ganchos mecânicos em vez de prompts. Inclui ganchos de parada, PreToolUse, PostToolUse e PostCompact que não podem ser ignorados pelo modelo sob pressão de contexto.