AIBeginnerX
ESC

검색어를 입력하세요

↑↓ 이동 · ↵ 열기 · ESC 닫기 Powered by Pagefind

№ 003 · · 2분 읽기

하네스 엔지니어링 — AI 에이전트의 신뢰성을 만드는 법

AI 에이전트 하네스(Harness)란 무엇인가. 평가, 가드레일, 툴 통합, 컨텍스트 관리까지 — 신뢰할 수 있는 에이전트를 만드는 핵심 개념.

By AIBeginnerX
#하네스#평가#테스트

하네스(Harness) — AI 에이전트의 보이지 않는 인프라

하네스는 AI 모델을 둘러싼 모든 인프라 코드를 말합니다. 사람에게 비유하면 “작업 환경”이죠.

왜 하네스가 중요한가

같은 모델이라도 하네스에 따라 결과가 완전히 달라집니다.

GPT-5 + 잘 짜인 하네스 > GPT-5 + 단순한 chat completion

Anthropic이 말하는 “agentic harness engineering”은 에이전트의 90% 성능이 하네스 설계에서 나온다는 관점이에요.

하네스의 5가지 핵심 레이어

1. 컨텍스트 관리

  • 대화 이력 압축 (sliding window, summarization)
  • 토큰 예산 배분
  • 시스템 프롬프트 모듈화

2. 도구 통합

  • 함수 호출 스키마 정의
  • 도구 실행 결과 검증
  • 실패 시 재시도 / 폴백 전략

3. 평가 / 가드레일

  • 입력 검증 (프롬프트 인젝션 방어)
  • 출력 검증 (스키마, 포맷)
  • 정책 위반 감지

4. 트레이싱 / 옵저버빌리티

  • 모든 LLM 호출 로깅
  • 단계별 latency 측정
  • 실패 패턴 분석

5. 비용 / 성능

  • 모델 라우팅 (저렴한 모델 먼저, 어려운 건 고성능)
  • 캐싱 (semantic cache, exact match)
  • 배치 처리

간단한 하네스 예시

class SimpleHarness:
    def __init__(self, model, tools):
        self.model = model
        self.tools = tools
        self.trace = []

    def run(self, user_input, max_steps=5):
        messages = [{"role": "user", "content": user_input}]
        for step in range(max_steps):
            response = self.model(messages, tools=self.tools)
            self.trace.append({"step": step, "response": response})

            if response.finish_reason == "stop":
                return response.content, self.trace

            # 도구 실행
            tool_result = self.tools[response.tool_name](**response.tool_args)
            messages.append({"role": "tool", "content": tool_result})

        raise TimeoutError("max steps reached")

다음 글에서

  • LangSmith로 하네스 트레이싱 시작하기
  • 평가 데이터셋 만들기 — 사람이 평가하는 일 최소화하기
  • 프롬프트 인젝션 방어 — 입력 sanitization 패턴

Colophon

Set in Source Serif 4 & Fraunces. Printed on warm paper.

— 끝 —

💬 댓글 기능

GitHub Discussions로 댓글을 받으려면 README의 Giscus 설정 안내를 따라주세요. (5분이면 끝나요)