Path of Exile 2 has a lot of moving parts: thousands of modifiers, item bases, currencies and runes. Ask a general-purpose chatbot about crafting and you tend to get confident answers that are subtly out of date or plain wrong.

ExileSage is my attempt at fixing that. It is a local advisor that answers PoE2 questions (crafting, items, currencies, builds) by querying real game data through tools, so the answer is grounded rather than guessed.

Code: github.com/JackyLiu47/exilesage

The data pipeline

Flow diagram: game data is scraped, validated and loaded into SQLite; a question is classified, routed to a model and answered through a tool-use loop over that database.

TableRowsWhat’s inside
mods14,840Explicit and implicit modifiers, value ranges, spawn weights
base_items2,902Item bases, defence values, requirements
currencies780Stackable currencies and their descriptions
augments123Soul Cores, Runes, Talismans

Everything is validated with Pydantic on the way in, and every text column has an SQLite FTS5 index, so natural-language search is fast and needs no extra infrastructure.

The advisor

A question goes through a small router before any expensive model sees it:

  1. Classify. A cheap model (Haiku) labels the query: factual, crafting, analysis, guide, or innovation.
  2. Pick a model. A simple map chooses the cheapest model that fits the label, from Haiku up to Sonnet or Opus.
  3. Agentic loop. The model calls search tools (mods, base items, currencies, augments) for up to 8 iterations, then answers from what it found.

Routing keeps the cost sensible: most factual lookups never need the biggest model.

Reliability work

The second stage was less glamorous but more important. Data refreshes are now atomic, so a failed scrape can’t leave a half-written database. Search is Unicode-safe, and the CLI handles interrupts cleanly. The advisor also does freshness tracking: it knows how old its data is and says so, which matters in a game that patches often.

What I took away

  • Grounding beats prompting. Giving the model tools and good data fixed more errors than any prompt tweak.
  • Boring infrastructure (SQLite, FTS5, Pydantic) is a great fit for this kind of project.
  • An advisor that admits when its data is stale is more trustworthy than one that never hesitates.

Path of Exile 2 and its logo are trademarks of Grinding Gear Games. ExileSage is an unofficial fan project and is not affiliated with or endorsed by them.