Farnsworth would help fill a void created when the Royals traded setup right-handers Ramon Ramirez and Leo Nunez.
The deal will not be completed until Farnsworth passes a physical examination, which will be taken probably Friday or Monday.
"If you've ever seen Kyle Farnsworth," said his agent, Barry Meister, "if he doesn't pass, there's no hope for any of us."
Farnsworth and left-hander Ron Mahay figure to be the primary setup men for closer Joakim Soria next season.
Last season Farnsworth pitched for the New York Yankees and the Detroit Tigers, compiling a 2-3 record with one save and a 4.48 ERA.
In his 10-year career with the Cubs, Tigers, Braves and Yankees, his overall record is 30-48, with 27 saves and a 4.47 ERA.
Farnsworth, 32, fills the Royals' need for a power right-hander. He has 738 strikeouts in his 735 career innings.
Royals fans might remember Farnsworth for his role in a July 17, 2005, ruckus in Detroit. After Royals pitcher Runelvys Hernandez hit Carlos Guillen in the helmet with a pitch, the players spilled onto the field. During the scrum, the 6-foot-4, 240-pound Farnsworth picked up Royals pitcher Jeremy Affeldt and slammed him to the ground.
When Farnsworth was with the Chicago Cubs in 2003, he tackled Cincinnati's Paul Wilson with such finesse that football coaches wanted him to give lessons to their players. Last season with the Yankees, he was suspended for one game for throwing behind Boston's Manny Ramirez.
The Royals had been sifting through right-handed setup possibilities at the Winter Meetings, including Farnsworth, Juan Cruz, Russ Springer and Brandon Lyon.
Waechter, 27, gives the Royals a middle-innings reliever who also could make a spot start. Last season for the Marlins, he was 4-2 with a 3.69 ERA in 48 games, all in relief. He spent 19 days on the disabled list with a shoulder problem.
"He's more of a sixth-, seventh-inning type of guy. He was effective against right-handed hitters," Royals general manager Dayton Moore said.
A third-round selection of Tampa Bay in 1999, Waechter had a career mark of 18-27 in parts of five seasons with the Rays and the Marlins. In 108 games, half of them starts, he has a 5.30 ERA.
Ramirez, 29, was released last spring by the Seattle Mariners and signed a Minor League contract with the Royals. Called up later, he pitched in 15 games for the Royals with a 2.59 ERA and 1-1 record. On Aug. 9, he was traded to the Chicago White Sox for Minor League outfielder Paulo Orlando. Ramirez struggled with the White Sox, going 0-3 with a 7.62 ERA in 17 relief outings.
"Our expectation is that Horacio Ramirez will be part of our starting rotation in 2009," Moore said.
Previously in his career with Atlanta and Seattle, Ramirez was primarily a starter. In 2007 in that role, he was 8-7 in 20 starts for the Mariners. He's been in 138 Major League games, starting 104 of them; his career mark is 39-33 with a 4.59 ERA.
Ramirez's contract was believed to be worth about $1.75 million; Waechter's deal for about $650,000.