庄的曾孙。博学，通世族家谱。贞观年间，官至光禄少卿，并持节出使突厥。突厥赠马百匹与当地特产，拒绝不受。历任交、桂二州都督，杭州刺史等职。武则天时担任司府寺主簿，受诏巡抚淮南，还被封为河东县男。中宗景龙年间，任左散骑常侍，重修《氏族志》。唐玄宗时，再与徐坚、吴兢、魏知古、陆象先、刘子玄继修《氏族志》，成书后定名《姓氏系录》。晚年担任太子詹事、太子宾客、来王傅，昭文馆学士等职。开元二年（7l4年），又受诏偕同着作郎薛南金重修《姓氏系录》，书成，特赐绢百匹。不久致仕。卒于开元五年（717年）。