The way the AI designs its ships is, unfortunately, not geared towards being adaptable. The AI cannot choose to make a ship with more of one defense or another, without there being a specific blueprint for it. The AI cannot choose to put more engines or sensors on its designs to deal with a larger map, unless there is a specific blueprint for it. The AI cannot choose to put fewer support modules on its ships even if the map is tiny and its range is already 3x its radius.
The best thing the AI can do at this point is copy player ships. I like that it does that, but it does not make a smart AI, not s particularly adaptable one - how is the AI to recognize what purpose a player design was good for?
I believe the AI needs to gain the ability to prioritize components, rather than follow a strict list as in the current blueprint system.
Instead of the current 'beamweapon - beamweapon - life support - armor - shield - ecm - engine - fillwithbeamweapons' designs, I would hope to see something like this:
beamweapon
beamweapon
defensive system<CheckStrongestCurrentRivalForMainAttackType>
engine until <CheckAverageDistanceBetweenStars/balancingvariable>
life-support until <checkRangeFromBorderToNearestEnemyPlanet+10>
beamweapon
defensive system<CheckStrongestCurrentRivalForMainAttackType>
fillwithbeamweapon