DeepDive
Build a Self-Verifying Research Analyst
Mesh API is the official sponsor and using it is mandatory. Every LLM/AI call in your project must route through Mesh API. A submission that does not use Mesh API is not a valid submission.
The Challenge
Build DeepDive, a multi-agent research system that investigates a question across many sources and produces a structured, cited report in which every claim has been checked against the source it points to. Unsupported claims are removed or flagged, thin areas trigger more research, and the whole run is logged so a human can see exactly what was kept and what was rejected.
This is not a search wrapper and not a single long prompt. Tools that produce cited reports from one question already exist. Their well-known weakness is trust: they cite sources, but the cited source often does not actually support the sentence attached to it. The hard, valuable part of this challenge is not gathering information. It is making sure the final report is genuinely true to its sources.
The Story (what you are building, end to end)
A user asks a real question, for example: "What are the main risks of investing in the EV battery market in 2026?"
A planner agent breaks the question into sub-questions (market size, key players, known risks, recent events). Researcher agents gather evidence for each sub-question from the web, and optionally from documents the user uploaded, storing each piece of evidence with its source. A draft is assembled. Then the verifier agent reads the draft and checks each claim against the source it cites: if the source does not support the claim, the claim is dropped or marked unverified, and if a sub-question turns out to be thinly supported, the system loops back and researches more. Finally a synthesizer agent writes the structured report with citations that genuinely trace to retrieved sources. Every step is logged: the sub-questions, what was searched, which claims passed verification, and which were rejected and why.
What You Will Build
1. Multi-agent orchestration (the backbone)
- A coordinator that plans the research, delegates to specialized agents, passes results between them, and assembles the final answer.
- At least three genuinely distinct agents (for example planner, researcher, verifier, synthesizer). Distinct means each has its own job and its own prompt or its own tools — not the same prompt behind different names.
2. Real information gathering
- Agents fetch real evidence from the web, and optionally from user-uploaded documents.
- Retrieved content is stored together with its source, so claims can later be traced back.
3. The verification loop (the core of this track)
- A verifier step that checks each claim in the draft against the source it cites, and marks or removes claims the source does not support.
- When a sub-question is thinly supported, the system loops back and gathers more rather than padding the report. This self-correcting loop is what separates a real system from a wrapper.
4. Grounded, cited output
- A structured report where every claim carries a citation that genuinely traces back to a retrieved source. Nothing is invented by the language model on its own.
5. An auditable decision trail
- A record of the run: the sub-questions, what was searched, which claims passed verification, and which were rejected and why.
6. Self-evaluation (we reward this heavily)
- Your own set of test questions and a way to measure how grounded and complete your reports are — for example, the fraction of claims that pass verification — with the numbers recorded in the repo. A team that genuinely built this almost always measured whether it works.
Highlighted Bonus (optional, makes you stand out)
- Structured agent framework (e.g. LangGraph) with explicit nodes and a real loop back to research when verification fails.
- Contradiction detection across sources: flag where sources disagree rather than silently picking one.
- Source-quality weighting: trust a primary source over a random blog, with the logic visible in code.
- Clean export and follow-up: a shareable report (PDF or page) and a conversational follow-up that reuses the earlier research.
Suggested Stack (use what you are comfortable with)
- Backend: Python (Flask or FastAPI)
- Agents: LangGraph, CrewAI, AutoGen, or your own orchestrator
- LLM access (mandatory): all LLM/AI calls must go through Mesh API, the official sponsor. Mesh is an OpenAI-compatible gateway (
base_url="https://api.meshapi.ai/v1", key prefixrsk_): one key gives access to many models. Point the OpenAI SDK at Mesh and read your key from theMESH_API_KEYenvironment variable. Full guide: Mesh API docs. - Web search / retrieval: any search API or scraping approach; a vector DB (Chroma, Qdrant, FAISS, Pinecone, or similar) for grounding over documents
- Database: SQLite or PostgreSQL
- Frontend: a simple web UI or API (Streamlit, Gradio, Jinja2, or a JS frontend)
Keep your API keys in a local, gitignored .env. Since your code is what is evaluated, your credentials are never needed by us.
Submission Requirements
- A public GitHub repository with all your code and a README explaining what you built, how the agents cooperate, and how to run it.
- A short note on your key design decisions and your self-evaluation results (your test set and the numbers).
- (Optional) A short demo video and a deployed URL — reviewed for shortlisted submissions.
What a Great Submission Looks Like
- A coordinator that genuinely orchestrates distinct agents, with results passed between them.
- A verification step that actually rejects unsupported claims — you can point to a claim that got removed.
- Reports where the citations really support the sentences they are attached to.
- A visible decision trail and honest, self-measured groundedness numbers.
Build something you would be proud to show in an interview.
Using Mesh API (required)
Mesh API is mandatory — every LLM/AI call must go through it. Mesh is an OpenAI-compatible gateway: one key gives access to many models (GPT, Claude, Gemini, and more).
Create an API key (it starts with rsk_) on the Mesh dashboard, then point the OpenAI SDK at Mesh and read your key from the environment:
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.meshapi.ai/v1", api_key=os.getenv("MESH_API_KEY"))
client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hello"}],
)
Add your key to a gitignored .env and as the GitHub secret MESH_API_KEY. Full guide: Mesh API docs.
Setup & Requirements
Follow this to make sure the automated checks pass and your project is eligible for evaluation.
Your repository must contain:
- All your source code.
- A
requirements.txt(orpyproject.toml/Pipfile) listing a web framework (Flask or FastAPI) and the LLM client you use through Mesh API. - A
README.mddescribing what you built, how your agents cooperate, your key design decisions, and your self-evaluation results. - A
.gitignorethat includes.env— never commit secrets.
Repository secrets (Settings → Secrets and variables → Actions) — new to GitHub secrets? Follow this short guide:
MESH_API_KEY— your Mesh API key. Mandatory; every LLM/AI call must go through Mesh.SUBMISSION_TOKEN— your submission token, shown on your dashboard as soon as you register.
Your keys stay in your own repository and are only used by checks running in your own GitHub Actions — they are never sent to us.
Enabling the automated checks:
- Download the workflow file: https://careerapi-production.krishnaik.in/api/ci/hackathons/agent-arena-2026/workflow.yml
- Add it to your repository at
.github/workflows/agent-arena-2026-checks.yml(create the.github/workflows/folders if they don't exist). - Add the secrets listed above.
- Push a commit. The checks run automatically — results appear in your repository's Actions tab and on your submission dashboard.
Critical checks (must pass for your commit to be eligible for evaluation):
- Code compiles — all Python files are free of syntax errors.
- Dependencies present — your requirements list a web framework and an LLM client.
- Mesh API is used — your code routes LLM calls through Mesh (
api.meshapi.aibase URL, or themeshapiSDK). - Mesh API key works — your
MESH_API_KEYsecret is a valid key. Verified with a metadata call that spends no credits.
Advisory checks (feedback only — these do not block you): no committed .env, a README is present, a .gitignore that ignores .env.
The automated checks are a first filter — passing them does not finalize your score. A failing critical check simply means "fix and push again"; it is not a penalty.

