허깅페이스, AI 에이전트 용어 'harness·scaffold' 정리 가이드 공개
허깅페이스가 AI 에이전트 분야에서 의미가 엇갈리는 핵심 용어를 정리한 글 'Harness, Scaffold, and the AI Agent Terms Worth Getting Right'를 블로그에 공개했다. ICLR 2026에서 한 저자(@ariG23498)가 "에이전트 맥락에서 'harness'와 'scaffold'가 무엇을 뜻하느냐, 학회에서 많은 설명을 들었지만 하나로 모이지 않더라"고 토로한 일이 계기가 됐다고 글은 밝힌다.
글은 모든 용어의 완벽한 사전이 아니라, 자주 뒤섞이거나 같은 단어가 다르게 쓰이는 개념에 초점을 맞춘 실용적 가이드를 표방한다. Claude Code·Codex·Hermes Agent 같은 도구를 쓰거나 에이전트를 만들고 배포할 때 마주치는 용어들이라며, 마지막 절은 모델 학습 쪽 개념까지 다룬다.
Model은 LLM 자체로, 텍스트를 입력받아 텍스트를 내놓는 함수다. 글은 Claude, Qwen, GPT, Kimi, DeepSeek 같은 모델을 예로 들며, 호출 사이의 기억도 루프도 없고 도구를 쓰겠다는 의도만 표현할 수 있을 뿐 실제 실행에는 harness가 필요하다고 정리한다.
Scaffolding은 모델 주변에 두는 '행동 정의 레이어'다. 시스템 프롬프트, 도구 설명, 응답 파싱 방식, 단계 사이에 무엇을 기억할지 등 컨텍스트 관리가 여기에 포함된다. 글은 Claude Code 문서가 "Claude Code는 Claude를 둘러싼 에이전트 하니스 역할을 한다"고 직접 표현한다고 인용하며, Claude Code·Codex·Antigravity CLI 같은 제품에서는 모델을 제외한 모든 것을 흔히 harness라 부르고, 학습 파이프라인처럼 둘을 따로 다뤄야 할 때 scaffold/harness 구분이 가장 중요해진다고 짚는다.
Harness는 에이전트 내부의 '실행 레이어'다. 모델을 호출하고 도구 호출을 처리하며 언제 멈출지 결정하는 부분이며, 이를 설계하는 일을 'harness engineering'이라 부른다고 글은 설명한다. 평가 시점에는 같은 패턴이 'eval harness'로 등장해, 가중치를 갱신하는 대신 정해진 시나리오를 돌리고 지표를 기록한다.
Agent는 강화학습에서 관측을 받아 행동을 돌려주는 함수에서 유래했고, LLM 세계에서는 모델에 주변 레이어를 더해 응답을 넘어 행동까지 하게 만든 시스템이라고 정의된다. 글은 커뮤니티에서 자주 통용되는 'Agent = Model + Harness' 공식(@Vtrivedy10과 Will Brown의 트윗 인용)을 소개하면서, Claude Code·Codex·Cursor 같은 제품이 사실은 특정 모델 위에 특정 harness가 결합된 형태이며, 같은 모델이라도 harness가 다르면 사용 경험이 완전히 달라진다고 강조한다.
Context Engineering은 에이전트가 매 단계에서 컨텍스트 윈도에 무엇을 보게 할지 설계하는 작업이다. 시스템 프롬프트, 도구 설명, 대화 이력, 검색된 지식이 모두 포함되며, 학습 단계에서 잘못 설계하면 재학습이 필요하지만 추론 단계에서는 프롬프트만 바꿔 재배포할 수 있다고 글은 비교한다. 메모리도 이 그림의 일부로, 단일 실행 동안 컨텍스트 윈도에 남는 단기 메모리와 세션을 넘어 외부 저장소에 보관되는 장기 메모리로 나뉜다.
Policy는 어떤 상황에서든 가능한 행동들의 확률을 정의하는 '에이전트가 따르는 행동'이다. LLM에서는 모델 가중치가 정책의 일부를 학습하지만, 주변 scaffold·harness에 따라 같은 모델도 매우 다르게 행동한다고 글은 짚는다. Tool Use는 에이전트가 API·코드 실행기·데이터베이스·웹 검색·파일 시스템처럼 외부에 도달하는 방식이며, 최신 추론 API는 도구 호출을 일급 객체로 노출해 harness가 직접 받아 적절한 함수로 라우팅한다.
Skills는 다단계 작업을 가능케 하는 재사용 가능한 지식 패키지로, '명령을 실행하라'에 해당하는 도구와 달리 '버그를 조사하고 가설을 세워 수정하라'처럼 목표 달성에 필요한 모든 것을 묶는다. Sub-agents는 다른 에이전트가 특정 부분 작업을 위해 호출하는 에이전트로, 자체 모델과 scaffold를 갖고 독립적으로 추론하며 결과만 돌려준다. 글은 도구가 함수 호출, 스킬이 묶음 지식이라면 서브 에이전트는 스스로 추론하고 도구를 쓰며 다시 서브 에이전트를 호출할 수 있는 존재라는 점이 가장 큰 차이라고 정리한다.