Como a isanna funciona.
Uma arquitetura sob os produtos hospedados, e o desenho de recuperação por trás do substrato de memória.
O caminho compartilhado
cliente
│
▼
Cloudflare DNS · CDN / proxy
│
▼
Fly.io contêineres de aplicação por produto
│
▼
Postgres schema isolado por produtoUm caminho a aprender em vez de um por produto: um serviço cresce sem ser reconstruído, e um produto novo herda a rota em vez de inventá-la. O builder é a exceção — é um fluxo de linha de comando, sem nada hospedado.
Dados e isolamento
Cada produto é dono do próprio schema e se conecta com um papel de login próprio, que não consegue contornar a segurança em nível de linha. Onde uma tabela pertence a um usuário, a checagem de propriedade é uma política no banco de dados, e não uma condição que alguém precise lembrar de escrever.
Nem toda tabela pertence a um usuário, e essas são delimitadas pela aplicação — uma escolha que cada migração registra por escrito, de modo que qual mecanismo protege qual tabela seja uma pergunta respondível, e não presumida.
Recuperação
Memória para agentes de código é um problema de recuperação antes de ser um problema de armazenamento. Busca vetorial sozinha, sobre um repositório que só cresce, devolve o que é semelhante em vez do que é relevante — e não sabe distinguir uma decisão vigente daquela que a substituiu. O desenho decorre disso, e é construído em estágios.
- Em uso
- Busca híbrida — lexical e vetorial juntas — com o mxbai-embed-large produzindo os embeddings, e depois um reranker sobre os candidatos combinados. A recuperação de primeiro estágio tem permissão de ser generosa, e o reranker decide o que de fato aparece.
- Em uso
- O modelo de embedding e sua dimensão são desacoplados do schema de armazenamento, de modo que o modelo possa ser trocado sem migração.
- A seguir
- Reescrita de consulta, e recuperação contextual — embutir um trecho junto com o contexto que o torna legível por si só.
- Mais adiante
- Árvores hierárquicas de resumo, recuperação em grafo e modelos de interação tardia como o ColBERT. São fortes onde um corpus tem estrutura pesada ou exige raciocínio entre documentos; este ainda não é nenhum dos dois, então ficam atrás do trabalho acima, e não à frente dele.
A sequência é a decisão que vale explicar: cada estágio precisa merecer o índice que acrescenta e a latência que gasta, de modo que os ganhos baratos cheguem antes dos elaborados.