唐观州莜(今河北景县)人,字文纪,初名瑗,字子玉。在北周为齐王宪参军事。入隋,为太子洗马。太子勇被废,官属受文帝责备不敢对,他独谓“陛下素不教,故太子至此”。任尚书右丞,为杨素等所忌,使为行军司马,从刘方远攻林邑。旋被排斥去官。入唐,为礼部尚书兼太子詹事,颇为太子建成所礼重。以太子不听谏,屡请致仕,高祖不许,仅解除尚书而已。贞观四年(630),复为少师,太宗听政,常使与房玄龄、王珪侍坐。发言陈事,无所回避。