Research software · arXiv preprint

ResearchPilot: A Local-First Multi-Agent System for Literature Synthesis and Related Work Drafting

An open source system for literature retrieval, structured abstract extraction, synthesis, and related work drafting, with report history and semantic search.

Literature review assistanceAgent orchestrationResearch software

Abstract

ResearchPilot is an open-source, self-hostable multi-agent system for literature-review assistance. Given a natural-language research question, it retrieves papers from Semantic Scholar and arXiv, extracts structured findings from paper abstracts, synthesizes cross-paper patterns, and drafts a citation-aware related-work section. The system combines FastAPI, Next.js, DSPy, SQLite, and Qdrant in a local-first architecture that supports bring-your-own-key model access and remote-or-local embeddings. This paper describes the system design, typed agent interfaces, persistence and history-search mechanisms, and the engineering tradeoffs involved in building a transparent research assistant. Rather than claiming algorithmic novelty, we present ResearchPilot as a systems contribution and evaluate it through automated tests and end-to-end local runs. We discuss limitations including external API rate limits, abstract-only extraction, incomplete corpus coverage, and the lack of citation verification.

Abstract from the original preprint. Read the HTML full text.

Explore the software

Demo and recorded examples

Explore recorded literature workflows, including a research question, retrieved papers, a synthesis, and a related work draft. The public demo includes recorded examples that can be viewed without running a new research task.

The demo is maintained separately and may include changes made after the March 2026 preprint. Its examples illustrate software behavior; the findings reported in version 1 are described in Evaluation and scope. Check the demo for current requirements when running a new task.

Inside the paper

Contribution and evidence

  • A staged literature workflow

    Four sequential stages retrieve papers, extract findings from abstracts, synthesize patterns, and draft related work. Each stage has explicit inputs and outputs.

    Section 5 and Table 1 in the paper
  • Inspectable system design

    DSPy modules connect a FastAPI service to a Next.js interface, exposing progress and intermediate outputs.

    Sections 4 and 6 in the paper
  • Persistent research history

    SQLite stores completed reports. Qdrant supports semantic search over prior runs, with a keyword fallback when vector search is unavailable.

    Section 7 in the paper

Reading the results

Evaluation and scope

What was evaluated

The paper reports automated checks and local workflow runs. These establish functional behavior and expose practical failures, including provider rate limits. They do not establish comparative synthesis quality or citation accuracy.

Read the evaluation

Scope of version 1

Version 1 works from abstracts and retrieves through Semantic Scholar and arXiv. Full text analysis, exhaustive review coverage, and independent verification of citation support are outside its demonstrated scope.

Read the limitations

This page describes the March 2026 preprint. The code repository may include later changes. Deployment on your own infrastructure can still involve external search or model services.

Reference

Cite this paper

This paper is relevant when discussing implemented literature assistance systems, explicit agent interfaces, and the persistence of research workflows.

Zhang, P. (2026). ResearchPilot: A Local-First Multi-Agent System for Literature Synthesis and Related Work Drafting. arXiv. https://doi.org/10.48550/arXiv.2603.14629

DOI: 10.48550/arXiv.2603.14629

View BibTeX
@misc{zhang2026researchpilot,
  title = {{ResearchPilot: A Local-First Multi-Agent System for Literature Synthesis and Related Work Drafting}},
  author = {Peng Zhang},
  year = {2026},
  eprint = {2603.14629},
  archivePrefix = {arXiv},
  primaryClass = {cs.IR},
  doi = {10.48550/arXiv.2603.14629},
  url = {https://arxiv.org/abs/2603.14629},
  note = {Version 1, preprint}
}