AI 에이전트, RAG 시스템 및 AI 기반 애플리케이션 구축 여정
요약
본 글은 LLM을 단순 답변 기능을 넘어 복잡한 작업 수행에 활용하는 AI 애플리케이션 구축 경험을 공유합니다. Deep Research Agent는 구조화된 리서치 보고서를 생성하며, Autonomous Financial Research Agent는 ReAct 스타일 워크플로우와 다중 메모리를 결합하여 자율적인 금융 연구를 수행합니다.
핵심 포인트
- LLM은 단순 답변을 넘어 복잡한 '워크플로우'에 초점을 맞춰야 한다.
- LangGraph와 FastAPI 등을 활용해 에이전트의 여러 단계를 구현했다.
- 금융 리서치 에이전트는 다중 메모리(작업, 의미, 일화) 및 다양한 도구를 결합한다.
저는 LLM(대규모 언어 모델)이 단순히 프롬프트에 답변하는 것 이상의 작업을 수행해야 할 때 어떤 일이 발생하는지 이해하기 위해 AI 애플리케이션을 구축해 왔습니다.
제 프로젝트들은 리서치, 에이전트 워크플로우, RAG(검색 증강 생성), 메모리, 자동화, 문서 처리, 금융 분석 및 AI 기반 애플리케이션을 다룹니다.
제가 구축한 몇 가지 프로젝트와 각 프로젝트를 통해 배운 점은 다음과 같습니다.
1. Deep Research Agent (심층 리서치 에이전트)
상태: 운영 중
GitHub: Research-AI-Agent
실시간 데모: Research AI Agent
Deep Research Agent는 연구 주제를 받아 구조화된 리서치 보고서로 변환합니다.
애플리케이션은 하나의 LLM 호출에 의존하는 대신 여러 연구 단계를 거칩니다. 검색 쿼리를 생성하고, 정보를 수집하며, 사실을 추출하고, 격차를 식별하고, 후속 검색을 수행한 다음, 수집된 정보를 사용하여 최종 보고서를 작성합니다.
저는 FastAPI와 LangGraph로 이를 구축했으며, 웹 리서치를 위해 Tavily를, 검색(retrieval)을 위해 ChromaDB를 사용했습니다.
이 프로젝트는 또한 보고서 내보내기, 후속 질문, 요약, 반론, 번역, 작업 기록, Docker 배포 및 Ollama 기반 로컬 모드를 지원합니다.
이 프로젝트가 다른 점:
단순히 LLM 위에 챗봇 인터페이스를 올리는 것이 아니라 전체 연구 워크플로우에 중점을 두었다는 것입니다.
2. Autonomous Financial Research Agent (자율 금융 리서치 에이전트)
상태: 운영 중
GitHub: Autonomous-Financial-Research-Agent
실시간 데모: Autonomous Financial Research Agent
이 프로젝트는 자율 금융 리서치에 중점을 둡니다.
이 에이전트는 ReAct 스타일 워크플로우를 사용하여 필요한 정보를 결정하고, 도구를 선택하며, 결과를 처리하고, 연구를 계속 진행합니다.
SEC EDGAR 제출 서류, 실적 발표 녹취록, 금융 데이터, 뉴스, 감성 분석(sentiment), 동종 기업 비교, 사실 확인 및 계산과 연계하여 작동할 수 있습니다.
또한 세 가지 유형의 메모리를 구축했습니다:
- 현재 연구 세션을 위한 작업 기억(Working memory)
- FAISS를 사용한 의미 기억(Semantic memory)
- 이전 연구 실행을 위한 일화적 기억(Episodic memory)
이 프로젝트에는 또한 충돌 해결, PII 마스킹(redaction), 프롬프트 주입 방지(prompt-injection protection), 속도 제한(rate limiting) 및 평가 프레임워크가 포함되어 있습니다.
이 프로젝트의 차별점:
연구를 단일 검색 및 답변 작업으로 취급하는 대신, 에이전트 추론, 다중 연구 도구, 메모리, 금융 데이터, 그리고 평가를 결합한다는 점입니다.
3. 자율 치과 예약 봇(Autonomous Dental Appointment Bot)
상태: 운영 중(Live)
GitHub: Autonomous-Dental-Appointment-Bot
실시간 데모: Autonomous Dental Appointment Bot
이 프로젝트는 AI를 예약 자동화에 적용합니다.
환자들은 웹, SMS, WhatsApp 및 음성 인터페이스를 통해 예약을 잡고, 일정을 변경하고, 취소할 수 있습니다.
시스템은 AI 에이전트를 애플리케이션 서비스, PostgreSQL, Redis, Celery, Stripe, Google Calendar와 연결합니다.
또한 예약 슬롯 잠금(appointment slot locking), 결제 웹훅(payment webhooks), 중복 이벤트 처리, 로깅, 상태 확인(health checks) 및 오류 처리와 같은 실질적인 문제들도 다루었습니다.
이 프로젝트의 차별점:
AI가 고립된 대화 인터페이스로 기능하는 대신, 애플리케이션 워크플로우와 비즈니스 규칙에 연결된다는 점입니다.
4. NexusBase
상태: 백엔드 기능 구현 / 프론트엔드 재배포 중(being redeployed)
GitHub: NexusBase
NexusBase는 엔터프라이즈 RAG 아키텍처 프로젝트입니다.
Next.js, FastAPI, LangGraph, PostgreSQL 및 pgvector를 사용합니다.
이 시스템은 사용자가 무엇을 묻는지에 따라 다양한 경로로 쿼리를 라우팅합니다. 검색 기반 질문은 최종 응답을 생성하기 전에 벡터 검색(vector search)과 응답 평가(response evaluation)를 거칠 수 있습니다.
전체 애플리케이션은 Docker를 사용하여 컨테이너화되었습니다.
전체 애플리케이션은 Docker를 사용하여 컨테이너화되었습니다.
이 프로젝트가 차별화되는 점:
본 프로젝트는 라우팅(routing), 검색(retrieval), 평가(evaluation) 및 구조화된 응답을 포함하는 엔터프라이즈 RAG 시스템의 아키텍처에 초점을 맞추고 있습니다.
5. MedComply
상태: 운영 중 (Live)
GitHub: MedComply
실시간 데모: MedComply
MedComply는 의료 규정 준수(medical compliance) SaaS 프로젝트입니다.
Next.js 프론트엔드, FastAPI 백엔드, Supabase 데이터베이스 마이그레이션을 가진 모노레포(monorepo) 구조로 되어 있습니다.
이 시스템에는 조직(organizations), 사용자(users), 문서(documents), 인증(authentication), 역할 기반 접근 제어(role-based access control), 문서 처리(document processing), 그리고 AI 지원 분석 기능이 포함되어 있습니다.
또한, 저장소에는 Docker 설정과 자동화된 검사를 위한 GitHub Actions도 포함되어 있습니다.
이 프로젝트가 차별화되는 점:
본 프로젝트는 AI 기능을 애플리케이션 레벨의 접근 제어, 문서 관리 및 규정 준수 중심 워크플로우와 결합했습니다.
6. Aequitas FI
상태: 운영 중 (Live)
GitHub: Hybrid-Financial
실시간 데모: Aequitas FI
Aequitas FI는 구조화된 금융 데이터와 RAG를 결합했습니다.
모든 질문을 문서 검색 문제로 취급하는 대신, 이 시스템은 구조화된 SQL 분석과 문서 검색을 분리합니다.
LangGraph가 워크플로우를 조정하며, PostgreSQL과 pgvector가 데이터 계층을 제공합니다.
이 프로젝트에는 또한 시간 비교(temporal comparison), PII 마스킹(PII redaction), 감사 로깅(audit logging), 인간 피드백(human feedback) 및 자동화된 테스트 기능이 포함되어 있습니다.
이 프로젝트가 차별화되는 점:
구조화된 데이터와 검색된 문서가 최종 답변에 기여할 수 있도록 SQL과 RAG를 동일한 AI 워크플로우에 결합했습니다.
7. Context Synthesizer
상태: 아키텍처 시연 (Architecture demonstration)
GitHub: Context Synthesizer
실시간 데모: Context Synthesizer
프로젝트는 Slack, Jira, Google Drive, Notion과 같은 시스템의 정보를 통합된 검색 워크플로우로 구성하는 방법을 보여줍니다.
인터페이스는 하이브리드 검색(hybrid search), 의미론적 검색(semantic retrieval), 재순위 지정(reranking), 개체 관계(entity relationships), 평가 지표(evaluation metrics), 그리고 관측 가능성(observability)을 시연합니다.
이 프로젝트는 의도적으로 아키텍처 데모로 제시되었습니다.
실제 외부 커넥터, 벡터 데이터베이스(vector database), 임베딩 파이프라인(embedding pipeline), 백엔드 검색 엔진(backend retrieval engine), 인증(authentication), 그리고 프로덕션 LLM 추론(production LLM inference)은 현재 구현되지 않았습니다.
이 프로젝트가 다른 점:
초점은 데모 인터페이스가 이미 완전한 프로덕션 시스템이라고 주장하기보다는, 기업 지식 검색에 필요한 아키텍처를 시각화하고 설명하는 것입니다.
이 프로젝트들에서 배운 것
제가 가장 크게 배운 것은 AI 애플리케이션을 구축하는 것이 단순히 LLM을 프롬프트에 연결하는 것에 그치지 않는다는 것입니다.
어려운 부분들은 보통 모델 주변에 있습니다.
다음 사항들을 결정해야 합니다:
- 시스템이 접근할 수 있는 정보는 무엇인지
- 사용할 수 있는 도구는 무엇인지
- 무엇을 기억해야 하는지
- 정보가 어떻게 검색되어야 하는지
- 결과를 어떻게 확인해야 하는지
- 뭔가 실패했을 때 무슨 일이 발생하는지
- 에이전트가 언제 멈춰야 하는지
- 민감한 정보는 어떻게 처리해야 하는지
- 시스템을 어떻게 배포해야 하는지
그렇기 때문에 제 프로젝트들은 점진적으로 단순한 AI 인터페이스에서 도구, 검색, 메모리, 평가, 보안, 그리고 애플리케이션 로직이 관련된 시스템으로 이동했습니다.
저는 여전히 이 시스템들을 개선하고 있지만, 이를 구축하면서 다양한 방식으로 AI 애플리케이션을 설계하는 실질적인 경험을 얻었습니다.
제 목표는 단순히 LLM이 답변을 생성하게 하는 것이 아닙니다.
실제로 유용한 작업을 수행할 수 있는 주변의 AI 시스템을 구축하는 것입니다.
제 프로젝트들
AI 공개 고지: 이 글은 초안 작성 및 편집에 AI의 도움을 받아 준비되었습니다. 프로젝트 정보와 기술적 세부 사항은 저 자신의 프로젝트와 저장소(repository)를 기반으로 하며, 게시 전에 내용을 검토했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기