Chris Snyder has agreed to a one-year contract with the Astros, a deal that includes a 2013 mutual option. The catcher hit .271 with three homers and 17 RBIs in 34 games for Pittsburgh last year, when his season ended in June because of surgery on his lower back.