One way you could do it (and the way I did it in my game) is you could make little jump triggers at the edges of platforms.
I wanted my AI to jump a little more unexpectedly in places, so I made a small sprite and stuck them here and there in key spots. Whenever the enemy passes over it, they jump no matter what.
This could be altered so that, say, if the player is on a platform above them and there's a gap in between the two platforms then when the enemy hits the jump trigger it knows to jump. But if the player is below the enemy, and the enemy is on a platform with a jump trigger at the end, it won't jump because it doesn't need to.
Since my game was small, I could get away with using jump trigger sprites like that. In a larger game where it would be a pain in the **** to place them all, and just plain inefficient at that, then you could use a detector on each of your enemies that can tell when it's at the edge of a platform (because it's no longer overlapping the platform).
As far as actual pathfinding, I have no idea. That's beyond my understanding. I've never sat down and tried to make a platform pathfinding system.