Model Selection Guide

April 13, 2026 · View on GitHub

Geopol Forecaster uses OpenRouter as a unified API gateway, giving access to models from every major provider through a single endpoint.

Model Pools

Each pool defines 4 roles:

RoleWhat it doesQuality needs
PlannerRuns once — web research + briefing synthesisHigh reasoning
NarratorAdjudicates rounds, weaves outcomesStrong creative + analytical
PlayerResponds in-character each roundGood persona adherence
AdvisorSupports human players with analysisBasic competence, fast

See config/pools.yaml for all predefined pools. Set active_pool or pass the pool name at runtime.

Browse Models

Roleplay Benchmarks

Use these to track which models perform best for character simulation and creative interaction:

BenchmarkWhat it measuresLink
EQ-BenchEmotional intelligence, empathy, social skills in roleplay scenarioseqbench.com
LLM Stats RoleplayAggregated roleplay benchmark scores across modelsllm-stats.com/benchmarks/category/roleplay
PingPong BenchDedicated RP benchmark using LLM-as-judge evaluationgithub.com/IlyaGusev/ping_pong_bench
RoleLLM / RoleBenchCharacter-level roleplay benchmark (168k samples)github.com/InteractiveNLP-Team/RoleLLM-public
Arena AICrowdsourced side-by-side model comparisonarena.ai/leaderboard

Adding Custom Pools

Edit config/pools.yaml to add your own pool. Use any model ID from OpenRouter's model list:

pools:
  my-custom:
    planner:  "provider/model-name"
    narrator: "provider/model-name"
    player:   "provider/model-name"
    advisor:  "provider/model-name"

Set active_pool: my-custom or pass it as a CLI argument.