본문 바로가기
개발&프로그래밍

[AI Harness] AI 에이전트 런타임의 핵심 — Harness 개념과 아키텍처 완벽 가이드

by 재아군 2026. 3. 19.
반응형

 

안녕하세요! 재아군의 관찰인생입니다.

오늘은 AI Harness에 대해 깊이 있게 다뤄보겠습니다. A

I 에이전트가 실제로 동작하려면 모델 그 자체만으로는 부족합니다.

모델에게 도구를 쥐여주고, 권한을 관리하고, 실행 결과를 검증하는 런타임 환경 — 바로 그것이 AI Harness입니다.

핵심 개념부터 아키텍처, 실무 활용 전략까지 현업 개발자 관점에서 정리했습니다.

 

💡 이 글은 AI Harness 개념을 처음 접하는 분부터,
Claude Code 같은 AI 에이전트 도구를 사용하면서 "이게 내부적으로 어떻게 돌아가는 거지?"
라고 궁금했던 분 모두를 위해 작성되었습니다.


1. AI Harness란 무엇인가?

핵심 정의

AI Harness는 LLM(대규모 언어 모델)이 실제 환경에서 안전하고 효과적으로 동작할 수 있도록,
도구 실행, 권한 관리, 컨텍스트 주입, 입출력 제어를 담당하는 런타임 실행 환경입니다.

"Harness"는 본래 마구(馬具) — 말의 힘을 제어하고 방향을 잡아주는 장치를 뜻합니다.

AI Harness도 마찬가지입니다.

LLM이라는 강력한 엔진의 출력을 제어하고, 도구와 연결하고, 안전한 범위 내에서 실행되도록 관리하는 소프트웨어 계층입니다.

 

핵심을 한 문장으로 요약하면:

AI Harness는 "LLM의 두뇌에 손과 발을 달아주는 런타임"입니다.
모델이 생각하면, Harness가 실행합니다.

 

등장 배경

LLM 단독으로는 다음과 같은 한계가 있었습니다:

  • 실행 능력 부재: 모델은 텍스트를 생성할 뿐, 파일을 만들거나 API를 호출할 수 없음
  • 컨텍스트 한계: 프로젝트 전체 코드를 한 번에 읽을 수 없어, 단편적 응답만 가능
  • 안전성 부재: 모델 출력이 검증 없이 시스템에 적용되면 치명적 오류 발생 가능
  • 상태 관리 불가: 대화가 길어지면 이전 작업 결과를 잊어버려 일관성 없는 동작

 

AI Harness는 이 모든 문제를 해결하여 LLM을 "대화형 챗봇"에서 "실행 가능한 에이전트"로 진화시킵니다.

 


 

2. 핵심 특징 & 기능 분석

 

🔑 5가지 핵심 특징

 

특징 1: 도구 오케스트레이션 (Tool Orchestration)

AI Harness의 가장 핵심적인 역할은 모델에게 도구(Tool)를 제공하고 실행을 관리하는 것입니다.

Claude Code를 예로 들면, Read, Write, Edit, Bash, Grep, Glob 같은 도구들을 모델에게 제공하고,

모델이 선택한 도구를 안전하게 실행한 뒤 결과를 다시 모델에게 돌려줍니다.

 

AI Harness 도구 실행 사이클 효율성
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
도구 호출 정확도  : █████████████░░░ 85~95%
권한 검증 속도    : ████████████████ <10ms
컨텍스트 유지율   : ██████████████░░ 90% 이상
실행 안전성       : ███████████████░ 99.9%
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

 

특징 2: 권한 및 샌드박싱 (Permission & Sandboxing)

모델이 "이 파일 삭제해줘"라고 판단해도, Harness는 사용자 승인 없이 실행하지 않습니다.

도구별로 자동 허용, 승인 필요, 차단 등의 권한 레벨을 설정할 수 있으며, 위험한 명령은 샌드박스 환경에서 격리 실행됩니다.

 

권한 레벨 동작 예시
자동 허용 사용자 승인 없이 즉시 실행 파일 읽기, 검색
승인 필요 실행 전 사용자에게 확인 요청 파일 수정, 명령어 실행
차단 절대 실행하지 않음 rm -rf, 원격 서버 접근

 

특징 3: 컨텍스트 관리 (Context Management)

대화가 길어지면 모델의 컨텍스트 윈도우를 초과합니다.

Harness는 자동 요약, 메시지 압축, 관련 파일 선택적 로딩 등의 전략으로 제한된 컨텍스트 내에서 최대한 많은 정보를 유지합니다. CLAUDE.md 같은 프로젝트 설정 파일을 활용해 매 대화마다 프로젝트 맥락을 자동 주입하는 것도 Harness의 역할입니다.

 

특징 4: 에이전트 루프 (Agent Loop)

Harness의 핵심 실행 모델은 "생각 → 도구 선택 → 실행 → 결과 관찰 → 다음 판단" 의 반복 루프입니다.

모델이 한 번 응답하고 끝나는 것이 아니라, 목표를 달성할 때까지 자율적으로 여러 단계를 수행합니다.

이 루프가 AI를 단순 챗봇에서 에이전트로 만드는 핵심 메커니즘입니다.

 

특징 5: 확장 포인트 (Hooks & MCP)

Harness는 닫힌 시스템이 아닙니다. Hooks를 통해 도구 실행 전후에 커스텀 로직을 삽입하고,

MCP(Model Context Protocol)를 통해 외부 서비스를 도구로 연결할 수 있습니다.

이 확장 포인트 덕분에 Harness를 팀과 프로젝트에 맞게 커스터마이징할 수 있습니다.

 

 


 

3. AI Harness 기술 아키텍처 & 동작 원리

 

전체 구조 이해

AI Harness의 내부 아키텍처는 크게 3개 레이어로 구성됩니다:

레이어 역할 핵심 컴포넌트
Model Layer AI 추론 및 도구 선택 LLM API, 프롬프트 구성, 응답 파싱
Orchestration Layer 실행 제어 및 상태 관리 에이전트 루프, 권한 검증, 컨텍스트 관리
Execution Layer 실제 도구 실행 파일 I/O, 쉘 명령, MCP 클라이언트, Hooks

 

AI Harness 실행 흐름

사용자 입력 ("게시판 CRUD 만들어줘")
    │
    ▼
┌─────────────────────────────────┐
│  Model Layer                    │  ← 프롬프트 구성 (시스템 + 사용자 + 도구 목록)
│  "어떤 도구를 어떤 순서로       │     LLM에게 전송, 응답 수신
│   호출할지 결정"                │     도구 호출 요청 파싱
├─────────────────────────────────┤
│  Orchestration Layer            │  ← 권한 확인: 이 도구 실행해도 되나?
│  - Permission Check             │     사용자 승인 대기 (필요시)
│  - Context Window 관리          │     실행 결과를 컨텍스트에 추가
│  - Agent Loop 제어              │     목표 미달성 → 루프 계속
├─────────────────────────────────┤
│  Execution Layer                │  ← Read: schema.prisma 읽기
│  - Tool 실행                    │     Write: route.ts 생성
│  - Bash 명령어                  │     Bash: prisma migrate 실행
│  - MCP 서버 호출                │     결과 반환
└─────────────────────────────────┘
    │
    ▼
사용자에게 결과 표시 + "다음 뭐 할까요?"

 

핵심 설계 원칙

  1. 인간 중심 제어 (Human-in-the-Loop): 중요한 실행은 반드시 사용자 승인을 거쳐 AI의 자율성과 안전성을 균형 유지
  2. 점진적 신뢰 (Progressive Trust): 사용자가 권한 설정을 통해 AI의 자율 실행 범위를 단계적으로 확대
  3. 실패 복원성 (Resilience): 도구 실행 실패 시 에러를 모델에게 전달하여 대안 전략 수립 유도
  4. 투명한 실행 (Transparency): 모든 도구 호출과 결과를 사용자에게 명시적으로 보여주어 블랙박스 방지

 

 


 

4. 실무 활용 가이드

활용 사례 1: Claude Code의 Harness 구조 이해

Claude Code는 가장 대표적인 AI Harness 구현체입니다.

그 내부 구조를 이해하면 Harness 개념이 명확해집니다:

claude-code (AI Harness)
├── Agent Loop                # 핵심 실행 루프
│   ├── prompt-builder/       # 시스템 프롬프트 + 도구 정의 구성
│   ├── tool-router/          # 모델 응답에서 도구 호출 파싱 & 라우팅
│   └── context-manager/      # 컨텍스트 윈도우 관리 & 압축
├── Tools                     # 내장 도구
│   ├── Read, Write, Edit     # 파일 시스템 도구
│   ├── Bash                  # 쉘 명령어 실행
│   ├── Grep, Glob            # 검색 도구
│   └── Agent (subagent)      # 하위 에이전트 생성
├── Permission System         # 권한 관리
│   ├── settings.json         # 자동 허용 규칙
│   └── user-approval/        # 실시간 승인 UI
├── Extensions                # 확장 포인트
│   ├── Hooks                 # 도구 실행 전후 커스텀 로직
│   ├── MCP Client            # 외부 MCP 서버 연결
│   └── CLAUDE.md             # 프로젝트 컨텍스트 주입
└── Memory                    # 상태 유지
    ├── conversation/         # 대화 히스토리
    └── persistent/           # 세션 간 기억 (memory 시스템)

: CLAUDE.md 파일은 Harness가 매 대화 시작 시 자동으로 컨텍스트에 주입하는 프로젝트 설정 파일입니다.
여기에 기술 스택, 컨벤션, 자주 쓰는 명령어를 정리하면 Harness의 성능이 크게 향상됩니다.


활용 사례 2: 커스텀 AI Harness 구축하기

직접 AI Harness를 구축할 때의 핵심 구현 단계입니다:

단계 작업 내용 핵심 포인트 난이도
Step 1 LLM API 연동 + 도구 정의 도구 스키마를 JSON으로 모델에게 전달 낮음
Step 2 에이전트 루프 구현 응답 파싱 → 도구 실행 → 결과 피드백 반복 중간
Step 3 권한 시스템 추가 도구별 허용/차단/승인 필요 분류 중간
Step 4 컨텍스트 관리 구현 토큰 카운팅, 자동 요약, 선택적 로딩 높음
Step 5 확장 포인트 제공 Hooks, MCP, 플러그인 시스템 높음

 

핵심 원칙: Step 1~2만 구현해도 기본적인 AI 에이전트가 동작합니다.

권한과 컨텍스트 관리는 프로덕션 배포 전에 반드시 추가해야 합니다.

 

활용 사례 3: Harness 최적화 전략

실무에서 AI Harness 성능을 높이는 핵심 전략입니다:

  • 시스템 프롬프트 최적화: 도구 설명을 명확하게 작성하여 모델이 적절한 도구를 선택하도록 유도
  • 도구 그래뉼래리티 조정: 너무 세분화된 도구(50개+)보다 적절히 묶인 도구(15~20개)가 모델 판단 정확도 향상
  • 컨텍스트 프리로딩: 자주 참조하는 파일을 미리 컨텍스트에 포함하여 불필요한 도구 호출 감소
  • 에러 메시지 풍부화: 도구 실패 시 "왜 실패했고, 대안은 무엇인지"를 포함하여 모델의 복구 능력 강화

실전 팁: Harness의 성능은 도구 설명(description)의 품질에 가장 크게 좌우됩니다.
모델은 도구 이름이 아닌 설명을 읽고 선택하므로, 설명이 모호하면 잘못된 도구를 호출합니다.




5. 경쟁 기술 비교 분석

 

주요 AI 에이전트 런타임 비교

 

평가 항목 Claude Code Harness LangChain Agent AutoGPT OpenAI Assistants API
도구 실행 안전성 ★★★★★ (권한 시스템) ★★★ ★★ ★★★★
컨텍스트 관리 ★★★★★ (자동 압축) ★★★ ★★ ★★★★
에이전트 루프 성숙도 ★★★★★ ★★★★ ★★★ ★★★★
확장성 (MCP/Hooks) ★★★★★ ★★★★ (체인) ★★★ ★★★
프로덕션 안정성 ★★★★★ ★★★ ★★ ★★★★
학습 곡선 ★★★★ (CLI 친숙 필요) ★★★ (코드 필요) ★★★★★ (간단) ★★★★
모델 독립성 ★★★ (Claude 중심) ★★★★★ ★★★★ ★★ (OpenAI 전용)

 

어떤 상황에서 어떤 Harness를 선택해야 할까?

 

Claude Code Harness가 적합한 경우:

  • ✅ 소프트웨어 개발 작업이 주 용도일 때
  • ✅ 파일 시스템과 터미널 연동이 핵심일 때
  • ✅ 강력한 권한 관리와 안전성이 요구될 때
  • ✅ MCP로 외부 도구를 유연하게 확장하고 싶을 때

다른 Harness가 나을 수 있는 경우:

  • ❌ 여러 LLM을 자유롭게 교체하고 싶은 경우 → LangChain Agent 추천
  • ❌ 코딩 없이 빠르게 AI 에이전트를 체험하고 싶은 경우 → AutoGPT 추천
  • ❌ OpenAI 모델 기반 SaaS를 만드는 경우 → Assistants API 추천




6. 도입 시 베스트 프랙티스

반드시 지켜야 할 5가지 원칙

원칙 1: 최소 권한 원칙(Least Privilege)을 기본으로 하라

AI 에이전트에게 처음부터 모든 권한을 주지 마세요. 읽기 도구만 자동 허용하고, 쓰기/실행 도구는 승인 필요로 설정한 뒤, 안전이 확인되면 점진적으로 열어주는 방식이 안전합니다.

 

원칙 2: CLAUDE.md(프로젝트 컨텍스트)를 철저히 관리하라

Harness가 주입하는 프로젝트 컨텍스트의 품질이 에이전트 성능을 결정합니다. 기술 스택, 컨벤션, 디렉토리 구조, 금지 사항을 명확히 작성하세요. "컨텍스트가 곧 성능" 입니다.

 

원칙 3: 도구는 15~25개 범위로 유지하라

도구가 너무 많으면 모델이 선택에 혼란을 겪습니다. 너무 적으면 기능이 부족합니다. 경험적으로 15~25개가 최적의 범위이며, 이를 초과할 경우 서브 에이전트로 분리하는 것이 효과적입니다.

 

원칙 4: 에이전트 루프에 탈출 조건을 설정하라

무한 루프 방지를 위해 최대 반복 횟수, 최대 토큰 사용량, 타임아웃을 반드시 설정하세요. 에이전트가 같은 도구를 반복 호출하는 패턴이 감지되면 사용자에게 알려야 합니다.

 

원칙 5: 모든 도구 호출을 로깅하라

어떤 도구가 언제 호출되었고, 어떤 결과를 반환했는지 전체 로그를 보존해야 합니다. 문제 발생 시 디버깅에 필수적이며, 장기적으로는 Harness 최적화의 핵심 데이터가 됩니다.

 

흔한 실수와 해결 방법

실수 결과 해결 방법
모든 도구를 자동 허용 의도치 않은 파일 삭제/수정 쓰기 도구는 승인 필요로 기본 설정
프로젝트 컨텍스트 미설정 엉뚱한 기술 스택으로 코드 생성 CLAUDE.md에 기술 스택·컨벤션 명시
도구 50개 이상 등록 잘못된 도구 호출 빈발 15~25개로 제한, 나머지는 서브에이전트
무한 루프 방지 없음 토큰 폭주, 비용 급증 max iterations, timeout 필수 설정
에러를 모델에게 숨김 동일 실패 반복 에러 원문 + 대안 제시를 모델에게 전달

 

 


7. 향후 전망 & 발전 방향

 

기술 트렌드 관점

AI Harness는 현재 빠르게 진화하고 있으며, 다음과 같은 방향으로 발전이 예상됩니다:

  1. 자율 에이전트 (Autonomous Agent): 사용자 개입 최소화, Harness가 자체적으로 계획-실행-검증 사이클을 완수하는 방향으로 진화
  2. 멀티 에이전트 오케스트레이션: 하나의 Harness가 여러 전문 에이전트(프론트엔드, 백엔드, QA)를 동시에 관리하는 팀 기반 아키텍처
  3. 학습형 Harness: 사용자의 승인/거부 패턴을 학습하여 권한 설정을 자동 최적화하는 적응형 런타임
  4. 표준화 움직임: MCP처럼 Harness 계층도 표준 프로토콜이 등장하여 모델과 도구의 포터빌리티 확보

 

개발자에게 주는 시사점

AI 모델의 성능이 아무리 뛰어나도, Harness가 부실하면 에이전트는 제대로 동작하지 않습니다.

반대로 모델이 약간 부족하더라도 잘 설계된 Harness는 그 약점을 상당 부분 보완할 수 있습니다.

 

앞으로 AI 에이전트 개발에서 "어떤 모델을 쓸 것인가"만큼 "어떤 Harness를 설계할 것인가" 가 핵심 역량이 됩니다.

Harness 아키텍처를 이해하고 있으면, 어떤 AI 에이전트 프레임워크를 사용하더라도 원리를 꿰뚫을 수 있습니다.

 

 


마무리

오늘은 AI Harness의 핵심 개념, 기술 아키텍처, 실무 활용 전략, 경쟁 기술 비교,

그리고 도입 시 베스트 프랙티스까지 포괄적으로 살펴보았습니다.

 

핵심 내용을 정리하면:

  • AI Harness는 LLM에게 도구를 제공하고 실행을 제어하는 런타임으로, 에이전트의 실질적인 능력을 결정합니다
  • 3개 레이어 (Model, Orchestration, Execution)로 구성되며, 에이전트 루프가 핵심 실행 메커니즘입니다
  • 권한 관리와 컨텍스트 주입이 Harness 품질의 핵심이며, CLAUDE.md 같은 프로젝트 설정이 성능을 좌우합니다
  • "모델의 성능 = 에이전트 성능"이 아닙니다 — 잘 설계된 Harness가 모델의 약점을 보완하고 강점을 극대화합니다

여러분은 AI Harness에 대해 어떻게 생각하시나요? 직접 에이전트를 만들어본 경험이나 궁금한 점이 있다면 댓글로 공유해주세요!

 

이 글이 도움이 되셨다면 댓글과 공유 부탁드립니다!

 

다음 글에서 더 깊이 있는 내용으로 찾아뵙겠습니다. 감사합니다! 🙇‍♂️

반응형

댓글