Second baseman Luis Castillo decided to stay with the Mets, reaching a preliminary agreement Sunday night on a multiyear contract.