The contract has a total value of $15 million, sources told ESPN's Adam Schefter.
The San Francisco 49ers released Smith on Tuesday, after he completed just two seasons of a five-year contract he signed with the team in 2015.
In two seasons with the Niners, Smith had 53 catches for 930 yards and seven touchdowns in 28 games. He led the NFL in 2015 with 20.1 yards per reception.
Over the past three years, Smith was the one big-ticket free agent the Niners signed after he averaged 53.2 catches, 898 yards and 7.5 touchdowns per year in four seasons with the Baltimore Ravens.
Smith's struggles in San Francisco didn't all fall on his shoulders, though, as his role in the offense varied while the Niners struggled to find consistent quarterback play. In Baltimore, Smith's percentage of targets per route run was never less than 18 percent. With the Niners, that number dropped to 11.6 percent in 2015 and 12.7 percent last year.
In December, Smith said he was knocked unconscious in a Week 14 loss to the New York Jets and missed the 49ers' final three games of the 2016 season with a concussion.
Smith won a Super Bowl ring with the Ravens in 2012, when Baltimore beat San Francisco in Super Bowl XLVII. He had two receptions for 35 yards in the victory.
His best NFL season came the next year, when he finished with 65 catches for 1,128 yards and four touchdowns. He had a career-best 11 touchdown receptions in 2014, the season before he left the Ravens in free agency.
ESPN's Nick Wagoner contributed to this report.