# Synapse アーキテクチャ SUMMARY: Synapse の構成 — Fastify、PostgreSQL、FTS5、埋め込み、MCP サーバー。 Synapse アーキテクチャ Synapse は Fastify、FTS5 搭載 PostgreSQL、セマンティック検索用のオプションの埋め込みサービスで構築されたマルチテナントメモリ API です。 全体アーキテクチャ [CODE BLOCK] コアコンポーネント 1. Synapse API(Fastify) メインの HTTP サーバーです。以下を処理します。 - REST エンドポイント(、、 など) - 認証(エージェントは Mind Key、人間は JWT) - レート制限( 認証のみ) - 静的ファイル配信(、 などの Web UI) - Webhook ディスパッチ パフォーマンス重視で Fastify 5 により構築されています。本番環境ではポート 12800 で動作します。 2. FTS5 搭載 PostgreSQL プライマリデータストアです。フルテキスト検索用に FTS5 拡張を備えた PostgreSQL を使用します。 主なテーブル: | テーブル | 目的 | |-------|---------| | | ユーザーアカウント | | | Mind スコープ(各々が Mind Key を持つ) | | | FTS5 仮想テーブル付きのメモリレコード | | | タスク管理 | | | チャット履歴 | | | 永続スクリプト | | | Webhook 登録 | | | スケジュールタスク | | | キーバリューストア | | | 監査トレイル | FTS5 により、全メモリコンテンツに対するサブミリ秒のフルテキスト検索が可能です。詳しくは FTS5 Search を参照。 3. 埋め込みサービス(オプション) セマンティック検索のため、Synapse はメモリコンテンツのベクトル埋め込みを生成します。これらはメモリと一緒に保存され、類似度検索に使用されます。 - プロバイダー:構成可能(OpenAI、ローカルモデルなど) - テーブルの カラムとして保存 - エンドポイントで使用 - Semantic Search を参照 4. MCP サーバー(別サービス) Synapse MCP サーバーは別プロセス(ポート 13100)として動作します。以下を行います。 - Model Context Protocol 経由で 79 のツールを公開 - stdio、HTTP/SSE、WebSocket トランスポートをサポート - MCP ツール呼び出しを Synapse API 呼び出しに変換 - マルチテナント:セッションごとに 1 つの Mind Key 5. Browser Proxy(別サービス) ブラウザ自動化用に、Playwright ベースの別サービスがポート 13000 で動作します。MCP サーバーは ツールのためにこれを呼び出せます。 6. SSH Proxy(別サービス) SSH ベースのリモートコマンド用に、別サービスがポート 12900 で動作します。 マルチテナントモデル [CODE BLOCK] 各 mind は完全に分離されています。Mind Key は厳密に 1 つの mind へのアクセスを許可します。JWT はユーザーアカウントへのアクセスを許可します(mind 管理用)。 詳しくは Multi-Tenancy を参照。 リクエストフロー メモリ保存リクエスト [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 | 次のステップ - Memory Model - Multi-Tenancy - FTS5 Search