Daniel Agyei’s first-half penalty ended Swindon’s five-match unbeaten run as Crewe won 1-0 at the County Ground.