Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Researchify

Autonomous Multi-Agent AI Research System with Human-in-the-Loop Clarification & Academic-Grade Synthesis

Live Demo License: MIT Node.js React


Overview

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.


Features

  • 🤖 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.5 embeddings 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.

Tech Stack

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)

Architecture

                                ┌───────────────────────────┐
                                │      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   │
       └────────────────────────┘

Project Structure

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

Getting Started

Prerequisites

  • Node.js: v18.0.0 or higher
  • npm: v9.0.0 or 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

Environment Setup

1. Backend Environment Variables (backend/.env)

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_here

2. Frontend Environment Variables (frontend/.env)

Create a .env file in frontend/:

VITE_API_BASE_URL=http://localhost:5000

Local Installation & Running

  1. Clone the repository:

    git clone https://github.com/Princ3mish/Researchify.git
    cd agent-research-system
  2. Install Backend dependencies and start backend:

    cd backend
    npm install
    npm run dev
  3. Install Frontend dependencies and start frontend (in a separate terminal):

    cd frontend
    npm install
    npm run dev
  4. Open your browser and navigate to http://localhost:5173.


Live Demo

🚀 Experience Researchify live: https://researchify-zeta.vercel.app/


License

This project is licensed under the MIT License.

About

Autonomous Multi-Agent AI Research System with Human-in-the-Loop Clarification & Academic-Grade Synthesis

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages