Autonomous Multi-Agent AI Research System with Human-in-the-Loop Clarification & Academic-Grade Synthesis
Researchify is an end-to-end, multi-agent AI research platform designed to automate deep information gathering, cross-source verification, semantic ranking, and academic report writing. By leveraging specialized LLM agents coordinated via LangGraph.js, Researchify transforms high-level user topics into comprehensive, publishable research papers.
Unlike standard single-prompt LLM wrappers, Researchify employs a Human-in-the-Loop (HITL) architecture. During the initial research phase, the platform pauses execution and asks targeted clarifying questions to eliminate ambiguities and align with user intent before performing multi-source aggregation.
The system pulls live literature and content from arXiv, OpenAlex, Wikipedia, Reddit, and Tavily Web Search. Collected sources are semantically embedded and ranked locally using @xenova/transformers (bge-small-en-v1.5), ensuring that only high-density, relevant findings feed into the analyst and academic writer agents.
- 🤖 Multi-Agent Orchestration: Specialized Researcher, Analyst, and Writer agents managed via LangGraph graph state machine.
- 💬 Human-in-the-Loop Clarification: Interrupts research state to ask user-tailored clarifying questions before synthesis.
- 🌐 Multi-Source Aggregation: Simultaneous parallel queries across 5 distinct data sources:
- arXiv: Peer-reviewed computer science, AI, and math preprints.
- OpenAlex: Global scholarly literature graph (250M+ scientific works).
- Wikipedia: Encyclopedic summary and domain grounding.
- Reddit / Pullpush: Community discussions and real-world sentiment.
- Tavily Web Search: Real-time web search and current events.
- ⚡ Local Semantic Embeddings & Ranking: Reranks gathered findings locally using
bge-small-en-v1.5embeddings via@xenova/transformers. - 📄 Academic Paper Formatting: Generates 11-section formal research reports (Abstract, Literature Review, Methodology, Analysis, Verified References, etc.).
- ⬇️ Export & Download: One-click export to formatted Markdown (.md) and multi-page PDF documents with crisp A4 pagination.
- 💾 Persistent History: Saves research runs to Supabase Postgres database with full retrieval capabilities.
- 🔥 Hacker News Trending Sidebar: Live trending tech and research discussions integrated into the dashboard via HN's Firebase API.
- 🎨 Minimalist Neubrutalist UI: Modern SaaS aesthetic with generous whitespace and high-contrast comic-button primary actions.
| Layer | Technologies Used |
|---|---|
| Frontend | React 19, TypeScript, Vite, React Router DOM, Vanilla CSS, jsPDF, html2canvas |
| Backend | Node.js, Express, TypeScript, ts-node-dev |
| AI & Orchestration | LangGraph.js, LangChain Core, NVIDIA NIM (Llama 3.3 70B Instruct), @xenova/transformers (bge-small-en-v1.5) |
| Data Sources | arXiv API, OpenAlex API, Wikipedia API, Reddit/Pullpush API, Tavily Web API |
| Database | Supabase (PostgreSQL) |
| Deployment | Vercel (Frontend), Render (Backend) |
┌───────────────────────────┐
│ User Interface │
│ (React + React Router) │
└─────────────┬─────────────┘
│ HTTP / JSON
▼
┌───────────────────────────┐
│ Express REST Server │
└─────────────┬─────────────┘
│
▼
┌───────────────────────────┐
│ LangGraph Engine │
└──────┬─────────────┬──────┘
│ │
┌──────────────────┘ └──────────────────┐
▼ ▼
┌────────────────────────┐ ┌────────────────────────┐
│ Researcher Agent │ │ Human Interrupt │
│ (Multi-Source Fetch) │ │ (Clarifying Questions)│
└───────────┬────────────┘ └────────────────────────┘
│
▼
┌────────────────────────┐
│ Semantic Reranker │
│ (Transformers.js BGE) │
└───────────┬────────────┘
│
▼
┌────────────────────────┐
│ Analyst Agent │
│ (Identify Trends/Gaps) │
└───────────┬────────────┘
│
▼
┌────────────────────────┐
│ Writer Agent │
│ (11-Section Academic) │
└───────────┬────────────┘
│
▼
┌────────────────────────┐
│ Supabase Persistence │
└────────────────────────┘
agent-research-system/
├── backend/
│ ├── src/
│ │ ├── agents/ # LLM Agent definitions (researcher, analyst, writer)
│ │ ├── connectors/ # Source connectors (arxiv, openAlex, wikipedia, reddit, tavily)
│ │ ├── db/ # Supabase database client & queries
│ │ ├── graph/ # LangGraph state machine & node handlers
│ │ ├── routes/ # Express route controllers (interactive, history, news)
│ │ ├── services/ # Embedding service, NVIDIA client
│ │ └── index.ts # Express server entry point
│ ├── render.yaml # Render deployment blueprint
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── components/ # TrendingFeed, AgentThinking, etc.
│ │ ├── pages/ # HomePage, SessionPage, ReportPage, HistoryPage
│ │ ├── api.ts # Axios API client
│ │ ├── App.tsx # TopNav & Router routes
│ │ └── index.css # Design tokens & comic-button styles
│ ├── public/ # Favicon SVG assets
│ └── package.json
├── README.md
└── .gitignore
- Node.js:
v18.0.0or higher - npm:
v9.0.0or higher - NVIDIA NIM API Key: For LLM inference (
Llama-3.3-70b-instruct) - Tavily API Key: For web search aggregation
- Supabase Account: For persistent database storage
Create a .env file in backend/:
PORT=5000
NVIDIA_API_KEY=your_nvidia_api_key_here
TAVILY_API_KEY=your_tavily_api_key_here
SUPABASE_URL=https://your-supabase-project.supabase.co
SUPABASE_ANON_KEY=your_supabase_anon_key_here
SEMANTIC_SCHOLAR_API_KEY=optional_key_hereCreate a .env file in frontend/:
VITE_API_BASE_URL=http://localhost:5000-
Clone the repository:
git clone https://github.com/Princ3mish/Researchify.git cd agent-research-system -
Install Backend dependencies and start backend:
cd backend npm install npm run dev -
Install Frontend dependencies and start frontend (in a separate terminal):
cd frontend npm install npm run dev -
Open your browser and navigate to
http://localhost:5173.
🚀 Experience Researchify live: https://researchify-zeta.vercel.app/
This project is licensed under the MIT License.