Skip to main content
Voltar para Projetos

Synapse - RAG do Cérebro e Memória de Agentes

Recuperação semântica e memória sobre um corpus de conhecimento da empresa — embeddings locais, pgvector e um harness de avaliação de recuperação feito para pegar as próprias regressões.

PythonRAGpgvectorEmbeddingsMemória de AgentesAvaliação de RecuperaçãoFastAPI

Overview

O Synapse é a camada de conhecimento: ele transforma um corpus de decisões, documentos de projeto e notas de negócio espalhado por dezenove repositórios em algo que um agente consegue de fato consultar. Os documentos são fatiados, embutidos localmente pelo mxbai-embed-large do Ollama — nenhum texto do corpus sai da máquina — e armazenados no Postgres com pgvector. A recuperação roda sobre esse índice e responde por um fluxo de perguntas e respostas sobre documentos, em um pipeline orientado a eventos com FastAPI e Celery. A parte que vale discutir é a medição. Sistemas de recuperação degradam em silêncio: uma mudança melhora uma classe de consultas e quebra outra sem avisar, e sem um harness você descobre meses depois. O Synapse mantém um conjunto golden, um histórico rastreado de execuções de avaliação e uma trava de impressão digital do corpus que se recusa a comparar duas execuções feitas sobre corpora diferentes — um veredito de incomparável em vez de uma melhoria enganosa. A mineração do log de consultas lê o log real e classifica as lacunas em abstenções, respostas de baixa confiança e suspeitas de resposta confiante e errada, que é como novos casos golden são propostos a partir do tráfego real, e não da imaginação. A camada de memória modela pares, episódios e fatos, com extração no momento da ingestão, consolidação agendada, decaimento de confiança e resolução explícita de contradições — de modo que um fato verdadeiro no trimestre passado é superado, e não sobrescrito em silêncio. Uma fronteira deliberada: o Synapse é dono da metade semântica do Cérebro. A metade estrutural — consultas de grafo sobre a estrutura de wikilinks entre documentos — vive no Console em Rust. Similaridade semântica e adjacência estrutural respondem perguntas diferentes, e juntá-las em um único índice piora as duas.

Technical Stack

Recuperação

  • ▸pgvector
  • ▸PostgreSQL
  • ▸Ollama (mxbai-embed-large)
  • ▸Pipeline de fatiamento + embeddings

Memória

  • ▸Pares / episódios / fatos
  • ▸Extração na ingestão
  • ▸Consolidação agendada
  • ▸Decaimento de confiança
  • ▸Resolução de contradições

Avaliação

  • ▸Conjunto golden
  • ▸Execuções rastreadas
  • ▸Trava de impressão digital do corpus
  • ▸Mineração do log de consultas

Plataforma

  • ▸Python
  • ▸FastAPI
  • ▸Celery
  • ▸Redis
  • ▸Alembic
  • ▸pytest

Key Features

✓

Embeddings locais via Ollama — o corpus é indexado sem que nenhum texto de documento saia da máquina

✓

Recuperação semântica sobre um corpus que abrange dezenove repositórios, respondida por um fluxo de perguntas e respostas sobre documentos

✓

Avaliação de recuperação com conjunto golden e histórico rastreado, para que o efeito de uma mudança na qualidade seja medido e não presumido

✓

A trava de impressão digital do corpus devolve um veredito de incomparável em vez de um delta enganoso quando duas execuções abrangem corpora diferentes

✓

A mineração do log de consultas classifica lacunas reais em abstenções, respostas de baixa confiança e suspeitas de resposta confiante e errada

✓

A camada de memória modela pares, episódios e fatos, com decaimento de confiança e superação explícita

✓

Pipeline orientado a eventos com FastAPI e Celery por baixo, com migrações reversíveis do Alembic

✓

Deliberadamente dono apenas da metade semântica do Cérebro — as consultas estruturais de grafo vivem no Console em Rust

Code Examples

Technical Challenges

▪

Medir a recuperação com honestidade — um conjunto golden que cresce para caber no comportamento atual do sistema deixa de ser um teste

▪

Detectar quando duas execuções de avaliação simplesmente não são comparáveis, em vez de relatar um delta que não significa nada

▪

Modelar a superação de fatos para que um dado desatualizado seja visivelmente substituído, e não sobrescrito em silêncio

▪

Traçar a fronteira semântica/estrutural: similaridade e adjacência respondem perguntas diferentes e um único índice serve mal às duas

Project Outcomes

Locais via Ollama mxbai-embed-large — nenhum texto do corpus sai da máquina
Embeddings
Conjunto golden + execuções rastreadas + trava que recusa comparações incomparáveis
Harness de avaliação
1.581 aprovados, 7 ignorados (execução real do pytest); pylint 10,00/10
Testes
A camada Cérebro do Bastion — recuperação semântica e memória de agentes
Papel