ago只能用于过去时态.表示多少时间以前,前面必须加一个特定的时间,它表示的是一个时间点,你不能说ihavebeenhereago.但是可以说ihavebeenherebefore.而你说的句子里,是用的完成时态,所以要用before.表示的是一段时间完成的事情,而不是一个点.也可以说成tonyvisitedthistowntwoyearsago.