Information on the web is fragmented, contradictory, and difficult to trust. Researchers, students, and professionals spend hours manually searching, reading, cross-referencing, and synthesising sources — only to still be uncertain about what to believe.
Research Intelligence Agent solves this by deploying a team of 5 specialised AI agents that autonomously search, read, fact-check, and synthesise information into a structured, confidence-scored research report — in seconds.
User (Browser)
│
▼
React Frontend ────────────────── Azure Static Web Apps (free tier)
│ HTTP/REST
▼
FastAPI Backend ───────────────── Azure App Service
│
▼
┌─────────────────────────────────────────┐
│ ORCHESTRATOR AGENT │ ◄── Foundry IQ (Microsoft IQ Layer)
└──────┬──────────┬──────────┬────────────┘
▼ ▼ ▼
Search Reader Fact-Check ──┐
Agent Agent Agent │ open gaps found?
▲ │ │
└────────────────────┴─────────┘ yes → targeted follow-up search/read, re-check
│ no
▼
Synthesis Agent
▼
Confidence-Scored Research Report
| Agent | Responsibility |
|---|---|
| Orchestrator | Runs the multi-step reasoning loop — decides whether to search again based on what Fact-Check finds, and manages agent handoffs via Foundry IQ |
| Search Agent | Uses Tavily Search API to find real-time web sources |
| Reader Agent | Fetches and extracts key facts from web pages |
| Fact-Check Agent | Cross-references sources, detects contradictions, and flags evidence gaps |
| Synthesis Agent | Produces final report with confidence-scored findings |
The orchestrator doesn't just run the pipeline once and stop. After the
Fact-Check Agent reports its findings, the orchestrator inspects the
Gaps section: if it identifies an open question the initial sources
didn't answer, the orchestrator formulates a targeted follow-up query,
sends the Search and Reader Agents out again, merges the new evidence with
the old (de-duplicated by URL), and re-runs the Fact-Check Agent — before
finally handing everything to Synthesis. This loop is capped by
MAX_RESEARCH_ROUNDS (default 2) so the agent always converges on a report,
while still demonstrating genuine "notice what I don't know → go find it"
reasoning rather than a fixed, one-shot pipeline.
| Technology | Role |
|---|---|
| Azure AI Foundry | Powers all 5 agents via Foundry IQ intelligence layer |
| Tavily Search API | Real-time web search for the Search Agent |
| Azure App Service | Hosts the FastAPI Python backend |
| Azure Static Web Apps | Hosts the React frontend |
| Azure Managed Identity | Passwordless authentication (DefaultAzureCredential) |
| Azure API Key auth | Fallback for hosted environments without Managed Identity |
- Python 3.10+
- Node.js 18+
- Azure account (free at portal.azure.com)
- Azure CLI installed and logged in (
az login) - Azure AI Foundry project created with:
- gpt-4o model deployed
- Grounding with Bing Search resource connected
unzip research-intelligence-agent.zip
cd research-intelligence-agent# Mac/Linux
python -m venv .venv
source .venv/bin/activate
# Windows
python -m venv .venv
.venv\Scripts\activatepip install -r requirements.txtcd frontend
npm install
cd ..cp .env.example .env
# Open .env in a text editor and fill in your valuesYour .env must contain:
AZURE_AI_FOUNDRY_PROJECT_ENDPOINT=https://YOUR-RESOURCE.services.ai.azure.com/api/projects/YOUR-PROJECT
AZURE_API_KEY=your-azure-api-key
AZURE_AI_MODEL_DEPLOYMENT=gpt-4o
TAVILY_API_KEY=your-tavily-api-keyaz login# Mac/Linux
./start.sh
# Windows
start.batGo to http://localhost:5173
research-intelligence-agent/
├── agents/
│ ├── orchestrator.py # Master coordinator (Foundry IQ entry point)
│ ├── search_agent.py # Source discovery via Grounding with Bing
│ ├── reader_agent.py # Content extraction from web pages
│ ├── factcheck_agent.py # Cross-referencing & contradiction detection
│ ├── synthesis_agent.py # Final confidence-scored report generation
│ └── base_agent.py # Azure AI Foundry base class (all agents)
├── tools/
│ ├── web_search.py # Grounding with Bing Search integration
│ └── document_reader.py # Web page content extractor
├── frontend/ # React web UI
│ ├── src/
│ │ ├── App.jsx # Main UI with live agent progress
│ │ └── App.css # Microsoft-themed dark UI
│ ├── index.html
│ └── package.json
├── outputs/ # Generated reports saved here
├── app.py # FastAPI backend entry point
├── config.py # Environment configuration
├── requirements.txt # Python dependencies
├── .env.example # Credentials template
├── start.sh # One-command startup (Mac/Linux)
├── start.bat # One-command startup (Windows)
└── README.md
- No confidential data processed or stored
- Input validation on all user queries
- Graceful error handling at every agent step — fallbacks if a source fails
- No hardcoded credentials — all via environment variables
- Managed Identity used for Azure authentication (no API keys stored)
- Confidence scores make uncertainty explicit — never presents guesses as facts
- Web content treated as untrusted input — validated before agent processing
Link : https://research-intelligence-agent.onrender.com/
Karthick Subramanian || Esvanth Mohankumar | MSc Computing (AI), National College of Ireland,Dublin,Ireland
Agents League Hackathon 2026 | Reasoning Agents Track | Foundry IQ