본관은 안동(安東). 자는 원례(元禮), 호는 삼산재(三山齋). 김상헌(金尙憲)의 후손으로 김창협(金昌協)의 증손자, 김원행(金元行)의 아들이다.
당대의 학자였던 아버지에게서 학문을 배워 1762년(영조 38) 학행(學行)으로 천거받아, 민이현(閔彝顯)·김두묵(金斗默)·조림(曺霖) 등과 함께 경연관(經筵官)에 기용되었고, 1781년(정조 5) 충주목사를 지냈으며, 1784년 지평(持平)·보덕(輔德)·찬선(贊善) 등을 거쳐 1786년 좨주(祭酒)가 되었다.
당시 북학파(北學派) 학자 홍대용(洪大容)·박제가(朴齊家) 등과 교유를 맺어 실학에 관심을 보이기도 하였다. 그러나 아버지 문하에 출입하던 성리학자 박윤원(朴胤源)·이직보(李直輔)·오윤상(吳允常) 등과의 교유 속에 전통적 성리학자로 더 알려졌으며, 또한 예설(禮說)과 역학(易學)에도 조예가 깊어 『의례경전기의(儀禮經傳記疑)』·『계몽기의(啓蒙記疑)』 등 많은 저술을 남겼다. 시호는 문헌(文獻)이다. 저서로는 『삼산재집(三山齋集)』 12권이 있다.