Best practice for Configuring multiple sets of AI?

In past games I’ve worked on in UE3 or other engines we’ve had a blob data file of Tune data information that designers would tweak.
It was somewhat useful when we had Zombie1 and Zombie2 share the same character/controller/animation/behavior etc, but wanted some values tweaked differently.

I was curious how Epic approaches this situation for best designer iteration and runtime performance with their AICharacters.

Currently with our project I’ve ended up duplicating or make sub blueprint children for AIControllers and characters and also configuring specific component information in our independent components.
I’ve considered making various data asset config override files for certain base AIController parameters, but haven’t nailed down the exact design.

I’m not sure yet of the runtime memory/performance impact for having a substantial # of varying blueprint template classes all in memory for different kinds of AI. I could see that potentially being a con beyond the usability/iteration stand point.

I also would like to drive blackboard values using some config information independent of the controller so things like wait times, reaction times, % chance to happen, utility choices, and other comparison logic don’t require any modification of the active behavior tree.