Geopol Forecaster: A Multi-Agent Geopolitical Forecasting Experiment
I built a proof-of-concept multi-agent geopolitical forecasting system that gathers real-time intelligence, generates structured situation reports, and produces scenario forecasts from six independent analytical lenses. It's an experiment in seeing how well AI agents can replicate the kind of structured analysis you'd see from institutions like ISW or the Critical Threats Project.
How it works
The pipeline runs through 7 stages with optional human-in-the-loop review gates:
News Ingestion — RSS feeds from Times of Israel and Jerusalem Post, plus full ISW/CTP expert analysis via WordPress API
Intelligence Gathering — Three-source collection: Gemini 3.1 Flash Lite (Google Search grounding), Grok 4.1 Fast (X/social media), and timestamped news articles — merged into a consolidated ground truth
Ground Truth Review — Rich markdown editor for analyst review before confirmation
SITREP Generation — Transforms confirmed ground truth into a structured 14-section situation report (ISW/CTP style)
SITREP Review — Tabbed editor for section-by-section review
Scenario Forecasting — Six parallel agents with structured Zod schemas, each with a distinct analytical lens, producing typed predictions with probabilities across 4 timeframes
Executive Summary — Structured synthesis with consensus tracking, cross-lens divergence analysis, and actionable insights
The six analytical lenses
Each lens uses a different model and analytical approach:
Neutral (Gemini) — Unbiased assessment
Pessimistic (Grok) — Worst-case escalation paths
Optimistic (Gemini) — De-escalation pathways
Blindsides (Grok) — Black swan events
Probabilistic (Gemini) — Mathematical rigor with explicit probability distributions
Historical (Grok) — Historical precedent analysis
Output
The system produces a professional Typst-compiled PDF report (IBM Plex Sans/Mono) with table of contents, structured prediction tables, agent attribution, and time-horizon-first forecast layout. An example run generated a 43-page structured forecast from live data.
Tech stack
Next.js 16 (App Router) + Vercel AI SDK v6
OpenRouter (Gemini 3.1 Flash Lite + Grok 4.1 Fast)
Zod schemas for structured AI output
Typst for PDF generation
SQLite (better-sqlite3) for session persistence
RSS + WordPress API for news ingestion
Also runs headless via CLI:
npm run pipeline
This is a proof of concept and should not be relied upon for actual decision-making. But as an experiment in multi-agent structured analysis, I think it demonstrates some interesting patterns around using diverse AI models as independent analytical perspectives.
danielrosehill/Geopol-Forecaster-POC View on GitHub
Daniel Rosehill
AI developer and technologist specializing in AI systems, workflow orchestration, and automation. Specific interests include agentic AI, workflows, MCP, STT and ASR, and multimodal AI.