Hugging Face 블로그가 5월 25일 올린 "Harness, Scaffold, and the AI Agent Terms Worth Getting Right"는 용어집 형식이지만 실질적으로는 에이전트를 만드는 사람과 운영하는 사람이 같은 단어로 같은 얘기를 하기 위한 합의 시도다. 글의 출발은 ICLR 2026 직후 저자 중 한 명(@ariG23498)이 SNS에 던진 질문이었다고 한다. "harness와 scaffold라는 단어를 학회에서 수없이 들었는데, 왜 사람마다 설명이 수렴하지 않는지 모르겠다." 그 혼란을 정면으로 다루겠다는 게 글의 선언이다.
글이 그어놓는 선은 다음과 같다. Model은 텍스트 in/out 함수다. 호출 사이에 메모리도 루프도 없고, 도구를 호출하겠다는 의도만 토큰으로 내뱉을 수 있을 뿐 실제 실행은 못 한다. Scaffold는 모델이 보는 세계 — system prompt, 도구 설명, 응답 파싱 규칙, step 간 컨텍스트 관리 같은 행동 정의 레이어다. Harness는 모델을 실제로 호출하고, tool call을 받아 라우팅하고, 언제 멈출지를 결정하는 실행 레이어다. 커뮤니티가 자주 쓰는 등식 "Agent = Model + Harness"가 그 위에 얹힌다. 한편 policy는 RL에서 그대로 가져온 "상황 → 행동 확률"이라는 함수이고, 그 일부가 모델 가중치에 학습돼 있지만 실제 행동은 scaffold와 harness가 합쳐져야 정의된다. 그래서 policy ≠ agent라는 구분이 글에서 가장 또렷하다.
이 구분이 실제로 의미를 가지는 순간은 두 군데다. 첫째, 학습 파이프라인. 학습 중 모델이 본 컨텍스트는 weight에 박혀버리기 때문에 scaffold를 잘못 잡으면 재학습이 필요하고, 추론 때는 프롬프트만 갈아 재배포하면 끝이라는 비대칭성이 있다. 같은 "context engineering"이라는 단어를 써도 학습 쪽과 추론 쪽의 실수 비용이 자릿수가 다르다. 둘째, 제품 비교. 글이 분명히 해주는 사실 — Claude Code 공식 문서가 스스로를 "agentic harness around Claude"라고 부르고, Codex 역시 자사 모델에 tightly coupled인 반면, Antigravity CLI와 Hermes Agent는 모델을 갈아끼울 수 있는 구조다. 같은 "agent"라는 단어가 락인 정도가 전혀 다른 두 부류 제품을 동시에 가리킨다는 점은 도입 결정에서 자주 흐려진다.
글이 끝부분에서 강조하는 것은 같은 모델을 다른 harness에 꽂으면 체감이 완전히 달라지고, 같은 harness에 더 좋은 모델을 꽂아도 마찬가지라는 사실이다. Claude Code, Codex, Cursor가 비슷한 카테고리에 묶이지만 다르게 느껴지는 이유가 여기로 환원된다. 그리고 eval harness — 가중치는 안 건드리고 고정된 시나리오만 돌려 metric을 기록하는 같은 패턴 — 와 orchestrator — 각자 harness를 돌리는 여러 agent를 단위로 조율하는 한 층 위의 컨트롤러 — 까지 끊어 보여줌으로써, 같은 "harness"라는 단어가 학습·추론·평가·다중 에이전트 네 군데서 다르게 쓰이는 현실을 정리한다. 용어집을 가볍게 넘기기 쉬운 글이지만, 단어가 흐릿한 채로 분기 회의를 몇 번만 보내도 같은 단어로 다른 결정을 내리게 된다. 그 비용을 줄여주는 종류의 글이다.