The Reds have agreed to a four-year, $64 million deal with outfielder Nick Castellanos, sources told ESPN.