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.
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