# Architecture de Synapse SUMMARY: Comment Synapse est construit — Fastify, PostgreSQL, FTS5, embeddings, serveur MCP. Architecture de Synapse Synapse est une API de mémoire multi-tenant construite sur Fastify, PostgreSQL avec FTS5, et un service d'embeddings optionnel pour la recherche sémantique. Architecture globale [CODE BLOCK] Composants principaux 1. API Synapse (Fastify) Le serveur HTTP principal. Gère : - Endpoints REST (, , , etc.) - Authentification (Mind Key pour les agents, JWT pour les humains) - Limitation de débit (auth uniquement) - Service de fichiers statiques (interface web sur , , etc.) - Dispatch des webhooks Construit avec Fastify 5 pour la performance. Fonctionne sur le port 12800 en production. 2. PostgreSQL avec FTS5 Le magasin de données principal. Utilise PostgreSQL avec l'extension FTS5 pour la recherche en texte intégral. Tables principales : | Table | Rôle | |-------|---------| | | Comptes utilisateurs | | | Scopes de mind (chacun a une Mind Key) | | | Enregistrements de mémoire avec table virtuelle FTS5 | | | Gestion des tâches | | | Historique de chat | | | Scripts persistants | | | Enregistrements de webhooks | | | Tâches planifiées | | | Magasin clé-valeur | | | Piste d'audit | FTS5 permet la recherche en texte intégral sub-milliseconde sur tout le contenu de mémoire. Voir Recherche FTS5 pour plus de détails. 3. Service d'embeddings (optionnel) Pour la recherche sémantique, Synapse génère des embeddings vectoriels du contenu des mémoires. Ils sont stockés à côté des mémoires et utilisés pour la recherche de similarité. - Fournisseur : configurable (OpenAI, modèle local, etc.) - Stocké comme colonne dans la table - Utilisé par l'endpoint - Voir Recherche sémantique 4. Serveur MCP (service séparé) Le serveur MCP Synapse s'exécute comme un processus distinct (port 13100). Il : - Expose 79 outils via Model Context Protocol - Prend en charge les transports stdio, HTTP/SSE et WebSocket - Traduit les appels d'outils MCP en appels d'API Synapse - Multi-tenant : une Mind Key par session 5. Proxy navigateur (service séparé) Pour l'automatisation de navigateur, un service distinct basé sur Playwright s'exécute sur le port 13000. Le serveur MCP peut l'appeler pour les outils . 6. Proxy SSH (service séparé) Pour les commandes distantes basées sur SSH, un service distinct s'exécute sur le port 12900. Modèle multi-tenant [CODE BLOCK] Chaque mind est entièrement isolé. Les Mind Keys accordent l'accès à un seul mind. Les JWT accordent l'accès au compte utilisateur (pour gérer les minds). Voir Multi-tenancy pour plus de détails. Flux de requêtes Requête de stockage mémoire [CODE BLOCK] Requête de recherche mémoire [CODE BLOCK] Déploiement Synapse est déployé comme conteneur Docker. Voir : [CODE BLOCK] Caractéristiques de performance | Opération | Latence | Débit | |-----------|---------|------------| | Stockage mémoire | 5 ms | 1000+ req/s | | Rappel mémoire | 20 ms | 500 req/s | | Recherche FTS5 | 10 ms | 800 req/s | | Recherche sémantique | 50 ms | 200 req/s | | Polling chat | 5 ms | 2000 req/s | Prochaines étapes - Modèle de mémoire - Multi-tenancy - Recherche FTS5