The agreement was first reported Sunday by The Athletic. Cabrera can make up to $2 million in performance bonuses, according to ESPN and reports.
The deal includes an invitation to major league camp.
Cabrera, 34, appeared in 78 games with the Cleveland Indians last season, batting .280 with six home runs and 39 RBIs. He is a career .286 hitter in parts of 14 seasons with the Indians, Royals, White Sox, Blue Jays, Giants, Braves and Yankees.
In 2012, Cabrera received a 50-game suspension for using performance-enhancing drugs.