Miles played five positions for the Cardinals last season, when he made his first major-league appearances on the mound and in the outfield. He became a free agent last month when the Cardinals failed to offer a 2008 contract.
The 31-year-old, who has spent the last two seasons with St. Louis, had a .290 batting average in 133 games last year. He was acquired from the Colorado Rockies in December 2005.
In addition to his base salary, Miles can earn $250,000 in performance bonuses: $50,000 each for 250, 300, 350, 400 and 450 plate appearances. He had a $1 million base salary last year and earned $150,000 in bonuses.