In my game, I create high-level maps at runtime that I use for answering distance and accessibility queries. They are not used for pathfinding. I call them "region maps". The region maps cover the whole playfield.
The region maps are made by flood filling the terrain map grid with a small cutoff limit so the map consists of many small regions. Connections between neighbouring regions are stored in a graph and used for lookup.
There is a general region map for the base terrain that can be used by all agents. In addition, each faction has a few region maps which are made from the terrain data with threat data overlaid.
In total, this means that each faction (a single independent agent is also a faction) has a memory footprint of 7 MB.
How can I make the factions' region maps smaller. Most of the information in them is similar to the underlying terrain anyway. It is only the nearby threats that the factions know about which make their region maps different.