The Multi-Agent Research System is a cutting-edge platform designed to revolutionize research by leveraging the power of multiple AI agents. This system allows users to input research topics, and then utilizes a team of specialized agents, orchestrated by LangChain and OpenRouter, to perform in-depth research, analysis, and report generation. The system is built with a modern web development stack, featuring a Next.js frontend and a FastAPI backend.
-
Clone the repository:
git clone https://github.com/BjornMelin/multi-agent-research-system.git cd multi-agent-research-system
-
Install dependencies:
- Make sure you have pnpm installed:
npm install -g pnpm
- Then, install project dependencies
pnpm install
-
Run both frontend and backend:
pnpm run frontend pnpm run backend
-
Open your browser and navigate to
http://localhost:3000
for the frontend. The backend will typically run on port 8000.
- π€ Multi-Agent System: Utilizes multiple AI agents, each specialized in tasks like research, analysis, writing, and proofreading.
- π§ Advanced AI Models: Integrates with powerful language models, including DeepSeek-v3, LLaMA3.3-70B-Instruct, GPT-4o, and PHI-4 via OpenRouter.
- π Research Topic Submission: User-friendly interface for submitting research topics and queries.
- π Real-time Progress Updates: Displays real-time updates on the progress of the multi-agent workflow using WebSockets or polling.
- π Data Visualization: Provides a dashboard to visualize agent outputs and workflow stages.
- π Report Generation: Automatically generates structured research reports based on agent findings.
- π₯ Report Download: Allows users to download reports in PDF or DOCX formats.
- ποΈ Data Storage: Stores data locally using PostgreSQL and FAISS, with scalability for future AWS deployment.
- π Monitoring: Employs Prometheus and Grafana for system performance monitoring.
graph TD
A[User] --> B(Next.js Frontend);
B --> C{FastAPI Backend};
C --> D[Research Agent];
C --> E[Analysis Agent];
C --> F[Writing Agent];
C --> G[Proofreading Agent];
D --> H[DeepSeek-v3];
E --> I[Python Libraries];
F --> J[LLaMA3.3];
G --> K[PHI-4];
H --> L[OpenRouter];
J --> L;
K --> L;
C --> M[PostgreSQL];
C --> N[FAISS];
C --> O[LocalStack];
M --> P[User Queries, Workflow States];
N --> Q[Document Embeddings];
O --> R[PDFs, DOCXs];
S[Prometheus] --> C;
T[Grafana] --> S;
multi-agent-research-system/
βββ .gitignore
βββ pnpm-lock.yaml
βββ pnpm-workspace.yaml
βββ package.json (Root)
βββ backend/
β βββ main.py
β βββ requirements.txt
β βββ venv/
β βββ ...
βββ frontend/
βββ app/
β βββ about/
β β βββ page.tsx
β βββ api/
β β βββ feedback/
β β βββ route.ts
β βββ error.tsx
β βββ feedback/
β β βββ page.tsx
β βββ globals.css
β βββ layout.tsx
β βββ page.tsx
βββ components/
β βββ forms/
β β βββ feedback-form.tsx
β β βββ research-topic-form.tsx
β βββ layout/
β β βββ footer.tsx
β β βββ header.tsx
β β βββ success-message.tsx
β βββ pages/
β β βββ about-page.tsx
β β βββ feedback-page.tsx
β β βββ home-page.tsx
β βββ sections/
β β βββ cta-section.tsx
β β βββ feature-card.tsx
β β βββ hero-section.tsx
β βββ theme-provider.tsx
β βββ ui/
β βββ ... (ShadCN-UI components)
βββ hooks/
β βββ use-toast.ts
βββ lib/
β βββ schemas.ts
β βββ utils.ts
βββ public/
βββ .eslintrc.json
βββ components.json
βββ next.config.js
βββ package.json (Frontend)
βββ postcss.config.js
βββ tailwind.config.ts
βββ tsconfig.json
- Frontend:
- Framework: Next.js
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn-ui
- State Management: React Context API or Zustand
- Backend:
- Database:
- Primary Database: PostgreSQL
- ORM: SQLAlchemy
- Vector Storage: FAISS (Local), Pinecone/Weaviate (Future)
- LLM Integration:
- API Gateway: OpenRouter
- Models:
- DeepSeek-v3 (Retrieval, Summarization)
- LLaMA3.3-70B-Instruct (Report Generation)
- GPT-4o (Reasoning, Hypothesis Generation)
- PHI-4 (Proofreading, Grammar)
- Monitoring:
- Metrics: Prometheus
- Visualization: Grafana
- File Storage:
- Local: LocalStack (AWS S3 Emulation)
- Cloud (Future): AWS S3
- Caching:
- In-Memory Cache: Redis (Future)
- Package Manager: pnpm
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feat/version/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feat/version/AmazingFeature
) - Open a Pull Request
AWS-certified Solutions Architect, Developer, SysOps Administrator, and Machine Learning Engineer with expertise in cloud architecture and modern development practices. Connect with me on:
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ by Bjorn Melin