Inspiration

In 2026, AI-generated misinformation spreads faster than any human fact-checker can respond. A single fabricated claim reaches millions before a correction is published. Existing fact-checking tools rely on static databases that go stale within days, or they dump raw search results on the user without analysis.

I built DeepTrace to close this gap: an autonomous agent that searches, reads, cross-references, weighs contradictions, and delivers a verdict with full evidence — in under 30 seconds.

What It Does

DeepTrace runs a four-stage autonomous verification pipeline:

Stage 1: Claim Decomposition: NVIDIA Nemotron 3 Nano (30B, 3B active via MoE) extracts atomic, verifiable factual propositions from raw text.

Stage 2: Live Source Retrieval: Tavily AI Search API pulls 8 independent, live web sources per claim, tier-ranked by domain authority (Tier 1: government/academic, Tier 2: wire services, Tier 3: major news, Tier 4: blogs/social).

Stage 3: Cross-Reference & Stance Analysis: NVIDIA Nemotron 3 Super (120B, 12B active) evaluates every source's stance (Supports/Contradicts/Neutral), identifies key contradictions, and synthesizes consensus.

Stage 4: Verdict Scorecard: Transparent, color-coded verdict (Verified/Debunked/Disputed/Unverifiable) with confidence percentage, misinformation classification, and clickable source citations.

Batch mode processes up to 5 claims simultaneously with a consolidated summary dashboard.

How I Built It

  • Backend: FastAPI (async Python) orchestrating a deterministic 4-stage pipeline
  • Frontend: HTMX + Jinja2 for reactive server-rendered UI with zero JS framework overhead
  • Inference: Nebius Token Factory hosting NVIDIA Nemotron 3 Nano (fast) and Nemotron 3 Super (reasoning) via OpenAI-compatible API
  • Search: Tavily AI Search API for agentic web retrieval with domain filtering
  • Deployment: Modal serverless with scale-to-zero and sub-10s cold starts

Key decisions: dual-model architecture keeps latency under 30s and cost under $0.01 per verification. Python pre-splitting for batch claims ensures deterministic separation. Four-strategy JSON repair pipeline for robust LLM output parsing.

Challenges

  • LLM output truncation: Oversized Tavily snippets caused mid-JSON truncation and all-NEUTRAL verdicts. Fixed with aggressive snippet truncation, increased MAX_TOKENS, and multi-strategy JSON repair.
  • Model ID discovery: Nebius catalog display names differ from API model IDs. Three 404 errors before finding the correct format via Nebius Playground.
  • HTMX fragment rendering: Results template extending base.html caused double headers/footers on HTMX injection. Fixed by converting to a pure HTML fragment.
  • Batch claim splitting: LLM-based splitting silently dropped claims. Replaced with deterministic Python regex sentence boundary detection.

Accomplishments

  • Complete end-to-end fact-checking agent built solo in under two weeks
  • Dual-model agentic pipeline on Nebius Token Factory with NVIDIA Nemotron 3
  • Deep Tavily integration with tier-ranked credibility scoring across 8 live sources
  • Serverless deployment on Modal with live public URL
  • Responsive UI with animated stages, hover-explained classifications, and batch mode

What I Learned

  • MoE models are ideal for agentic pipelines: Nano's 3B active parameters handle fast tasks cheaply while Super's 12B active handle reasoning without dense-model cost
  • HTMX eliminates an entire frontend complexity layer for AI dashboards
  • LLM output parsing is the hardest part of building agents; defense-in-depth parsing is non-negotiable
  • Tavily's pre-extracted, relevance-ranked snippets directly improved verdict accuracy over raw web search

What's Next

  • Keep Tavily as the primary evidence backbone; add optional secondary search fallback for quota resilience
  • Concurrent batch processing with asyncio.gather
  • Structured logging and observability
  • Browser extension for one-click claim verification

Built With

Share this project:

Updates

Submission history