GitHub - jh941213/STORM_Research_AG
Service

GitHub - jh941213/STORM_Research_AG

jh941213
2026.03.30
·GitHub·by 배레온/부산/개발자
#AI Collaboration#AutoGen#LLM#Multi-agent#Research Assistant

핵심 포인트

  • 1AutoGen STORM Research Assistant는 Microsoft AutoGen 프레임워크를 기반으로 구축된 차세대 AI 멀티에이전트 협업 연구 플랫폼으로, 전문가 수준의 심층 연구를 수행하고 고품질 보고서를 생성합니다.
  • 2이 시스템은 연구 주제에 맞춰 AI 분석가를 자동 생성하고, Tavily, DuckDuckGo, Naver News, Wikipedia, ArXiv 등 5가지 검색 도구를 활용하여 포괄적인 정보를 수집합니다.
  • 3WebSocket/SSE 기반의 실시간 진행 추적 및 인터랙티브 피드백 시스템을 통해 연구 결과 개선을 지원하며, Azure OpenAI, OpenAI, Anthropic 등 다양한 고급 AI 모델을 동적으로 전환하여 사용합니다.

AutoGen STORM Research Assistant는 Microsoft AutoGen 프레임워크를 기반으로 구축된 차세대 AI 멀티에이전트 협업 연구 플랫폼입니다. 이 시스템은 여러 AI 에이전트가 협력하여 특정 연구 주제에 대한 심층적인 조사를 수행하고, 사용자와의 인터랙티브한 피드백 루프를 통해 고품질의 학술 보고서를 생성하는 것을 목표로 합니다.

핵심 방법론은 다음과 같은 구성 요소와 기술적 흐름으로 이루어집니다.

  1. 멀티에이전트 협업 시스템 (Multi-Agent Collaboration System):
    • 지능형 분석가 생성 (Intelligent Analyst Generation): 연구 주제가 주어지면, 시스템은 Analyst Generator 에이전트를 통해 해당 주제와 관련된 다양한 전문 분야의 AI 분석가들을 자동으로 생성합니다. 각 분석가는 특정 관점이나 지식 영역에 특화된 역할을 부여받습니다. 이 과정에서 Azure OpenAI, OpenAI, Anthropic 등 다양한 LLM(Large Language Model) 모델이 활용됩니다.
    • 병렬 인터뷰 시스템 (Parallel Interview System): 생성된 분석가들은 Interviewer Agent의 오케스트레이션 하에 전문가 에이전트 (Expert Agent)와 심층 인터뷰를 진행합니다. 이 "전문가"는 실제 외부 전문가를 의미하기보다는, 정보 수집 도구를 활용하여 전문 지식을 시뮬레이션하고 질문에 답변하는 역할을 수행하는 또 다른 에이전트 또는 시스템의 추상화된 역할을 의미합니다. 인터뷰는 병렬로 진행될 수 있어 연구 속도를 향상시킵니다.
    • 협업 보고서 작성 (Collaborative Report Writing): 각 분석가가 인터뷰를 통해 수집한 정보와 인사이트는 보고서 작성자 (Report Writer) 에이전트에 의해 종합됩니다. Report Writer는 수집된 데이터를 분석하고, 구조화하며, 학술적 수준의 최종 보고서를 작성합니다.
  1. 포괄적 정보 수집 (Comprehensive Information Gathering):
    • 전문가 에이전트 또는 직접적인 정보 수집 에이전트들은 다양한 외부 정보 소스를 활용하여 연구 주제에 대한 데이터를 수집합니다. 지원되는 검색 도구는 다음과 같습니다.
      • Tavily Search: 최신 웹 정보 및 실시간 동향 검색에 활용됩니다.
      • DuckDuckGo: 프라이버시를 중시하는 웹 검색을 수행합니다.
      • Naver News: 한국 관련 최신 뉴스 및 사회 동향 파악에 사용됩니다.
      • Wikipedia: 기본 개념, 정의, 역사적 배경 등 광범위한 일반 지식을 얻는 데 활용됩니다.
      • ArXiv: 학술 논문 및 최신 연구 자료를 검색하여 전문적이고 심층적인 정보를 확보합니다.
    • 이러한 멀티소스 검색 기능은 tools.py 모듈을 통해 통합 및 관리됩니다.
  1. 인터랙티브 피드백 시스템 (Interactive Feedback System):
    • 실시간 진행 추적 (Real-time Progress Tracking): FastAPI 기반의 백엔드 서버와 Next.js 기반의 프론트엔드는 WebSocketSSE (Server-Sent Events)를 통해 연구 진행 상황을 사용자에게 실시간으로 모니터링할 수 있도록 합니다. 이는 연구의 각 단계(설정, 분석가 생성, 인터뷰 진행, 보고서 작성)를 시각적으로 보여줍니다.
    • 사용자 피드백 반영 (User Feedback Incorporation): 초기 연구 완료 후, 사용자는 결과 보고서에 대한 피드백을 제공할 수 있습니다. 시스템은 이 피드백을 분석하여 추가적인 전문 분석가를 자동으로 생성하고, 기존 분석가들과 함께 전체 연구를 재수행합니다. 이 과정은 피드백 기반의 점진적 개선을 가능하게 합니다.
    • 버전 관리 (Version Control): 피드백을 통해 개선된 연구 결과는 원본 연구와 별도로 관리되며, 사용자는 연구 히스토리를 통해 각 버전을 추적하고 비교할 수 있습니다.
  1. 시스템 아키텍처 (System Architecture):
    • Frontend Layer: Next.js 15 기반의 사용자 인터페이스(UI)로, 포트 3001에서 실행됩니다. 사용자와의 상호작용 및 연구 진행 상황 시각화를 담당합니다.
    • Backend Layer: FastAPI 기반의 서버로, 포트 8002에서 실행됩니다. AI 에이전트 오케스트레이션, 데이터 처리, API 엔드포인트 제공, 그리고 WebSocketSSE를 통한 실시간 통신을 담당합니다.
    • AI Agent Layer: autogen_storm 디렉토리 내에 구현된 핵심 로직입니다. workflow.py는 전체 연구 워크플로우를 오케스트레이션하고, agents.pyAnalyst Generator, Interviewer Agent, Expert Agent, Report Writer 등 다양한 AI 에이전트의 정의와 역할을 담당합니다.
    • Data Sources: 앞서 언급된 Tavily Search, DuckDuckGo, Naver News, Wikipedia, ArXiv를 포함하며, tools.py를 통해 에이전트가 활용할 수 있도록 인터페이스가 제공됩니다.
    • AI Models: Azure OpenAI, OpenAI, Anthropic 등 다양한 LLM 제공자의 API를 활용하며, config.py를 통해 API 키 상태에 따른 동적 모델 전환 및 백업 모델 사용이 지원됩니다.

이 시스템은 uvnpm을 통한 의존성 관리, Dockerfile을 통한 컨테이너화된 배포, 그리고 gcloud, railway, render, vercel 등의 클라우드 플랫폼 배포를 지원하여 개발 및 운영 편의성을 제공합니다. 코드 구조는 모듈형으로 설계되어 workflow, agents, tools, models, config, tracing 등의 핵심 구성 요소가 명확히 분리되어 있습니다.