하네스Harness
하네스는 AI 코딩 도구 위에 얹어 쓰는 확장 층입니다. 모델 자체를 바꾸지 않고 도구 연결·역할 분담·작업 절차를 더해 매번 빈 입력창 앞에서 시작하지 않게 만듭니다.
- 이럴 때 만납니다
- '이 하네스 깔면 Claude Code 가 알아서 계획→구현→리뷰까지 한다'는 소개 글을 볼 때.
- 프롬프트에 쓰는 이름
- Harness · 다른 이름: 에이전트 하네스, Agent Harness, 워크플로 확장, 스킬 묶음
말에 씌우는 마구(馬具)에서 온 말입니다. 말의 능력은 그대로지만, 마구가 있어야 방향을 잡고 수레를 끕니다. 이 비유가 이 단어의 성격을 거의 다 설명합니다.
AI 코딩 도구는 기본 상태에서 못 하는 일이 꽤 있습니다. 브라우저를 열어 결과를 확인하는 일, 최신 문서를 찾아 읽는 일, 큰 작업을 단계로 쪼개는 일 — 기본으로는 하지 않습니다. 그 빈칸을 각자 채운 결과물이 하네스입니다.
- 1login/page.tsx 를 만들고 코드를 씁니다.
- 2"완성했습니다." 로 끝납니다.
어떤 종류가 있나요
성격이 꽤 다른 두 부류가 같은 이름으로 불립니다. 헷갈리면 기능을 더하나, 절차를 더하나로 나누면 됩니다.
| 기능형 | 절차형 | |
|---|---|---|
| 하는 일 | 없던 능력을 추가 | 일하는 순서를 강제 |
| 예 | 브라우저 조작, 최신 문서 조회 | 기획 검토 → 구현 → 리뷰 → 배포 |
| 대표 형태 | MCP 서버, 플러그인 | 역할별 슬래시 커맨드 모음 |
| 언제 | 구체적으로 아쉬운 기능이 있을 때 | 무엇을 시켜야 할지 모르겠을 때 |
감이 안 잡히면 이렇게 생각하면 됩니다. 기능형은 "방금 만든 화면이 제대로 나오는지 AI가 브라우저를 열어 직접 눈으로 확인하게 해 주는 것", 절차형은 "'로그인 기능 만들어줘' 한 마디에 AI가 알아서 계획 세우기 → 만들기 → 스스로 검토하기 순서를 밟게 해 주는 것"입니다.
기능형은 하나씩 필요할 때 추가하면 되고 부작용이 적습니다. 절차형은 효과가 큰 대신 그 도구가 정한 방식을 따라가게 되니 성향에 맞는지 먼저 봐야 합니다.
누가 왜 만드나요
거의 다 자기가 쓰려고 만든 것을 공개한 형태입니다. 실제로 매일 쓰는 사람이 만들어서 군더더기가 없는 대신, 그 사람과 일하는 방식이 다르면 계속 어긋납니다.
언제 얹어야 하나요
불편을 겪은 다음입니다. 순서가 바뀌면 "왜 되는지 모르는데 되는" 상태가 되고, 문제가 생겼을 때 내 코드가 잘못된 것인지 하네스가 잘못된 것인지 구분이 안 돼서 오히려 시간을 더 씁니다.
기준은 간단합니다.
- 브라우저 확인, 최신 문서처럼 구체적으로 빈 기능이면 → 기능형 하나만 추가
- 무엇을 시켜야 할지 몰라 헤매는 것이면 → 절차형이 도움됨
- 작업이 느린 것이면 → 하네스보다 대화 관리와 모델 선택을 먼저 점검
- 딱히 불편한 것이 없으면 → 아무것도 깔지 않기
AI에게 시키기
지금 내 작업에서 하네스가 필요한지 판단해줘.
- 최근 며칠 내가 반복한 작업 패턴을 먼저 정리해봐
- 그중 도구가 없어서 못 한 일과, 단순히 내가 절차를 안 정해서 헤맨 일을 구분해줘
- 전자라면 어떤 종류의 도구가 필요한지, 후자라면 어떤 순서를 정하면 되는지 제안해줘
- 지금은 아무것도 추가할 필요가 없다는 결론도 괜찮아. 억지로 추천하지 마
마지막 줄이 핵심입니다. 안 그러면 무조건 무언가를 추천합니다.
혼동 주의
- 모델 성능이 좋아지는 것이 아닙니다. 하네스는 모델이 닿는 범위와 일하는 순서를 바꿀 뿐, 추론 능력은 그대로입니다.
- MCP와 같은 말이 아닙니다. MCP는 도구를 붙이는 규격이고, 하네스는 그 규격으로 붙인 것들에 절차와 역할까지 얹은 더 넓은 개념입니다. MCP 서버 하나만 붙인 상태를 하네스라 부르지는 않습니다.
- 공짜가 아닙니다. 얹은 만큼 컨텍스트 윈도우를 쓰고, 여러 에이전트를 동시에 굴리는 종류는 토큰을 몇 배로 씁니다. 요금제를 확인하고 시작합니다.
- 많이 깔수록 좋은 것이 아닙니다. 서로 다른 하네스가 같은 메모리 파일에 규칙을 써넣으며 충돌하는 경우가 흔합니다. 하나씩, 효과를 확인하면서 늘립니다.
