AutoScholar / README.md
luminoria's picture
Update README.md
c26b073 verified
metadata
license: mit
title: AutoScholar
sdk: docker
pinned: false

AutoScholar

AutoScholar is an autonomous multi-step research agent/assistant built with LangGraph. Given any research topic, it plans a search strategy, queries the web, reads and extracts content from sources, and formulates a structured, cited report β€” without any manual intervention. It uses a self-reflection loop to evaluate the quality of its output and automatically re-searches if the report doesn't fully answer the original question.


How It Works

When a user submits a research topic, the agent runs through a graph of nodes β€” each responsible for one stage of the research process:

  1. Planner β€” The LLM breaks the topic into 3-4 specific sub-questions worth searching for independently.
  2. Search β€” Each sub-question is sent to the Tavily Search API, which returns clean, LLM-ready results including URLs and content snippets.
  3. Reader β€” The top URLs are fetched and parsed with BeautifulSoup, extracting the main body text and stripping unwanted data.
  4. Synthesizer β€” All gathered content is assembled into a prompt and sent to the LLM, which writes a structured report with an introduction, key findings, and conclusion.
  5. Reflection β€” The LLM evaluates whether the report fully answers the original question. If not, the agent loops back to the Search node with refined queries. The loop is capped at 2 iterations to prevent infinite cycles.

Agent Graph

[Planner] β†’ [Search] β†’ [Reader] β†’ [Synthesizer] β†’ [Reflection]
                ↑                                        ↓
                └──────────── re-search if needed β”€β”€β”€β”€β”€β”€β”€β”˜
                                                         ↓
                                                        END

Project Structure


AutoScholar/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ agent/
β”‚   β”‚   β”œβ”€β”€ nodes/
β”‚   β”‚   β”‚   β”œβ”€β”€ planner.py
β”‚   β”‚   β”‚   β”œβ”€β”€ search.py
β”‚   β”‚   β”‚   β”œβ”€β”€ reader.py
β”‚   β”‚   β”‚   β”œβ”€β”€ synthesizer.py
β”‚   β”‚   β”‚   └── reflection.py
β”‚   β”‚   β”œβ”€β”€ graph.py
β”‚   β”‚   └── state.py
β”‚   └── streamlit.py
└── README.md

Workflow

User Topic
↓
Planner (LLM)
↓
Tavily Web Search Γ— N sub-questions
↓
BeautifulSoup Page Reader
↓
Synthesizer (LLM)
↓
Reflection (LLM)
↓
Structured Report


AutoScholar UI

Screenshot 2026-03-12 at 11 15 39 AM