How to setup AI Conditional Actions?

I need a little guidance. Hoping to use BT’s for core behavior decisions (Passive,Searching,Chasing,Defensive and Agressive actions) setup a service that picks actions based on there conditions (Mostly for attacks) and a probability distribution for all possible actions that meet the conditions. Pick a random action then a task executes the action picked.
I thought checking gameplay tags would work for conditions but I need something like an actual condition function to check. And the theres another issue of caching those so i dont keep running the same conditions, since at one time there might be 15+ attacks to filter (Only considers pool of actions in current BT). It’s pretty clear that Blueprint alone wont work for this. Any advice? These are just ideas, I am still learning how to implement them.
Im trying to avoid large BT’s and keep things dynamic and easy to adjust.

This is driving me crazy and I need help!