# Архітектура Synapse SUMMARY: Як побудовано Synapse — Fastify, PostgreSQL, FTS5, ембеддинги, MCP-сервер. Архітектура Synapse Synapse — це мультитенантний API пам'яті, побудований на Fastify, PostgreSQL із FTS5 та опціональній службі ембеддингів для семантичного пошуку. Архітектура високого рівня [CODE BLOCK] Основні компоненти 1. Synapse API (Fastify) Головний HTTP-сервер. Обробляє: - REST-кінцеві точки (, , тощо) - Автентифікацію (Mind Key для агентів, JWT для людей) - Обмеження частоти (лише для автентифікації ) - Віддачу статичних файлів (веб-інтерфейс на , тощо) - Диспетчеризацію webhook-ів Побудовано на Fastify 5 для високої продуктивності. У продакшені працює на порту 12800. 2. PostgreSQL з FTS5 Основне сховище даних. Використовує PostgreSQL із розширенням FTS5 для повнотекстового пошуку. Основні таблиці: | Таблиця | Призначення | |-------|---------| | | Облікові записи користувачів | | | Області mind-ів (кожен має Mind Key) | | | Записи спогадів із віртуальною таблицею FTS5 | | | Керування завданнями | | | Історія чату | | | Постійні скрипти | | | Реєстрації webhook-ів | | | Заплановані завдання | | | Сховище ключ-значення | | | Журнал аудиту | FTS5 забезпечує повнотекстовий пошук за всіма спогадами з затримкою менше мілісекунди. Докладніше дивіться у пошуку FTS5. 3. Служба ембеддингів (опціональна) Для семантичного пошуку Synapse генерує векторні ембеддинги вмісту спогадів. Вони зберігаються разом зі спогадами та використовуються для пошуку за подібністю. - Постачальник: настроюваний (OpenAI, локальна модель тощо) - Зберігається у колонці у таблиці - Використовується кінцевою точкою - Дивіться Семантичний пошук 4. MCP-сервер (окрема служба) MCP-сервер Synapse працює як окремий процес (порт 13100). Він: - Надає 79 інструментів через Model Context Protocol - Підтримує транспорти stdio, HTTP/SSE та WebSocket - Перетворює виклики MCP-інструментів у виклики API Synapse - Мультитенантний: один Mind Key на сесію 5. Браузерний проксі (окрема служба) Для автоматизації браузера окрема служба на основі Playwright працює на порту 13000. MCP-сервер може викликати її для інструментів . 6. SSH-проксі (окрема служба) Для віддалених команд через SSH окрема служба працює на порту 12900. Модель мультитенантності [CODE BLOCK] Кожен mind повністю ізольований. Mind Keys надають доступ лише до одного mind-у. JWT надають доступ до облікового запису користувача (для керування mind-ами). Докладніше дивіться у Мультитенантності. Потік запитів Запит на збереження спогаду [CODE BLOCK] Запит на пошук спогадів [CODE BLOCK] Розгортання Synapse розгортається як Docker-контейнер. Дивіться : [CODE BLOCK] Характеристики продуктивності | Операція | Затримка | Пропускна здатність | |-----------|---------|------------| | Збереження спогаду | 5мс | 1000+ запитів/с | | Відкликання спогадів | 20мс | 500 запитів/с | | Пошук FTS5 | 10мс | 800 запитів/с | | Семантичний пошук | 50мс | 200 запитів/с | | Опитування чату | 5мс | 2000 запитів/с | Наступні кроки - Модель пам'яті - Мультитенантність - Пошук FTS5