A multi-agent pipeline that uses Claude to research any topic — planning queries, searching the web, analysing sources, synthesising findings, and generating a polished markdown report.
Plan → Search (parallel) → Analyse (parallel) → Synthesise → Report
| Agent | Model | Role |
|---|---|---|
| Planner | claude-opus-4-6 | Decomposes topic into 3-4 targeted search queries |
| Search | claude-sonnet-4-6 | Runs web searches and collects sources (parallel per query) |
| Analyst | claude-sonnet-4-6 | Extracts structured findings from each source (parallel per source) |
| Synthesis | claude-opus-4-6 | Cross-source reasoning, conflict resolution, gap identification |
| Report | claude-sonnet-4-6 | Formats synthesis into a cited markdown report |
├── main.py # Entry point — orchestrates the pipeline
├── schemas.py # Shared dataclasses (SearchResult, Finding, Synthesis, Report)
├── requirements.txt
└── agents/
├── __init__.py
├── search_agent.py
├── analyst_agent.py
├── synthesis_agent.py
└── report_agent.py
# 1. Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# 2. Install dependencies
pip install -q "anthropic>=0.40.0"
# 3. Set your Anthropic API key
export ANTHROPIC_API_KEY="your-key-here"# Run with a custom topic
python3 main.py "impact of large language models on software engineering"
# Default topic (if no argument provided)
python3 main.pyOutput is saved to output/ as a markdown report and a JSON metadata file.