# Synapse 架构 SUMMARY: Synapse 的构建方式 — Fastify、PostgreSQL、FTS5、向量嵌入、MCP Server。 Synapse 架构 Synapse 是一个多租户记忆 API,基于 Fastify、带 FTS5 的 PostgreSQL,以及可选的用于语义搜索的向量嵌入服务构建。 高层架构 [CODE BLOCK] 核心组件 1. Synapse API(Fastify) 主 HTTP 服务器。负责处理: - REST 端点(、、 等) - 认证(Agent 用 Mind Key,人类用 JWT) - 限速(仅 认证) - 静态文件服务(、 等 Web UI) - Webhook 派发 基于 Fastify 5 构建,注重性能。生产环境运行在端口 12800。 2. 带 FTS5 的 PostgreSQL 主数据存储。使用 PostgreSQL 及 FTS5 扩展进行全文搜索。 关键表: | 表 | 用途 | |-------|---------| | | 用户账户 | | | Mind 范围(每个 Mind 有一个 Mind Key) | | | 记忆记录,附带 FTS5 虚拟表 | | | 任务管理 | | | 聊天记录 | | | 持久化脚本 | | | Webhook 注册 | | | 定时任务 | | | 键值存储 | | | 审计日志 | FTS5 可在所有记忆内容上实现亚毫秒级全文搜索。详见 FTS5 搜索。 3. Embeddings 服务(可选) 为支持语义搜索,Synapse 会为记忆内容生成向量嵌入。这些向量与记忆一起存储,用于相似度搜索。 - 提供方:可配置(OpenAI、本地模型等) - 作为 列存储在 表中 - 由 端点使用 - 详见 语义搜索 4. MCP Server(独立服务) Synapse MCP Server 作为独立进程运行(端口 13100)。它: - 通过 Model Context Protocol 暴露 79 个工具 - 支持 stdio、HTTP/SSE 和 WebSocket 传输 - 将 MCP 工具调用转换为 Synapse API 调用 - 多租户:每个会话使用一个 Mind Key 5. Browser 代理(独立服务) 为支持浏览器自动化,独立的基于 Playwright 的服务运行在端口 13000。MCP Server 可调用它以执行 工具。 6. SSH 代理(独立服务) 为支持基于 SSH 的远程命令,独立服务运行在端口 12900。 多租户模型 [CODE BLOCK] 每个 Mind 完全隔离。Mind Key 仅授予访问某一个 Mind 的权限。JWT 授予访问用户账户的权限(用于管理 Mind)。 详见 多租户。 请求流 记忆存储请求 [CODE BLOCK] 记忆搜索请求 [CODE BLOCK] 部署 Synapse 作为 Docker 容器部署。参见 : [CODE BLOCK] 性能特征 | 操作 | 延迟 | 吞吐 | |-----------|---------|------------| | 记忆存储 | 5ms | 1000+ req/s | | 记忆回放 | 20ms | 500 req/s | | FTS5 搜索 | 10ms | 800 req/s | | 语义搜索 | 50ms | 200 req/s | | 聊天轮询 | 5ms | 2000 req/s | 下一步 - 记忆模型 - 多租户 - FTS5 搜索