Sorry for the long post. I have played quite a few games and analyzed the AI in order to make my AI+ mod. The main problem facing the AI is simply that the stacks it builds aren't a threat to a player's. I hardly play to win and usually I can get a stack of units out that will easily chew through 3-4 AI stacks in a row. I use barely any magic and use just basic troops, usually without mounts. No tricks at all.
The reasons for this are varied:
-As others have said the tactical AI could use some love. It could be better at moving and casting, picking targets once already in combat, and avoiding swarm. Also it tends to let its faster units without armor run in first before its defenders. You want your defenders out front to absorb the first hits and then you bring in your faster more damaging units. Of course I admit this can be complicated and isn't always the case.
-The AI builds weak units. This game is one that rewards building elite units not lots of units. The AI is good at building tons of units but that's a terrible strategy, basically they are free experience. In my mod I fixed this by getting the AI a lot of new high end designs, and changing the xml so it likes building more expensive units. Also Magnar tends to build too many slaves, yes they are cheap but as I said elite units are the way to win. A nice mix could work but they prefer almost 100% slave armies. Also Roseln really likes Widows but doesn't ever use them right. The are terribly weak and only should be used in armies made of mostly ranged units.
-The AI doesn't use troop bonuses. The AI does not build most of its troops in Fortresses. Thus its troops don't get the stat bonuses and levels. These bonuses are significant especially when you factor in city enchantments. An army with theses bonuses will utterly destroy an army without them. Even just a Barracks and Blacksmith gives +2 Levels, +4 Defense, and +15 accuracy. With a Strike Garrison and enchantments you can get a additional 3-6 Initiative and 1-4 fire damage.
-The AI does not develop its cities properly. The other area my mod really helped the AI was by getting the AI to emphasize developing their cities and reducing build time. I put higher priority on improvements that increased production and reduced unrest. By midgame I noticed the AI cities had double the improvements they used to have. The first thing I build in cities is a belltower and workshop. It just makes sense to build the things that reduce build time first. A mason also makes a huge difference, so much so that I put a higher priority on the tech that grants it. As I said above the AI likes to build troops in all its cities, frequently from cities they just founded. This is terrible on many different levels. It retards the growth of that city and gives them a terrible unit that took forever to build. City specialization is very important. Particularly for Fortresses. You should not be wasting time building units in other cities, or studies and merchants in Fortresses. Fortresses should be focused on first maxing production and bonuses and then building troops. Troop enchantments should be cast only on Fortresses.
-I have written quite a few IsWorthy tags for spells. Thanks Frogboy for creating them. One thing though is I wish there was a proximity variable that showed how many tiles away the nearest enemy is from the casting unit. I could write a lot of nice IsWorthy tags for spells with that.
-The AI still sometimes chooses stupid paths for it's sovereigns and champions. A lot of different mods have tried to get around this in different ways. I wish I could add an AI trait to champions so that I could prioritize them choosing certain traits.
Thanks again Frogboy for all your hardwork.