
LLM이 단순히 질문에 답하던 시대를 지나, 이제는 직접 코드를 고치고 외부 API를 호출하는 AI에이전트로 발전하고 있습니다. 그런데 모델이 똑똑해질수록 운영은 오히려 까다로워졌습니다. 같은 요청에도 결과가 달라지고, 위험한 명령을 실행하기도 하며, 같은 실수를 반복하기도 합니다.
그래서 이를 제어하기 위해 최근 떠오른 개념이 바로 ‘하네스 엔지니어링’입니다. 이 글에서는 하네스 엔지니어링이 무엇인지, 왜 필요한지, 어떻게 설계하는지, 어디에 쓰이고 있는지, 모니터링과 어떻게 연결되는지를 차근차근 풀어드립니다.
하네스(Harness)는 원래 말에게 채우는 마구(馬具)를 뜻합니다. 아무리 힘이 센 말이라도 마구가 없으면 밭을 갈거나 수레를 끌 수 없습니다. 방향을 잡아주고, 힘을 통제하고, 원하는 목적지까지 이끌어주는 장치가 필요합니다.
AI도 마찬가지입니다. 아무리 성능이 뛰어난 모델이라도 적절한 통제 장치와 실행 환경이 없다면 실제 업무에 안정적으로 활용하기 어렵습니다. 하네스 엔지니어링은 모델 자체를 만드는 일이 아니라, 모델이 실제로 일을 잘할 수 있도록 작업 환경과 실행 규칙을 설계하는 일입니다.
예를 들어 AI에게 “앱을 만들어 줘”라고 지시하는 상황을 생각해보겠습니다. 단순히 요청만 던진다고 해서 좋은 결과가 나오는 것은 아닙니다. AI가 어떤 파일을 먼저 읽어야 하는지, 어떤 도구를 사용할 수 있는지, 어떤 명령은 실행하면 안 되는지, 중간에 실패하면 어떻게 다시 시도할지, 최종 결과는 어떤 기준으로 검증할지까지 설계되어 있어야 합니다.

이처럼 AI 에이전트를 둘러싼 실행 규칙, 권한, 도구, 검증 절차, 작업 흐름 전체를 설계하는 것이 하네스 엔지니어링입니다.
HashiCorp 공동창업자이자 Terraform·Ghostty의 제작자인 Mitchell Hashimoto는 이를 한 줄 공식으로 정리했습니다.
Agent = Model + Harness
즉, 에이전트는 모델만으로 완성되지 않습니다. 모델을 제외한 나머지 요소들, 예를 들어 시스템 프롬프트, 사용 가능한 도구, 권한 정책, 샌드박스, 메모리, 검증 루프 등이 모두 하네스에 해당합니다.
AI 모델이 똑똑한 신입사원이라면, 하네스는 그 신입사원이 일할 수 있도록 마련된 회사의 업무 환경에 가깝습니다. 업무 매뉴얼이 없고, 자료는 흩어져 있고, 사용할 도구도 연결되어 있지 않다면 아무리 똑똑한 사람도 제대로 일하기 어렵습니다.
하네스 엔지니어링과 프롬프트 엔지니어링은 설계 대상부터 지속성, 재사용성, 최종 목적까지 여러 면에서 다릅니다. 그중에서도 가장 본질적인 차이는 지속성입니다.
프롬프트는 보통 특정 채팅이나 작업 단위에서 사용됩니다. 세션이 끝나면 사라지거나, 다음 작업에서는 다시 작성해야 하는 경우가 많습니다. 반면 하네스는 파일로 저장되고, Git에 남으며, 팀원과 공유되고, 모델이 바뀌어도 재사용할 수 있습니다.
프롬프트 엔지니어링이 “이번 한 번 잘 답하게 만드는 기술”이라면, 하네스 엔지니어링은 “앞으로도 같은 방식으로 안전하게 일하게 만드는 시스템”입니다.
2. 왜 하네스 엔지니어링이 필요한가?하네스 없이 AI 에이전트를 운영하면 몇 가지 문제가 반복적으로 발생합니다.
LLM은 기본적으로 비결정적입니다. 같은 요청을 해도 매번 다른 방식으로 판단하고 실행할 수 있습니다. 단순 답변이라면 큰 문제가 아닐 수 있지만, 코드 수정이나 파일 삭제, API 호출처럼 실제 시스템에 영향을 주는 작업에서는 위험이 커집니다.
에이전트가 어떤 명령을 실행할 수 있는지, 어떤 데이터에 접근할 수 있는지 통제하지 않으면 민감한 정보가 유출되거나 파일이 잘못 변경되는 일, 운영 환경에 함부로 접근하는 일 같은 문제가 발생할 수 있습니다.
AI에게 모든 정보를 한 번에 넣어주는 방식은 오래 지속되기 어렵습니다. 어떤 정보를 항상 제공해야 하고, 어떤 정보는 필요할 때만 불러와야 하는지 설계하지 않으면 비용과 응답 속도 모두 악화됩니다.
에이전트가 한 번 실수했을 때 그 원인을 기록하고 규칙으로 반영하지 않으면, 다음 작업에서도 같은 문제가 다시 발생할 수 있습니다. 하네스가 없으면 실패가 학습으로 이어지기 어렵습니다.
결국 하네스의 핵심 역할은 명확합니다.
비결정적인 모델 출력을 결정적인 시스템 동작으로 바꾸는 것
AI 에이전트가 실제 업무 환경에서 안정적으로 동작하려면, 모델의 지능만 믿는 것이 아니라 그 지능이 움직이는 환경을 설계해야 합니다. 이것이 하네스 엔지니어링이 필요한 이유입니다.

하네스 설계는 보통 다섯 단계로 나누어 접근할 수 있습니다. 처음부터 거창한 시스템을 만들 필요는 없습니다. 작은 규칙에서 시작해 점진적으로 확장하는 방식이 현실적입니다.

가장 먼저 해야 할 일은 에이전트가 할 수 있는 일과 절대 해서는 안 되는 일을 명확히 정하는 것입니다. 프로젝트 루트에 CLAUDE.md, AGENTS.md와 같은 설정 파일을 만들고, 에이전트가 따라야 할 기본 규칙을 적어둘 수 있습니다. 처음에는 복잡한 정책이 아니어도 됩니다.
예를 들어 다음과 같은 규칙부터 시작할 수 있습니다.
중요한 것은 완벽한 규칙을 처음부터 만드는 것이 아니라, 반복되는 실수를 규칙으로 남기는 습관을 만드는 것입니다.
다음으로는 에이전트가 실제로 어떻게 행동하는지 추적해야 합니다. 어떤 도구를 호출했는지, 어떤 순서로 작업을 진행했는지, 어디서 실패했는지, 어떤 명령이 차단되었는지 기록해야 합니다. 이 데이터가 있어야 이후 안전장치와 검증 로직을 설계할 수 있습니다. 하네스는 감으로 만드는 것이 아닙니다. 실제 에이전트의 행동 로그를 기반으로 개선되어야 합니다.
이후에는 작업 흐름 곳곳에 자동 검증 장치를 심어야 합니다. 이를 보통 라이프사이클 훅(Lifecycle Hooks)이라고 부릅니다.
예를 들어 에이전트가 git push --force 같은 위험 명령을 실행하려고 할 때, PreToolUse 훅에서 이를 차단할 수 있습니다. 코드 수정 후에는 PostToolUse 훅에서 자동으로 린트나 테스트를 실행할 수 있습니다.
핵심 원칙은 기본은 거절(Default Deny)입니다. 모델이 아무리 똑똑하더라도 정책을 우회할 수 없도록 시스템 차원에서 강제해야 합니다.
AI 에이전트는 실제 파일, 코드, API, 데이터베이스에 접근할 수 있습니다. 따라서 반드시 격리된 환경에서 실행해야 합니다.
에이전트를 샌드박스 안에서 실행해 호스트 시스템에 직접 접근하지 못하게 하고, 개인정보나 자격 증명 같은 민감 데이터는 별도로 필터링해야 합니다. 또한 운영 환경과 개발 환경을 명확히 분리하고, 에이전트가 접근할 수 있는 범위를 최소화해야 합니다. AI 에이전트에게 필요한 것은 무제한 권한이 아니라, 업무 수행에 필요한 최소 권한입니다.
마지막 단계는 검증과 학습입니다. 에이전트가 실수했을 때 그 내용을 로그로 남기고, 다음에는 같은 실수가 반복되지 않도록 규칙에 반영해야 합니다. 예를 들어 에이전트가 테스트 없이 코드를 수정했다면, AGENTS.md에 “코드 수정 후 반드시 테스트 실행”이라는 규칙을 추가할 수 있습니다.
이처럼 하네스는 한 번 만들고 끝나는 시스템이 아닙니다. 운영하면서 계속 개선되는 시스템입니다.
하네스 엔지니어링은 이론적인 개념에 그치지 않습니다. 이미 여러 글로벌 기업이 자사의 실제 운영 환경에 하네스를 적용해 코드 작성과 장애 대응 같은 핵심 업무를 AI 에이전트에게 맡기고 있습니다. 대표적인 두 가지 사례를 살펴보겠습니다.
결제 회사 Stripe는 ‘Minions’라고 부르는 자율 코딩 에이전트 시스템을 운영하고 있습니다. 엔지니어가 슬랙(Slack) 메시지에 이모지 하나를 추가하는 것만으로 작업을 지시하면, Minion이 알아서 코드를 수정하고 PR(Pull Request)을 생성합니다.
현재 이 시스템은 주당 1,300건 이상의 PR을 만들어내고 있으며, 모든 코드는 사람이 리뷰하지만 사람이 직접 작성한 코드는 한 줄도 없습니다. 외부 분석에 따르면 이 중 상당수가 사람의 수정 없이 그대로 머지되는 것으로 알려져 있습니다.
핵심은 모델보다 그 주변에 설계한 하네스 구조에 있습니다. Stripe의 하네스는 다음과 같이 동작합니다.
이 사례가 보여주는 것은, AI가 코드를 작성한다는 사실 자체보다 그 코드가 안전하게 생성·검증·머지될 수 있도록 여러 계층의 하네스가 설계되어 있다는 점입니다.

Microsoft는 클라우드 운영의 장애 대응 업무를 자동화하기 위해 Azure SRE Agent를 개발해 운영 중입니다. 운영 환경에서 알람이 발생하면 에이전트가 자동으로 로그·메트릭·텔레메트리를 분석하고, 근본 원인을 추론한 뒤 가드레일 안에서 복구 작업을 수행하거나 사람에게 승인을 요청합니다.
내부 적용 결과는 구체적인 숫자로 공개되어 있습니다.
이 시스템에서 주목할 부분은 ‘Agent Hooks’라는 거버넌스 장치입니다. 도구 실행 직후 작동하는 PostToolUse 훅은 위험한 명령을 차단하고, 작업 종료 시점의 Stop 훅은 응답 품질을 검증합니다. 또한 모든 에이전트 동작은 감사 추적을 위한 로그로 남기기 때문에 자동화와 통제를 동시에 구현할 수 있습니다.
여기서 핵심은 더 똑똑한 모델이 아니라, 운영 환경에 맞춰 설계된 하네스입니다. 즉 권한 정책, 안전장치, 감사 로그, 사람이 승인하는 단계가 결합되어야 실제 운영 환경에서 AI 에이전트를 사용할 수 있습니다.
.png)
두 가지 사례 모두 공통적으로 보여주는 것은 동일합니다. 강력한 모델만으로는 충분하지 않습니다. 모델을 둘러싼 샌드박스, 결정적 게이트, 검증 루프, 감사 로그, 사람의 승인 절차까지 함께 설계되어야 비로소 AI 에이전트가 실제 업무 환경에서 안정적으로 동작합니다. 이것이 지금 글로벌 기업들이 ‘하네스 엔지니어링’에 투자하고 있는 이유입니다.
하네스를 잘 설계하는 것만으로는 충분하지 않습니다. 그 안에서 실제로 무슨 일이 일어나고 있는지 볼 수 없다면 하네스 자체가 또 다른 블랙박스가 될 수 있기 때문입니다. 예를 들어 다음과 같은 질문에 답할 수 있어야 합니다.
이때 필요한 것이 옵저버빌리티(Observability)입니다. AI 에이전트 운영 환경에서는 단순한 로그 수집만으로 충분하지 않습니다. 모델 호출, 토큰 사용량, 도구 호출, 인프라 리소스, GPU 사용률, 애플리케이션 성능, 장애 원인까지 함께 볼 수 있어야 합니다.
와탭랩스(WhaTap Labs)는 AI 시대의 운영을 위해 LLM 호출과 토큰 사용량 추적, 에이전트의 도구 호출과 실패 패턴 분석, GPU·인프라 리소스 사용률 모니터링, 애플리케이션 성능과 장애 원인까지 한 화면에서 볼 수 있는 옵저버빌리티 서비스를 제공합니다.
하네스가 자동차의 브레이크라면, 모니터링은 계기판입니다. 브레이크가 있어도 속도와 상태를 볼 수 없다면 안전하게 운전하기 어렵습니다. 반대로 계기판만 있고 제어 장치가 없다면 위험을 막을 수 없습니다.
AI 에이전트 시대의 안정적인 운영을 위해서는 하네스와 모니터링이 함께 설계되어야 합니다.
AI 모델의 성능은 빠르게 상향 평준화되고 있습니다. 앞으로 기업의 경쟁력은 단순히 “누가 더 좋은 모델을 쓰느냐”보다, 누가 모델을 더 안정적으로 통제하고 업무에 연결할 수 있는 시스템을 갖췄느냐에서 갈릴 가능성이 큽니다.
개발자의 역할도 함께 변하고 있습니다. 코드를 직접 타이핑하는 시간은 줄어들고, AI 에이전트가 일할 수 있는 환경을 설계하고, 결과를 검증하고, 운영 상태를 감시하는 시간이 늘어나고 있습니다.
처음부터 거창하게 시작할 필요는 없습니다. 프로젝트 루트에 CLAUDE.md 또는 AGENTS.md 파일 하나를 만들고, “절대 하지 말 것” 3가지만 적어보는 것만으로도 충분한 출발점이 됩니다. 에이전트가 실수할 때마다 한 줄씩 규칙을 추가하고, 반복되는 실패를 검증 로직으로 바꾸고, 실제 운영 데이터를 기반으로 하네스를 개선해 나가면 됩니다. 그렇게 쌓인 규칙과 실행 환경이 바로 우리 팀의 하네스가 됩니다.
하네스를 설계했다면, 이제 그 안에서 일어나는 일을 들여다볼 차례입니다.와탭의 AI 모니터링을 14일간 무료로 사용해보세요.

다릅니다. 프롬프트 엔지니어링은 모델에게 어떤 지시를 내릴지 설계하는 작업입니다. 반면 하네스 엔지니어링은 모델이 어떤 환경에서, 어떤 권한으로, 어떤 도구를 사용해, 어떤 검증 절차를 거쳐 일하게 할지를 설계하는 작업입니다.
프롬프트가 “이번 작업을 잘 수행하게 만드는 지시문”이라면, 하네스는 “앞으로도 같은 기준으로 안전하게 일하게 만드는 시스템”입니다.
있습니다. 오히려 작은 팀일수록 효과를 빠르게 체감할 수 있습니다. 처음부터 복잡한 시스템을 만들 필요는 없습니다. CLAUDE.md나 AGENTS.md 파일에 빌드 명령, 코드 컨벤션, 절대 하지 말아야 할 작업 몇 가지만 적어도 충분한 출발점이 됩니다.
이후 에이전트가 같은 실수를 반복할 때마다 규칙을 한 줄씩 추가하면 됩니다. 하네스는 대규모 조직만을 위한 개념이 아니라, AI 에이전트를 안정적으로 활용하려는 모든 팀을 위한 운영 방식입니다.
그렇지 않습니다. 하네스는 사전에 예상한 위험을 차단하는 예방 시스템입니다. 하지만 실제 운영 환경에서는 예상하지 못한 실패 패턴이 반드시 발생합니다.
모니터링이 없으면 에이전트가 왜 실패했는지, 어떤 도구 호출에서 병목이 생겼는지, 어떤 규칙이 과도하게 차단하고 있는지, GPU나 인프라 리소스가 어디서 낭비되고 있는지 파악하기 어렵습니다. 하네스를 개선하려면 근거 데이터가 필요합니다. 그래서 하네스 엔지니어링과 옵저버빌리티는 함께 가야 합니다.