Vault / wiki/401/storm-overview.md
updated 2026-07-16STORM: Multi-Perspective Research
STORM is a research-and-writing system from Stanford's OVAL lab that generates grounded, Wikipedia-style long-form articles from nothing but a topic string. It was introduced in the NAACL 2024 paper "Assisting in Writing Wikipedia-like Articles From Scratch with Large Language Models" (Shao et al., arXiv 2402.14207). The name is a backronym: Synthesis of Topic Outlines through Retrieval and Multi-perspective question asking.
- Repo:
stanford-oval/stormon GitHub - Package:
pip install knowledge-storm - Framework: built on DSPy, Stanford's declarative LM-programming library — each STORM module is a DSPy program, so prompts are composable and the underlying LM is swappable
The core thesis
Most "write me an article" pipelines fail not at the writing step but at pre-writing — the research and outlining that human authors do before drafting. STORM's bet: automate pre-writing well, and the drafting step becomes a mostly mechanical grounding exercise.
STORM automates pre-writing with two mechanisms:
- Perspective-guided question asking. Instead of one generic researcher, STORM discovers multiple personas (perspectives) relevant to the topic and has each ask questions a person with that viewpoint would ask. Different perspectives surface different facts.
- Simulated multi-turn conversations grounded in retrieval. Each persona holds a multi-turn Q&A conversation with a simulated topic expert whose answers must come from retrieved web sources. Multi-turn matters because follow-up questions depend on earlier answers — that's how depth emerges.
The transcripts of these conversations, plus the sources collected along the way, become the raw material for an outline and then a cited article. Stage-by-stage detail lives in storm-pipeline.
pip install knowledge-storm
from knowledge_storm import STORMWikiRunner, STORMWikiRunnerArguments
# configure LMs + a retriever (You.com, Bing, DuckDuckGo, ...), then:
runner.run(topic="Prompt caching", do_research=True,
do_generate_outline=True, do_generate_article=True,
do_polish_article=True)
Results
Evaluated against an outline-driven RAG baseline, with experienced Wikipedia editors as judges:
| Metric | Improvement |
|---|---|
| Organization | +25% absolute |
| Coverage | +10% absolute |
The gains concentrate exactly where the thesis predicts — structure and breadth, the pre-writing deliverables — rather than sentence-level fluency, which strong LMs already have.
Known failure modes
The paper's editor study flagged two recurring problems worth internalizing before you trust STORM output:
- Source bias transfer. Grounding guarantees attributability, not neutrality. If the retrieved web sources are promotional or one-sided, the article inherits that bias with citations attached.
- Over-association of unrelated facts. The synthesis step sometimes draws connections between correctly-retrieved facts that no source actually asserts — an emergent, harder-to-catch cousin of hallucination.
Both are retrieval-layer diseases, which is why STORM adaptations (see storm-for-exams) typically constrain the corpus to authoritative sources rather than the open web.
Why it matters beyond Wikipedia
STORM is best read as a general agentic research pattern (compare agentic-patterns and subagents): decompose "research topic X" into parallel persona-driven investigations, ground every claim via retrieval, then synthesize. The same skeleton powers co-storm (human-in-the-loop discovery) and this site's own question-generation pipeline (storm-for-exams).
Key terms
- STORM — Synthesis of Topic Outlines through Retrieval and Multi-perspective question asking; a Stanford OVAL system that writes grounded Wikipedia-style articles from scratch by automating pre-writing.
- Pre-writing — the research and outlining phase before drafting; STORM's central claim is that grounded long-form generation is bottlenecked here, not at the writing step.
- Perspective-guided question asking — STORM's technique of discovering multiple personas for a topic and having each ask questions from its own viewpoint to broaden fact coverage.
- Simulated conversation — a multi-turn Q&A between an LM "writer" persona and an LM "expert" whose answers are grounded in retrieved sources; the transcripts feed outline and article generation.
- DSPy — Stanford's declarative LM-programming framework that STORM is built on; modules are programs rather than hand-written prompt strings.
- knowledge-storm — the pip package name for the official STORM implementation (
stanford-oval/storm). - Source bias transfer — failure mode where biased or promotional retrieved sources propagate their slant into the generated article despite correct citation.
- Over-association — failure mode where the model connects individually true retrieved facts into a claim no source actually makes.
See also
- storm-pipeline — the four-module architecture, stage by stage
- co-storm — the human-in-the-loop successor
- storm-for-exams — adapting STORM to exam-item generation
- rag-fundamentals / rag-patterns — the retrieval substrate