evaluate before match after agent