A multi-agent literature research assistant built with Google ADK. Given a research topic, it searches ArXiv, presents papers for approval, runs parallel paper analysis, validates each summary, and produces a final synthesized literature review.
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # then fill in your keys| Variable | Required | Notes |
|---|---|---|
GOOGLE_API_KEY |
Yes | Gemini API access |
SEED_PAPER_COUNT |
No | Number of papers to research (default: 3) |
SEMANTIC_SCHOLAR_API_KEY |
No | Reduces throttling on paper lookups |
cd multi_agent_researcher
python dashboard.pyLaunches a Textual TUI with:
- Left panel — live per-agent status (Planner, Researchers, Validators, Synthesizer)
- Right panel — scrollable activity log with full tool-level output
- Input bar — multi-turn conversation with the agent pipeline
Ctrl+Lto clear the log,Ctrl+Cto quit
cd multi_agent_researcher
adk run .- Enter a research topic — Root refines it and asks for a green light
- Green light — Planner searches ArXiv and presents papers
- Approve papers — type
approvedor remove papers by number - Pipeline runs automatically — researchers analyze each paper in parallel, validators check each summary, synthesizer produces the final report
- Output path shown — synthesis report location printed on completion
Continue from the latest planner run
Root loads the existing manifest and skips straight to the research pipeline.
outputs/
run_<timestamp>/
planner_manifest.json
papers/
<arxiv_id>.pdf
file_cache.json
researchers/
researcher_1/
summary.md
validator/
validation_criteria.json
validation_summary.md
researcher_2/ ...
researcher_3/ ...
synthesis/
synthesis_report.md
synthesis_summary.json
Only the 3 most recent runs are kept (configurable via keep_last in create_run_output_dir).
Root
└── Planner
└── Research Pipeline (SequentialAgent)
├── Researcher Pool (parallel LoopAgents)
│ ├── Researcher_1 + Validator_1
│ ├── Researcher_2 + Validator_2
│ └── Researcher_N + Validator_N
└── Synthesizer
All tools are defined in tools/agent_tools.py. Agent prompts live in <subagent>/agent_prompt.md.