[Spring AI] AI Agent 아키텍처 설계하기 - 연구자 지원 AI Agent 시스템 아키텍처
by 우와한개발자
1. 시스템 개요
- 연구자가 논문 PDF를 업로드하면 AI가 내용을 분석하고 질문에 답변하는 시스템
- Notion과 연동해 회의록, 연구일지 등을 조회하고 수정할 수 있다
- 질문 입력 및 스트리밍 답변 수신, 논문 PDF 업로드, 대화 이력 조회 세 가지 기능을 제공한다
2. 전체 아키텍처

3. 주요 컴포넌트
1) Spring Boot WAS
- WebFlux 기반 비동기/논블로킹 처리
- JWT 인증 필터로 토큰 검증
- SSE 스트리밍으로 AI 응답을 실시간 전달
2) Spring AI
- ChatClient : OpenAI API 호출, 프롬프트 증강, Tool 실행
- ChatMemory : MongoDB에 대화 이력 저장
- VectorStore : PGVector와 연동해 문서 유사도 검색 (RAG)
- Tool Calling : Notion MCP 서버와 연동해 회의록/연구일지 조회
3) Python AI Server
- FastAPI 기반으로 문서 처리 요청을 수신한다
- PDF 파싱, OCR, 텍스트 전처리, 청킹, 임베딩 저장까지 처리한다
- 처리 결과를 Callback으로 Spring 서버에 전달한다
4) Notion MCP 서버
- JSON-RPC 2.0 요청을 수신하고 파싱한다
- Notion API 토큰 인증 후 회의록, 연구일지 등 페이지를 조회한다
5) 데이터베이스
| DB | 역할 |
| PGVector | 문서 청크/임베딩 저장, Top-k 유사도 검색 |
| PostgreSQL | 사용자 정보, 문서 메타데이터 저장 |
| MongoDB | 대화 내용 저장 |
4. 기술 스택

5. 통신 방식
| 구간 | 방식 |
| Client → Spring Boot | HTTP (비동기) |
| Spring Boot → OpenAI | HTTP (비동기) |
| Spring Boot → Python AI Server | HTTP (비동기) |
| Spring Boot → Notion MCP 서버 | HTTP (동기) |
| Spring Boot → DB | 동기 |
6. 주요 흐름

'AI > Spring AI' 카테고리의 다른 글
블로그의 정보
우와한개발자 님의 블로그
우와한개발자