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