A multi-agent research pipeline powered by Google Gemini. Given a topic, Atlas runs it through three specialized agents — a researcher, a critic, and a summarizer — and returns a clean, validated summary via a FastAPI gateway.
Topic → [ Research Agent ] → [ Critic Agent ] → [ Summarizer Agent ] → Summary
- Research Agent — gathers findings on the given topic
- Critic Agent — validates the findings, filtering out anything unsupported
- Summarizer Agent — produces a structured summary from the verified findings only
- Backend — FastAPI
- Agents — pydantic-ai
- Model — Google Gemini (via
google-generativeai) - Validation — Pydantic v2
- Python 3.11+
- A Google Gemini API key
1. Clone the repo
git clone https://github.com/mgalen007/atlas.git
cd atlas2. Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate3. Install dependencies
pip install -r requirements.txt4. Set up environment variables
cp .env.example .envOpen .env and add your Gemini API key:
GEMINI_API_KEY=your_key_here
5. Run the server
cd server
uvicorn main:app --reloadThe API will be available at http://localhost:8000.
Runs the full research pipeline on a given topic.
Example request
curl "http://localhost:8000/api/research?topic=quantum+computing"Example response
{
"success": true,
"data": {
"topic": "Quantum computing",
"key_findings": [
"Quantum computers use qubits instead of classical bits.",
"Superposition allows qubits to represent multiple states simultaneously."
],
"content": "Quantum computing represents a fundamental shift in how computation..."
}
}A health check endpoint, use it to verify if the server is running correctly.
The Swagger UI documentation for the API.
atlas/
├── server/
│ ├── main.py
│ └── features/
│ ├── __init__.py
│ ├── research/
│ ├── __init__.py
│ │ └── router.py
│ └── agents/
│ ├── __init__.py
│ ├── config/
│ │ └── models.py
│ ├── service.py
│ ├── research_agent.py
│ ├── critic_agent.py
│ └── summarizer_agent.py
├── client/ # frontend (coming soon)
├── .env.example
├── requirements.txt
└── README.md
Example response in Postman for topic "Generative AI"
MIT
