GitHub - jh941213/STORM_Research_AG
Key Points
- 1AutoGen STORM Research is an intelligent multi-agent AI platform built on Microsoft AutoGen, designed to conduct expert-level, in-depth research and generate high-quality reports through collaborative AI agents.
- 2It integrates a comprehensive information gathering system with five distinct search tools and supports advanced AI models from Azure OpenAI, OpenAI, and Anthropic for robust analysis.
- 3The platform features an interactive feedback mechanism, enabling users to refine research outcomes and trigger re-analysis, along with real-time progress monitoring and versatile deployment options.
AutoGen STORM Research is an intelligent research assistant built upon the Microsoft AutoGen multi-agent framework, designed to perform in-depth, expert-level research through collaborative AI agents and generate high-quality reports. It facilitates interactive communication with the user for feedback-driven refinement.
The core methodology revolves around a sophisticated multi-agent collaborative system orchestrated by a central workflow. Upon receiving a research topic and user-defined parameters (e.g., number of analysts, interview turns, parallel/sequential mode, chosen AI model provider), the system initiates a multi-stage research process.
- Analyst Generation: An
Analyst Generatoragent dynamically creates specialized AI analysts tailored to the research topic. This likely involves an LLM interpreting the topic to determine necessary domains of expertise, effectively instantiating newExpert Agentinstances, each potentially equipped with specific initial prompts or tool access relevant to their assigned domain. The user can specify the number of analysts (1-10).
- Parallel/Sequential Interview System: An
Interviewer Agentthen manages a deep interview process. This agent interacts with the generatedExpert Agentinstances. Depending on theparallel_interviewssetting, multiple experts can conduct their research and gather insights concurrently, or sequentially. EachExpert Agentleverages a comprehensive suite of five search tools for information gathering:- Tavily Search: For recent web information and real-time trends.
- DuckDuckGo: For privacy-focused general web searches.
- Naver News: For up-to-date Korean news and social trends.
- Wikipedia: For foundational concepts, definitions, and historical context.
- ArXiv: For academic papers and cutting-edge research materials.
tools.py module, allowing agents to programmatically query external data sources. The Interviewer Agent facilitates multiple turns of interaction (max_interview_turns from 1-10) to delve deeply into the subject matter.- Collaborative Report Writing: Once the interview phase concludes, a
Report Writeragent synthesizes the insights and findings from allExpert Agents. This agent generates a comprehensive, academic-quality report by consolidating diverse perspectives and information gathered. The overall research workflow is orchestrated byworkflow.py, which defines the sequence and interaction logic between these distinct agent roles.
- Interactive Feedback System: The system incorporates a robust feedback loop. After the initial research and report generation, users can provide feedback (e.g., "elaborate on economic aspects"). This feedback is processed by the system to trigger an automated advanced refinement process:
- The feedback is analyzed, likely by an LLM, to identify areas requiring further investigation.
- Based on the feedback, an *additional* specialized expert analyst (one per feedback iteration) is generated.
- The entire research process, including interviews and report generation, is re-executed with the original set of analysts plus the newly generated one, focusing on the refined requirements.
- A new, improved version of the report is produced, and the system maintains version control, tracking the original research and subsequent feedback-driven improvements.
- Advanced AI Model Support: The platform supports various large language models (LLMs) from different providers, including Azure OpenAI (GPT-4, GPT-4o, with GPT-4o recommended as default), OpenAI (GPT-4o, GPT-4o-mini), and Anthropic (Claude 3.5 Sonnet). A dynamic model switching mechanism ensures resilience: if a primary API key fails, the system automatically falls back to an available backup model. Model configuration and API keys are managed through environment variables (e.g.,
AZURE_OPENAI_API_KEY,TAVILY_API_KEY).
The system architecture comprises several distinct layers:
- Frontend Layer: A Next.js 15 UI (port 3001) provides the user interface for input, real-time monitoring, and result display. It includes modern UI/UX elements like Aurora text effects, real-time progress bars, responsive design, and dark mode.
- Backend Layer: A FastAPI server (port 8002) handles API requests, orchestrates the AI agent layer, and manages real-time communication.
- AI Agent Layer: This layer hosts the core AutoGen agents: Analyst Generator (D), Interviewer Agent (E), Expert Agent (F), and Report Writer (G).
- Data Sources: External APIs for search tools (Tavily Search, DuckDuckGo, Naver News, Wikipedia, ArXiv).
- AI Models: Connectors to various LLM providers (Azure OpenAI, OpenAI, Anthropic).
Communication between the frontend and backend is facilitated by real-time mechanisms: WebSocket for bidirectional communication and Server-Sent Events (SSE) for efficient unidirectional streaming of research progress updates. HTTP polling serves as a fallback in case of network issues. The backend exposes a RESTful API for starting research, tracking progress (including SSE streams), fetching results, submitting feedback, and managing research history.
The project structure is modular, with autogen_storm/ containing core AI agent modules (workflow.py, agents.py, tools.py, models.py, config.py, tracing.py) and app_interactive.py serving as the main FastAPI application. The frontend/ directory contains the Next.js application.