고려 때의 상장군(上將軍)이 조선 초기에 도위사(都尉使)로 개칭되었다가 태종대에 상호군으로 변개되었으며, 1467년(세조 13) 정3품관으로 오위의 고급지휘관이 되었다.
『경국대전』 당시는 그 정원이 9인으로 무장(武將)이 임명되었으나, 오위의 기능이 유명무실화한 후기 사회로 내려오면서 1인이 감해지고 보직이 없는 문무관과 여러 다른 직 등에 무직을 띠게 하여 체아록(遞兒祿) 등을 수급(授給)하였다.
『속대전』에서 상호군직에 배정된 수를 보면 다음과 같다. 직무가 없는 자에게 녹봉을 주기 위한 원록체아(原祿遞兒) 2인, 선전관(宣傳官) 1인, 사자관(寫字官) 1인, 제술관(製述官) 11인, 금군(禁軍) 3인이 그것이다.