# Arquitetura do Synapse SUMMARY: Como o Synapse é construído — Fastify, PostgreSQL, FTS5, embeddings, servidor MCP. Arquitetura do Synapse O Synapse é uma API de memória multi-tenant construída sobre Fastify, PostgreSQL com FTS5 e um serviço opcional de embeddings para busca semântica. Arquitetura de alto nível [CODE BLOCK] Componentes principais 1. Synapse API (Fastify) O servidor HTTP principal. Cuida de: - Endpoints REST (, , , etc.) - Autenticação (Mind Key para agentes, JWT para humanos) - Limites de taxa (apenas auth ) - Servimento de arquivos estáticos (interface web em , , etc.) - Dispatch de webhooks Construído com Fastify 5 para desempenho. Roda na porta 12800 em produção. 2. PostgreSQL com FTS5 O armazenamento principal de dados. Usa PostgreSQL com a extensão FTS5 para busca em texto completo. Tabelas principais: | Tabela | Finalidade | |--------|------------| | | Contas de usuário | | | Escopos de mind (cada um tem uma Mind Key) | | | Registros de memória com tabela virtual FTS5 | | | Gerenciamento de tarefas | | | Histórico de chat | | | Scripts persistentes | | | Registros de webhook | | | Tarefas agendadas | | | Armazenamento key-value | | | Trilha de auditoria | FTS5 permite busca em texto completo sub-milissegundo em todo o conteúdo das memórias. Consulte Busca FTS5 para detalhes. 3. Serviço de Embeddings (opcional) Para busca semântica, o Synapse gera embeddings vetoriais do conteúdo das memórias. Eles são armazenados junto com as memórias e usados para busca por similaridade. - Provedor: configurável (OpenAI, modelo local, etc.) - Armazenado como coluna na tabela - Usado pelo endpoint - Consulte Busca semântica 4. Servidor MCP (serviço separado) O servidor MCP do Synapse roda como um processo separado (porta 13100). Ele: - Expõe 79 ferramentas via Model Context Protocol - Suporta transportes stdio, HTTP/SSE e WebSocket - Traduz chamadas de ferramentas MCP em chamadas da API do Synapse - Multi-tenant: uma Mind Key por sessão 5. Browser Proxy (serviço separado) Para automação de navegador, um serviço separado baseado em Playwright roda na porta 13000. O servidor MCP pode chamá-lo para ferramentas . 6. SSH Proxy (serviço separado) Para comandos remotos via SSH, um serviço separado roda na porta 12900. Modelo multi-tenant [CODE BLOCK] Cada mind é totalmente isolado. Mind Keys concedem acesso a exatamente um mind. JWTs concedem acesso à conta do usuário (para gerenciar minds). Consulte Multi-tenancy para detalhes. Fluxo de requisição Requisição de armazenamento de memória [CODE BLOCK] Requisição de busca de memória [CODE BLOCK] Deploy O Synapse é implantado como um container Docker. Consulte : [CODE BLOCK] Características de desempenho | Operação | Latência | Throughput | |----------|----------|------------| | Armazenar memória | 5ms | 1000+ req/s | | Recall de memória | 20ms | 500 req/s | | Busca FTS5 | 10ms | 800 req/s | | Busca semântica | 50ms | 200 req/s | | Poll de chat | 5ms | 2000 req/s | Próximos passos - Modelo de memória - Multi-tenancy - Busca FTS5