# Architettura di Synapse SUMMARY: Come è costruito Synapse — Fastify, PostgreSQL, FTS5, embedding, server MCP. Architettura di Synapse Synapse è una API di memoria multi-tenant costruita su Fastify, PostgreSQL con FTS5 e un servizio embedding opzionale per la ricerca semantica. Architettura di alto livello [CODE BLOCK] Componenti principali 1. Synapse API (Fastify) Il server HTTP principale. Gestisce: - Endpoint REST (, , , ecc.) - Autenticazione (Mind Key per agenti, JWT per umani) - Rate limiting (solo auth ) - Servizio di file statici (UI web su , , ecc.) - Dispatch dei webhook Costruito con Fastify 5 per le prestazioni. In produzione gira sulla porta 12800. 2. PostgreSQL con FTS5 Lo store dati principale. Usa PostgreSQL con l'estensione FTS5 per la ricerca full-text. Tabelle chiave: | Tabella | Scopo | |-------|---------| | | Account utente | | | Scope delle menti (ciascuno ha una Mind Key) | | | Record delle memorie con tabella virtuale FTS5 | | | Gestione attività | | | Cronologia chat | | | Script persistenti | | | Registrazioni webhook | | | Attività pianificate | | | Key-value store | | | Traccia di audit | FTS5 abilita la ricerca full-text sub-millisecond su tutti i contenuti delle memorie. Veda Ricerca FTS5 per i dettagli. 3. Servizio Embedding (opzionale) Per la ricerca semantica, Synapse genera embedding vettoriali del contenuto delle memorie. Vengono salvati insieme alle memorie e usati per la ricerca di similarità. - Provider: configurabile (OpenAI, modello locale, ecc.) - Salvato come colonna nella tabella - Usato dall'endpoint - Veda Ricerca semantica 4. Server MCP (servizio separato) Il server MCP di Synapse gira come processo separato (porta 13100). Esso: - Espone 79 strumenti tramite Model Context Protocol - Supporta transport stdio, HTTP/SSE e WebSocket - Traduce le chiamate MCP in chiamate API Synapse - Multi-tenant: una Mind Key per sessione 5. Browser Proxy (servizio separato) Per l'automazione del browser, un servizio separato basato su Playwright gira sulla porta 13000. Il server MCP può chiamarlo per gli strumenti . 6. SSH Proxy (servizio separato) Per comandi remoti via SSH, un servizio separato gira sulla porta 12900. Modello multi-tenant [CODE BLOCK] Ogni mente è completamente isolata. Le Mind Key concedono accesso a esattamente una mente. I JWT concedono accesso all'account utente (per gestire le menti). Veda Multi-tenancy per i dettagli. Flusso delle richieste Richiesta di memorizzazione [CODE BLOCK] Richiesta di ricerca [CODE BLOCK] Deployment Synapse viene deployato come container Docker. Veda : [CODE BLOCK] Caratteristiche di prestazione | Operazione | Latenza | Throughput | |-----------|---------|------------| | Memory store | 5ms | 1000+ req/s | | Memory recall | 20ms | 500 req/s | | FTS5 search | 10ms | 800 req/s | | Semantic search | 50ms | 200 req/s | | Chat poll | 5ms | 2000 req/s | Prossimi passi - Modello di memoria - Multi-tenancy - Ricerca FTS5