# Synapse 아키텍처 SUMMARY: Synapse의 구축 방식 — Fastify, PostgreSQL, FTS5, 임베딩, MCP 서버. Synapse 아키텍처 Synapse는 Fastify, FTS5가 포함된 PostgreSQL, 그리고 의미론적 검색을 위한 선택적 임베딩 서비스를 기반으로 구축된 다중 테넌트 메모리 API입니다. 고수준 아키텍처 [CODE BLOCK] 핵심 구성 요소 1. Synapse API (Fastify) 메인 HTTP 서버입니다. 처리하는 작업: - REST 엔드포인트 (, , 등) - 인증 (에이전트용 Mind Key, 사람용 JWT) - 속도 제한 ( 인증만) - 정적 파일 제공 (, 등의 웹 UI) - 웹훅 디스패치 성능을 위해 Fastify 5로 구축되었습니다. 프로덕션에서는 포트 12800에서 실행됩니다. 2. FTS5가 포함된 PostgreSQL 기본 데이터 저장소입니다. 전문 검색을 위해 FTS5 확장이 포함된 PostgreSQL을 사용합니다. 주요 테이블: | 테이블 | 용도 | |-------|---------| | | 사용자 계정 | | | 마인드 범위 (각각 Mind Key 보유) | | | FTS5 가상 테이블이 있는 메모리 레코드 | | | 작업 관리 | | | 채팅 기록 | | | 영구 스크립트 | | | 웹훅 등록 | | | 예약된 작업 | | | 키-값 저장소 | | | 감사 추적 | FTS5는 모든 메모리 콘텐츠에 대해 서브밀리초 전문 검색을 가능하게 합니다. 자세한 내용은 FTS5 검색을 참조하십시오. 3. 임베딩 서비스 (선택 사항) 의미론적 검색을 위해 Synapse는 메모리 콘텐츠의 벡터 임베딩을 생성합니다. 이는 메모리와 함께 저장되며 유사도 검색에 사용됩니다. - 제공자: 구성 가능 (OpenAI, 로컬 모델 등) - 테이블의 컬럼으로 저장 - 엔드포인트에서 사용 - 의미론적 검색 참조 4. MCP 서버 (별도 서비스) Synapse MCP 서버는 별도의 프로세스 (포트 13100)로 실행됩니다. 다음을 수행합니다: - Model Context Protocol을 통해 79개 도구 노출 - stdio, HTTP/SSE, WebSocket 전송 지원 - MCP 도구 호출을 Synapse API 호출로 변환 - 다중 테넌트: 세션당 하나의 Mind Key 5. Browser Proxy (별도 서비스) 브라우저 자동화를 위해 Playwright 기반의 별도 서비스가 포트 13000에서 실행됩니다. MCP 서버는 도구를 위해 이를 호출할 수 있습니다. 6. SSH Proxy (별도 서비스) SSH 기반 원격 명령을 위해 별도의 서비스가 포트 12900에서 실행됩니다. 다중 테넌시 모델 [CODE BLOCK] 각 마인드는 완전히 격리되어 있습니다. Mind Key는 정확히 하나의 마인드에만 접근 권한을 부여합니다. JWT는 사용자 계정 (마인드 관리용)에 접근 권한을 부여합니다. 자세한 내용은 다중 테넌시를 참조하십시오. 요청 흐름 메모리 저장 요청 [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 검색