Geopol Forecaster: a multi-agent system for geopolitical analysis
A proof-of-concept multi-agent system that gathers real-time news intelligence and generates scenario-based geopolitical forecasts from six analytical lenses.
I've been experimenting with multi-agent AI systems for a while now, and one area where they seem particularly well-suited is geopolitical analysis. Forecasting geopolitical developments is inherently uncertain — analysts routinely disagree, and the same set of facts can support wildly different conclusions depending on the lens you apply. That's exactly the kind of problem where running multiple AI agents in parallel, each with a different analytical directive, can produce genuinely useful output.
Geopol Forecaster is a proof-of-concept I built to explore this idea. It's a multi-agent pipeline that gathers current intelligence from real-time news sources, constructs a verified situational picture, and then runs that picture through six parallel forecasting agents — each applying a different analytical lens.
How it works
The system runs a five-stage pipeline:
State gathering — An orchestrator dispatches subagents (Gemini with search grounding + Groq for near real-time fill) to collect situational updates across four time windows: 3h, 6h, 12h, and 24h. These are merged with foundational background context to produce a Draft Ground Truth document.
User review — The human reviews the ground truth, corrects errors, and confirms before forecasting begins.
Scenario modelling — The confirmed ground truth is sent to six subagents, each producing forecasts across four timeframes (24 hours, 1 week, 1 month, 1 year).
Summarisation — A summarisation agent reads all six outputs and produces an executive summary highlighting consensus themes, key divergences, and actionable insights.
Report construction — Everything is assembled into a timestamped PDF report.
The six analytical lenses
The core idea is that a single AI model, prompted once, tends to produce a single narrative. By running six agents in parallel — each with a distinct analytical directive — you get a structured spread of perspectives that's far more useful for decision-making:
Neutral — The model's unguided honest assessment
Pessimistic — Worst-case scenario modelling
Optimistic — Best-case scenario modelling
Blindsides — Low-probability but conceivable pivots
Probabilistic — Mathematically rigorous predictions using probabilities and historical precedent
Historical — Predictions based solely on historical actor behaviour in similar circumstances
Tech stack
The POC is built with Next.js 16, the Vercel AI SDK, and SQLite for session persistence. The intelligence-gathering stage uses Google Gemini with search grounding for web-connected situational awareness, and Groq for fast near real-time supplementary data. The forecasting agents run through OpenRouter. Reports are rendered as PDFs with Typst.
Example output
The POC is currently focused on the Iran–Israel–US conflict as a test case. Here's an example 43-page forecast report that includes an executive summary, a detailed situation report (SITREP), scenario forecasts across all four timeframes, and a full appendix breaking down each analytical lens:
Source code
The project is open source and available on GitHub: danielrosehill/Geopol-Forecaster-POC
danielrosehill/Geopol-Forecaster-POC View on GitHubIt's a proof of concept — rough edges and all — but the multi-lens approach has already proven its value. The most interesting outputs tend to come from the divergences between lenses rather than any single forecast. When the pessimistic and blindsides agents flag scenarios that the neutral and optimistic agents dismiss, that's where the real analytical value lies.