삼태연구소
SAMTAELABS삼태연구소
트렌드2026년 4월 28일·7분 읽기

AI 에이전트 성능을 결정하는 건 모델이 아니라 하네스(Harness)다 (id.news.hada.io)

AI 에이전트하네스 엔지니어링Harness EngineeringAI 개발 환경Claude Code프롬프트 엔지니어링컨텍스트 관리MCP 서버AI 코딩 도구Addy Osmani
AI 에이전트 성능을 결정하는 건 모델이 아니라 하네스(Harness)다
목차(4)

한줄 요약

AI 에이전트 성능의 핵심은 모델 스펙이 아니라, 모델을 감싸는 실행 환경 설계다.

무엇이 달라지나?

AI 코딩 도구를 쓰다 보면 자연스럽게 이런 생각이 든다. "이 모델이 문제인가, 아니면 설정이 문제인가?" Addy Osmani는 이 질문에 명확한 답을 내놓는다. 지난 2년간 업계의 시선이 "어떤 모델이 더 똑똑한가"에 과도하게 쏠려 있었다는 진단이다.

그가 정리한 핵심 개념은 **하네스(Harness)**다. 모델 자체를 제외한 모든 것, 즉 시스템 프롬프트, 외부 도구, 컨텍스트 관리 정책, 자동 검사 메커니즘(hook), 샌드박스 실행 환경, 보조 AI(sub-agent), 피드백 루프, 복구 흐름까지를 통틀어 가리키는 말이다. Viv Trivedy는 이를 한 문장으로 정식화했다. "AI agent = model + harness."

Claude Code, Cursor, Codex, Aider, Kline 같은 제품들은 모두 하네스다. 내부에 동일한 모델이 들어가 있어도 우리가 체감하는 동작 품질은 하네스가 결정한다. 실제로 Claude Opus 동일 모델을 기본 하네스에서 커스텀 하네스로 교체했을 때, Terminal Bench 2.0 기준 하위권에서 상위권으로 순위가 급등한 사례가 보고됐다. Viv의 팀은 같은 모델을 30위권에서 5위권으로 끌어올렸는데, 바꾼 것은 모델이 아니라 하네스뿐이었다.

HumanLayer의 표현을 빌리면, 이건 모델 문제가 아니라 "설정 문제(skill issue)"다.

실무에서 어떤 의미인가?

하네스 엔지니어링이 실무에 시사하는 바는 크게 세 가지로 정리된다.

첫째, 실패를 규칙으로 전환하는 래칫(Ratchet) 원칙이다. AI가 한 번 저지른 실수는 우연이 아니라 영구적인 신호로 취급한다. 해당 패턴을 탐지하는 검사기를 추가하고, 규칙 문서에 한 줄을 기록하고, 자동 차단 메커니즘을 붙인다. 좋은 규칙 문서의 모든 줄은 실제로 발생한 구체적인 실패와 연결되어야 한다. 이 구조가 쌓이면 팀의 지식은 개인이 바뀌어도 하네스 안에 남는다.

둘째, 원하는 동작에서 역방향으로 설계한다. "이런 동작을 원한다 → 이를 가능하게 하는 하네스 컴포넌트는 무엇인가"의 순서로 접근한다. 한 문장으로 존재 이유를 설명할 수 없는 컴포넌트는 제거하는 것이 낫다.

셋째, 컨텍스트 관리가 하네스의 핵심 역할이다. 컨텍스트 창이 차오를수록 모델의 판단력은 눈에 띄게 떨어진다. 오래된 내용을 요약 압축하고, 대형 로그는 앞뒤만 남긴 뒤 본문을 파일로 내보내고, 도구와 지시문은 필요한 시점에만 노출하는 "점진적 공개" 방식을 쓴다. 장기 작업에서는 요약 압축만으로 부족하고, 구조화된 인수인계 문서를 만들어 새 창에서 재시작하는 방식도 권장된다.

Hook의 역할도 분명히 구분해야 한다. "AI에게 그렇게 하라고 말하는 것"과 "시스템이 그렇게 강제하는 것"은 다르다. Hook은 도구 사용 직전, 파일 수정 후, 커밋 직전 같은 시점에 자동으로 개입한다. 검사를 통과하면 아무 소리도 내지 않고, 실패하면 에러 메시지를 AI 흐름에 직접 주입해 스스로 수정하게 만든다.

AGENTS.md 같은 규칙 문서는 짧을수록 강력하다. HumanLayer는 60줄 이하를 권장한다. 길어질수록 각 줄의 비중이 희석된다. 도구도 마찬가지다. 비슷한 기능의 도구 50개보다 명확한 도구 10개가 낫다. 그리고 외부 MCP 서버를 검증 없이 붙이는 건 보안 위협이 된다. 도구 설명 텍스트 자체가 AI에게 읽히기 때문에, 악의적으로 작성된 지시문이 그 안에 숨어 있을 수 있다.

모델이 발전하면 하네스는 사라지는가? 그렇지 않다. 모델이 좋아지면 일부 컴포넌트는 불필요해지지만, 모델이 새로 닿을 수 있게 된 영역에서 새로운 약점이 드러나고, 다시 하네스가 그 자리를 채운다. Anthropic의 표현처럼, "모든 하네스 컴포넌트는 모델이 아직 혼자 못 하는 것이 무엇인지에 대한 가정을 담고 있다."

도입 전 체크포인트

하네스 엔지니어링을 본격적으로 적용하기 전에 점검할 사항들이다.

  • 현재 규칙 문서(AGENTS.md 등)가 실제 실패 사례에서 나온 것인가, 아니면 막연한 스타일 가이드인가? 후자라면 래칫 원칙부터 다시 시작해야 한다.
  • Hook이 없다면, 지금 AI에게 요청하는 것들 중 시스템이 강제해야 할 것과 그냥 요청해도 될 것을 구분하는 작업부터 시작한다.
  • 도구 개수를 세어봐라. 비슷한 기능이 중복되거나 이름이 모호한 도구가 있다면 컨텍스트 낭비다.
  • 외부 MCP 서버 출처를 검토했는가? 검증되지 않은 서버는 연결 전에 반드시 도구 설명 텍스트를 직접 확인해야 한다.
  • Harness-as-a-Service(HaaS) 옵션을 고려해봐라. Claude Agent SDK, Codex SDK, OpenAI Agents SDK처럼 루프, 컨텍스트 관리, 훅, 샌드박스를 묶어서 제공하는 도구들이 늘고 있다. 도메인 지식에 집중하고 인프라는 위임하는 선택지다.

자주 묻는 질문

Q.하네스 엔지니어링은 결국 프롬프트 엔지니어링과 다른 개념인가?

프롬프트 엔지니어링이 모델에게 "어떻게 말하느냐"에 집중한다면, 하네스 엔지니어링은 모델이 작동하는 전체 환경을 설계하는 개념이다. 시스템 프롬프트는 하네스의 한 구성 요소일 뿐이며, 도구, 메모리, 훅, 샌드박스, 피드백 루프 전체가 설계 대상이 된다. "말하는 방식"이 아니라 "일하는 구조"를 만드는 작업에 더 가깝다.

Q.모델을 교체할 때 기존 하네스를 그대로 쓸 수 있나?

주의가 필요하다. 현재 모델들은 특정 하네스 구조와 함께 훈련되는 경향이 있어, 도구 이름이나 인자 포맷이 바뀌면 성능이 예상치 못하게 떨어질 수 있다. 모델 교체 시에는 하네스를 그대로 이식하기보다 새 모델의 특성에 맞게 재조정하는 과정이 필요하다. 이것이 하네스와 모델 사이의 결합도 문제로 인식되고 있는 이유다.

Q.소규모 팀이나 개인 개발자도 하네스 엔지니어링을 적용할 수 있나?

충분히 가능하다. 오히려 소규모일수록 시작하기 쉽다. AGENTS.md를 60줄 이하로 유지하면서 실제 실패에서 규칙을 추가하는 래칫 접근은 복잡한 인프라 없이도 실천할 수 있다. Claude Agent SDK나 OpenAI Agents SDK 같은 HaaS 도구를 활용하면 루프와 컨텍스트 관리를 직접 구현하지 않아도 된다. 핵심은 "좋은 프레임워크를 가져다 그대로 쓰는 것"이 아니라 "내 코드베이스의 실패 이력에 맞게 계속 다듬는 것"이라는 점이다. 📌 원문: [GeekNews](https://id.news.hada.io/topic?id=28966) 🔗 새로운 기술 도입이나 기술 검토가 필요하다면 → [삼태연구소에 문의하기](/contact)

새로운 기술 도입, 어디서부터 시작해야 할지 고민이라면

대표 개발자가 직접 소통하고, 설계하고, 구축합니다. 중간 과정 없이 의도 그대로.

관련 아티클

관련 사례

이 글의 키워드와 맞닿은 실제 개발 사례를 함께 보세요.