Pessoal, o agent puxou um trecho bonito. Similaridade alta. Confiança alta. Estava no stub errado. Não foi “RAG fraco”. Foi porta errada. Índice caro, lixo na entrada. O post anterior foi sobre consultar o grafo de código: token cai quando ...
Pessoal, o agent puxou um trecho bonito. Similaridade alta. Confiança alta. Estava no stub errado.
Não foi “RAG fraco”. Foi porta errada. Índice caro, lixo na entrada.
O post anterior foi sobre consultar o grafo de código: token cai quando o agent pergunta ao mapa, não quando o gitignore está certo. Aqui é a outra conta. Vector, GraphRAG, híbrido: como recuperar. Contrato: o que pode ser lembrado e por onde se entra. Sem a segunda, o índice só erra mais rápido.
A prova também não é o vendor. É o transcript. Primeiro passo foi abrir o hub canônico, ou foi grep no cemitério?
Tabela de Conteúdo
1. O índice acertou. O mundo, não
2. O que o mercado está vendendo
3. A prova está na porta
4. O contrato em quatro peças
5. O que eu corto amanhã
1. O índice acertou. O mundo, não
A pergunta clássica era qual banco de vetor? A de 2026 é vector, grafo ou os dois?
A minha ficou outra: quando o agent pergunta “onde está X?”, ele entra pelo hub ou grepa o bak?
Se for a segunda, tanto faz o logo. Você indexou o labirinto.
2. O que o mercado está vendendo
O debate público é retrieval. Lookup (“qual o prazo neste contrato?”) vs síntese (“quais os riscos em todos?”). Vector costuma ganhar no primeiro. GraphRAG no segundo, caro de manter. Híbrido roteia. Um recorte com data: vector vs GraphRAG, 2026. Snapshot. Não ranking.
Isso importa. Não decide se legado/ pode ser porta. Não decide se o agent mistura diário com runbook no mesmo contexto. Embedding “certo” em guia morto: política ausente.
No meu setup o contrato veio antes do vetor. Não estou dizendo que vetor é inútil. Estou dizendo que porta entrega valor no dia zero. Eval de recall é outra conta. Um limite só: contrato não substitui GraphRAG quando a pergunta é síntese em grafo de entidades, e não é AppSec de prompt sozinho.
3. A prova está na porta
Mesma lógica do grafo de código. Lá eu olho se o primeiro tool foi query ou o décimo Read. Aqui eu olho se o agent cita o hub ou só a similaridade.
Pergunta sintético: qual a regra de entrada da memória do agent?
Turno caro (reconstruído, não é log de produção):
grep "memória" (em tudo)
Read README.bak
Read (mais três hits no lixo)
→ responde com confiança, regra invertida
Turno barato:
scope = meta / ops
Read o hub
segue o canônico
grep só depois, se precisar
→ a resposta diz por qual hub entrou
Se o agent não consegue dizer por qual porta entrou, você não tem contrato. Tem índice.
4. O contrato em quatro peças
Cabem em qualquer vault. Os nomes das caixas são seus.
Fonte única. Um canônico. O resto é espelho ou lixo.
Scopes. Pessoal, carreira, ops, meta, o que for. Página nova declara a caixa. Sem isso o search mistura incidente com diário.
Porta. Escolhe o scope, abre o hub, segue canônicos. Search é complemento. “Onde está X?” só com grep é o anti-padrão.
Hop. Redirect fino. Um pulo. Labirinto de stub é indexar lixo de propósito.
O que nunca vai pro contexto: segredo, PII, case que identifica empresa. Least privilege de memória. Não é feature do Pinecone.
5. O que eu corto amanhã
Copia. Cola no vault.
## Memory contract (agente)
1. Fonte canônica: um vault, não cinco?
2. Scopes: o que cada caixa pode conter?
3. Página nova declara scope?
4. Porta: hub-first por tipo de pergunta?
5. Redirect: hop máximo?
6. Proibido como entrada: legado, lixeira, bak?
7. Search é complemento, nunca substituto do hub?
8. Nunca no contexto: segredo, PII, case identificável?
9. Como você sabe que errou? (cita o hub usado)
No seu último “RAG”: o agent entrou por porta, por similaridade, ou por grep no bak? O que você proibiria como entrada amanhã?