Fryatt will officially move to the City Ground on July 1 upon the expiry of his deal at Premier League side Hull City.
Steve Bruce was reportedly keen for the 28-year-old to remain at the KC Stadium, but Fryatt decided to move on after finding himself behind Nikica Jelavic and Shane Long in the pecking order.
Fryatt started his career at Walsall before moving to Leicester City in January 2006, and his 32 goals in the 2008-09 season helped the club achieve promotion from League One.
Having impressed at the Midlands club, he signed for Hull where he was reunited with Nigel Pearson, who had been his manager at Leicester, and he became a fans' favourite with 16 goals in his debut campaign on Humberside.
However, a serious Achilles injury hampered his progress, and he was sent on loan to Sheffield Wednesday last season where he scored four goals in just seven starts for the Championship team.
Fryatt now links up with new Forest manager Stuart Pearce, who is attempting to build a squad capable of reaching the Premier League.