가이드 Harness & 프로덕션
🧠 Chapter 21 / 22

Harness & 프로덕션

Agent Harness 설계, CI/CD, 프로덕션 운영.


Agent Harness란?

개념

Agent Harness = Claude 모델 주변의 실행 환경 + 도구 + 컨텍스트 관리 체계

Harness(하네스)는 원래 "마구"(말에 채우는 장비)라는 뜻입니다. AI 에이전트 맥락에서는 모델을 감싸고 제어하는 실행 환경 전체를 가리킵니다. 실무에서 "harness를 잘 설계해야 한다"고 하면, 모델 자체가 아니라 도구 구성, 컨텍스트 관리, 오류 복구 체계를 잘 만들어야 한다는 뜻입니다.

비유Claude 모델Harness
사람두뇌 (판단, 생성)몸 (손, 눈, 도구)
자동차엔진차체, 핸들, 브레이크
회사CEO조직 구조, 프로세스, 시스템

Claude Code 자체가 하나의 완성된 Agent Harness입니다. 우리가 터미널에서 claude를 실행할 때, 그 뒤에서 동작하는 것들이 바로 Harness의 구성 요소입니다.

Harness 구성 요소

구성 요소역할예시
도구(Tools)외부 세계와 상호작용Bash, Read, Write, Edit, Glob, Grep
컨텍스트 압축긴 대화에서 핵심만 유지/compact 명령
스킬 로딩전문 능력 주입CLAUDE.md, 스킬 파일
서브에이전트 스포닝하위 작업 위임Agent 도구로 서브에이전트 호출
태스크 시스템작업 추적/관리TodoWrite, 체크리스트
워크트리 격리안전한 병렬 작업Git worktree 기반 격리
권한 관리위험한 행동 차단settings.json의 allow/deny

왜 중요한가?

터미널에서 claude를 실행해 10분 대화하는 건 쉽습니다. 하지만 다음과 같은 상황에서는 Harness 설계가 필수입니다:

  • 장시간 작업: 8개 브랜드 데이터를 순차적으로 분석하는 3시간짜리 작업
  • 자동 복구: 네트워크 오류나 API 장애 시 이전 상태로 되돌리기
  • 컨텍스트 관리: 대화가 길어지면 초기 지시사항을 잊는 문제 해결
  • 보안 제어: 프로덕션 DB에 DELETE 쿼리를 실행하지 못하게 차단

Harness 설계 원칙

Anthropic 엔지니어링 블로그에서 공개한 장시간 에이전트 앱 설계 원칙을 이그니스 실무에 맞게 정리합니다.

1. 컨텍스트 관리

Claude Code의 컨텍스트 윈도우는 유한합니다 (현재 최대 1M 토큰). 대화가 길어지면 초기 지시사항을 잊거나 성능이 떨어집니다.

핵심 전략:
# 대화가 길어지면 요약해서 컨텍스트 확보
/compact

# 특정 포커스로 압축 (무엇을 기억할지 지정)
/compact 브랜드별 매출 분석 결과와 남은 작업에 집중

# 핵심 규칙은 CLAUDE.md에 넣어 매 세션마다 자동 로드
# .claude/CLAUDE.md 또는 프로젝트 루트의 CLAUDE.md

실무 팁:

  • 작업 시작 전 CLAUDE.md에 이번 작업의 목표와 제약 조건을 명시
  • 50턴 이상 대화가 진행되면 /compact로 요약
  • 핵심 규칙은 CLAUDE.md에, 일시적인 지시는 대화로 전달
  • SessionStart 훅으로 /compact 후 컨텍스트를 자동 재주입하는 패턴도 가능

2. Plan-Work-Review 사이클

장시간 작업을 "계획 - 실행 - 검토"의 반복 루프로 구조화합니다.

[Plan] 작업 목표와 단계를 정리
  |
[Work] 한 단계씩 실행
  |
[Review] 결과 검증, 에러 확인
  |
다음 단계로 -> [Plan] 으로 돌아가기

이그니스 실무 예시:

카페24 8개 브랜드 월간 보고서를 생성해줘.

진행 방식:
1. [Plan] 브랜드 목록과 데이터 파일 확인
2. [Work] 브랜드별로 하나씩 분석
3. [Review] 각 브랜드 분석 결과 검증 (수치 오류, 누락 확인)
4. 8개 브랜드 완료 후 통합 요약 생성

각 브랜드 분석 완료 시 중간 결과를 저장해줘.

3. 체크포인트: Git 커밋으로 안전망 확보

작업의 중간 단계마다 Git 커밋을 남기면, 문제가 생겼을 때 안전하게 되돌릴 수 있습니다.

# 작업 단계별 자동 커밋 요청
"한끼통살 분석 완료. 이 상태를 커밋해줘.
메시지: checkpoint - 한끼통살 분석 완료"

# 문제 발생 시 롤백
"마지막 체크포인트로 되돌아가줘"

자동화 시에는 Harness 레벨에서 단계 완료 시 자동으로 커밋하도록 설계합니다:

# 비대화형 모드에서 작업 실행 후 자동 커밋
claude -p "한끼통살 데이터 분석해줘" && git add . && git commit -m "checkpoint: 한끼통살 분석"

4. 자동 복구

장시간 작업 중 실패는 불가피합니다. Harness는 실패를 감지하고 복구하는 메커니즘을 제공합니다.

실패 유형복구 방법
API 타임아웃재시도 (최대 3회, 지수 백오프)
컨텍스트 초과/compact 후 재개
코드 에러마지막 체크포인트 커밋으로 git checkout
잘못된 결과Review 단계에서 감지 후 해당 단계 재실행

CLAUDE.md에 복구 규칙을 미리 정의해두면 Claude가 자동으로 따릅니다:

# 복구 규칙
- 파일 쓰기 실패 시: 3회 재시도 후 에러 보고
- 분석 결과가 비어 있으면: 원본 데이터 형식 재확인
- 예상 밖의 칼럼명이면: 매핑 테이블 참조 (.claude/column-map.json)

Hooks 심화

Hooks는 Claude Code의 도구 실행 전후에 자동으로 실행되는 셸 스크립트입니다. 기본편에서 기초를 다뤘다면, 여기서는 전체 Hook 종류와 고급 패턴을 다룹니다.

Hook 전체 종류

Hook실행 시점용도
PreToolUse도구 실행 전위험한 명령 차단, 입력 검증
PostToolUse도구 실행 후자동 린트, 포맷팅, 로그 기록
Notification사용자 주의가 필요할 때장시간 작업 완료 알림
StopClaude가 응답을 끝낼 때후처리, 검증 체크
SessionStart세션 시작 시환경 준비, 컨텍스트 주입
SubAgentSpawn서브에이전트 생성 시서브에이전트 환경 설정

Hook 설정 구조

.claude/settings.json에 정의합니다:
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/hooks/validate-command.sh"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
          }
        ]
      }
    ],
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"$CLAUDE_NOTIFICATION\" with title \"Claude Code\"'"
          }
        ]
      }
    ],
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "echo '오늘 날짜: '$(date +%Y-%m-%d)"
          }
        ]
      }
    ]
  }
}

Hook 환경 변수

Hook 스크립트에서 사용할 수 있는 환경 변수:

변수설명사용 가능한 Hook
CLAUDE_TOOL_INPUT도구에 전달된 입력 (JSON)PreToolUse, PostToolUse
CLAUDE_FILE_PATH대상 파일 경로PostToolUse (Write, Edit)
CLAUDE_NOTIFICATION알림 메시지 내용Notification
CLAUDE_TOOL_NAME실행된 도구 이름PreToolUse, PostToolUse

Hook 출력 처리

exitCode의미동작
0통과도구 실행 허용
0 + stdout "BLOCK"차단도구 실행 차단 + stderr를 이유로 표시
비-0에러도구 실행 차단

이그니스 실전: 위험 명령 차단 Hook

#!/bin/bash
# .claude/hooks/validate-command.sh
# PreToolUse Hook: 위험한 명령어 차단

INPUT="$CLAUDE_TOOL_INPUT"

# DROP/DELETE/TRUNCATE가 포함된 SQL 차단
if echo "$INPUT" | grep -iE "(DROP|DELETE|TRUNCATE)\s+(TABLE|FROM|DATABASE)" > /dev/null; then
  echo "BLOCK" # stdout으로 BLOCK 출력
  echo "데이터 삭제 명령이 감지되었습니다. DBA 승인이 필요합니다." >&2
  exit 0
fi

# rm -rf / 같은 위험한 시스템 명령 차단
if echo "$INPUT" | grep -E "rm\s+-rf\s+/" > /dev/null; then
  echo "BLOCK"
  echo "위험한 삭제 명령입니다." >&2
  exit 0
fi

# 프로덕션 환경 접근 차단
if echo "$INPUT" | grep -iE "production|prod\.egnis" > /dev/null; then
  echo "BLOCK"
  echo "프로덕션 환경 접근이 차단되었습니다. 스테이징을 사용하세요." >&2
  exit 0
fi

exit 0

자동 포맷팅 Hook

#!/bin/bash
# .claude/hooks/auto-format.sh
# PostToolUse Hook: 파일 저장 후 자동 포맷팅

FILE="$CLAUDE_FILE_PATH"

# 확장자별 포맷터 실행
case "$FILE" in
  *.ts|*.tsx|*.js|*.jsx)
    npx prettier --write "$FILE" 2>/dev/null
    ;;
  *.py)
    python -m black "$FILE" 2>/dev/null
    ;;
  *.json)
    python -m json.tool "$FILE" > "$FILE.tmp" && mv "$FILE.tmp" "$FILE" 2>/dev/null
    ;;
esac

exit 0

프로덕션 운영 가이드

비대화형 모드

CI/CD 파이프라인이나 스크립트에서 Claude Code를 자동으로 실행할 수 있습니다:

# 단일 명령 실행 후 종료 (-p = print mode, 비대화형)
claude -p "테스트를 실행하고 결과를 알려줘"

# 파이프로 입력 전달
cat error.log | claude -p "이 에러 분석해줘"

# git diff를 입력으로 보안 리뷰
git diff main --name-only | claude -p "변경된 파일 보안 리뷰해줘"

# 결과를 파일로 저장
claude -p "이번 달 매출 데이터를 분석해줘" > report.md

# JSON 출력 모드
claude -p "package.json 의존성 분석" --output-format json

GitHub Actions 연동

PR이 올라올 때 Claude Code가 자동으로 코드 리뷰를 수행하는 예시:

# .github/workflows/claude-review.yml
name: Claude Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Code Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          DIFF=$(git diff origin/main...HEAD)
          claude -p "다음 코드 변경사항을 리뷰해줘.
          보안, 성능, 코드 품질 관점에서 검토하고
          심각도(Critical/Warning/Info)별로 분류해줘:

          $DIFF" > review.md

      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const review = fs.readFileSync('review.md', 'utf8');
            github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.issue.number,
              body: review
            });

예약 작업

방식특징사용 시점
/schedule클라우드에서 실행 (컴퓨터 꺼져도 동작)매일/매주 정기 작업
/loop현재 세션 내에서 반복배포 모니터링, 상태 체크
Desktop 예약로컬 파일 접근 가능로컬 데이터 처리
# 5분마다 배포 상태 체크
/loop 5m 배포 상태를 확인하고 에러가 있으면 알려줘

# 매일 오전 9시 데이터 분석 (클라우드 예약)
/schedule "매일 오전 9시에 카페24 신규 주문을 분석하고 이상치를 보고해줘"

보안 체크리스트

프로덕션에서 Claude Code를 운영할 때 반드시 확인해야 할 항목:

항목확인 사항방법
API 키 보호.env에 저장, 코드에 미포함grep -r "sk-" src/로 검증
.gitignore.env, credentials 포함 여부.gitignore 확인
네트워크 접근불필요한 외부 API 호출 차단Hook으로 URL 패턴 제한
파일 접근프로젝트 외부 파일 접근 차단권한 설정 (settings.json)
명령어 제한위험한 시스템 명령 차단PreToolUse Hook
로깅모든 에이전트 행동 기록PostToolUse Hook
권한 모드적절한 permissionMode 설정strict: 모든 도구 사전 승인 필요

에이전트 분업 설계 가이드

Harness의 핵심은 하나의 큰 작업을 여러 전문 에이전트로 나누는 것입니다. 사람 조직처럼 역할을 분리하면 품질과 효율이 올라갑니다.

분업 설계 원칙

원칙설명예시
단일 책임에이전트 하나는 하나의 역할만"분석"과 "보고서 작성"을 분리
입출력 명확각 에이전트의 입력/출력을 정의입력: CSV, 출력: 분석 JSON
최소 권한필요한 도구만 부여분석 에이전트에게 Write 도구 제거
실패 격리한 에이전트 실패가 전체에 영향 없도록Worktree 격리, 타임아웃 설정

실전: 이그니스 에이전트 팀 설계

시나리오: 한끼통살 월간 성과 분석 + 보고서 + 코드 리뷰
[사용자]
   │
   ▼
[리드 에이전트] ──── 전체 작업을 조율
   │
   ├── [data-analyst] ──── 카페24 데이터 분석
   │      tools: Read, Bash, Grep
   │      입력: 카페24 주문 엑셀
   │      출력: 분석 결과 JSON + 요약 마크다운
   │
   ├── [report-writer] ──── 보고서 생성
   │      tools: Read, Write
   │      입력: 분석 결과 JSON
   │      출력: 경영진 보고서 (docx/md)
   │
   └── [qa-checker] ──── 결과물 검증
          tools: Read, Grep, Bash
          입력: 보고서 파일
          출력: 검수 결과 (오류/개선점)

에이전트 정의 파일

.claude/agents/data-analyst.md:
---
name: data-analyst
description: 카페24 주문 데이터를 분석하고 인사이트를 추출합니다
tools: Read, Bash, Grep, Glob
model: sonnet
memory: project
---
# 데이터 분석 에이전트

## 역할
카페24에서 내보낸 주문 데이터를 분석합니다.

## 작업 순서
1. input 폴더에서 엑셀/CSV 파일을 찾는다
2. 칼럼 구조를 파악하고, 불필요한 칼럼을 식별한다
3. SKU별 주문수, 매출, 평균단가를 계산한다
4. 전월 대비 증감률을 계산한다
5. 이상치(평균 대비 3배 이상)를 플래그한다
6. 결과를 output/analysis.json + output/summary.md로 저장한다

## 출력 형식
- analysis.json: 전체 분석 데이터 (구조화)
- summary.md: 핵심 인사이트 5줄 이내
.claude/agents/report-writer.md:
---
name: report-writer
description: 분석 결과를 경영진 보고서로 변환합니다
tools: Read, Write
model: sonnet
---
# 보고서 작성 에이전트

## 역할
data-analyst의 분석 결과를 경영진용 보고서로 변환합니다.

## 작업 순서
1. output/analysis.json과 output/summary.md를 읽는다
2. 경영진 보고서 구조로 재구성한다:
   - 핵심 지표 요약 (4개 KPI)
   - SKU 성과 Top 10 / Bottom 5
   - 전월 대비 변화 하이라이트
   - 권장 액션 3가지
3. output/report.md로 저장한다

## 톤
- 데이터 기반, 간결하게
- 경영진이 1분 내에 파악 가능한 분량
.claude/agents/qa-checker.md:
---
name: qa-checker
description: 생성된 보고서와 분석 결과를 검증합니다
tools: Read, Grep, Bash
model: haiku
---
# QA 검증 에이전트

## 역할
보고서의 정확성과 완성도를 검증합니다.

## 검증 항목
1. 숫자 정합성: analysis.json의 합계와 report.md의 수치 일치 여부
2. 누락 항목: 필수 섹션(KPI, Top 10, 권장 액션)이 모두 있는지
3. 형식: 날짜 형식, 금액 단위(₩), 천 단위 콤마 확인
4. 오탈자: 브랜드명, SKU명 오타 검출

실행 방법

방법 1: 서브에이전트 체이닝 (순차)
1. data-analyst 에이전트로 input 폴더의 3월 데이터를 분석해줘
2. 분석이 끝나면 report-writer로 보고서 만들어줘
3. 보고서가 나오면 qa-checker로 검증해줘
방법 2: Agent Teams (병렬 + 협업)
에이전트 팀을 만들어줘:
- data-analyst: 3월 데이터 분석
- report-writer: 분석 완료 후 보고서 작성
- qa-checker: 보고서 완료 후 검증

data-analyst가 끝나면 report-writer가 시작하고,
report-writer가 끝나면 qa-checker가 검증해줘.
방법 3: CLI 비대화형 파이프라인
# 분석
claude -p "data-analyst 에이전트로 input/ 폴더 분석해줘"

# 보고서
claude -p "report-writer 에이전트로 output/analysis.json 기반 보고서 만들어줘"

# 검증
claude -p "qa-checker 에이전트로 output/report.md 검증해줘"

에이전트 수 결정 기준

상황추천 방식이유
간단한 단일 작업서브에이전트 없이 직접오버헤드 불필요
2-3단계 순차 작업서브에이전트 체이닝각 단계 결과를 확인하며 진행
독립적 병렬 작업서브에이전트 병렬리서치, 코드 탐색 등
팀원 간 소통 필요Agent Teams리뷰, 피드백 교환
CI/CD 자동화CLI 비대화형스크립트로 파이프라인 구성

고급 패턴

Worktree 격리

에이전트가 별도 Git worktree에서 작업하면 메인 브랜치를 안전하게 보호할 수 있습니다.

수동 워크트리 관리:
# 에이전트 전용 worktree 생성
git worktree add ../agent-workspace -b agent/feature-landing

# 해당 worktree에서 Claude Code 실행
cd ../agent-workspace && claude -p "랜딩 페이지를 구현해줘"

# 검토 후 메인 브랜치에 머지
cd ../main-project && git merge agent/feature-landing

# 작업 완료 후 worktree 정리
git worktree remove ../agent-workspace
서브에이전트에서 자동 워크트리 격리:
---
name: feature-builder
description: 기능을 별도 워크트리에서 안전하게 구현합니다
tools: Read, Write, Edit, Bash, Glob, Grep
isolation: worktree
---
isolation: "worktree"를 설정하면 서브에이전트가 자동으로 별도 Git 워크트리를 생성하여 작업합니다. 변경 사항이 없으면 워크트리가 자동으로 정리됩니다.

컨텍스트 엔지니어링

장시간 작업에서 컨텍스트를 효과적으로 관리하는 패턴:

패턴 1: SessionStart 훅으로 컨텍스트 자동 주입
{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "cat .claude/context-briefing.md"
          }
        ]
      }
    ]
  }
}
패턴 2: CLAUDE.md + Agent Memory 조합
# CLAUDE.md
## 프로젝트 컨텍스트
- 이 프로젝트는 이그니스의 8개 브랜드 관리 시스템입니다
- 프로젝트 히스토리는 .claude/agent-memory/ 를 참조하세요
- 알려진 이슈는 .claude/known-issues.md 를 참조하세요
패턴 3: /compact 후 포커스 재지정
/compact 현재까지의 분석 결과와 남은 브랜드 목록에 집중

# compact 후 즉시 다음 지시
이제 랩노쉬 데이터를 분석해줘.
이전 분석 결과는 output/한끼통살/ 폴더에 있어.

멀티에이전트 오케스트레이션

패턴 1: 서브에이전트 체이닝 (순차 실행)
다음 순서로 진행해줘:
1. cafe24-analyst로 3월 데이터 분석
2. 분석 결과를 brand-reporter에게 전달해서 보고서 생성
3. 생성된 보고서를 code-reviewer로 마크다운 품질 검토
패턴 2: 병렬 리서치
다음 3가지를 동시에 조사해줘 (각각 서브에이전트 사용):
- API 문서에서 rate limit 정책 확인
- 기존 코드에서 에러 핸들링 패턴 분석
- 테스트 커버리지 현황 파악
패턴 3: Worktree + Agent Teams (완전 격리 병렬 개발)
에이전트 팀으로 다음 3개 기능을 동시에 개발해줘.
각 팀원은 별도 worktree에서 작업하고, 완료 후 PR을 생성해줘.

- 팀원 A: /features/auth 모듈 리팩토링
- 팀원 B: /features/dashboard 신규 위젯 추가
- 팀원 C: /features/export CSV 내보내기 기능

이그니스 실전 통합 시나리오

지금까지 배운 개념을 하나의 시나리오로 통합합니다.

시나리오: 월간 브랜드 성과 보고 자동화

매월 1일, 8개 브랜드의 전월 성과를 자동으로 분석하고 보고서를 생성하는 파이프라인입니다.

파이프라인 구성:
[GitHub Actions - 매월 1일 09:00 KST 실행]
  |
  |-- 1단계: cafe24-analyst (서브에이전트)
  |     +-- 카페24 데이터 다운로드 및 1차 분석
  |     +-- 브랜드별 summary.json 생성
  |
  |-- 2단계: brand-reporter (서브에이전트)
  |     +-- summary.json 기반 브랜드별 보고서 생성
  |     +-- 전월 대비 변동 분석
  |
  +-- 3단계: 메인 에이전트
        +-- 8개 브랜드 보고서 통합
        +-- 경영진용 요약본 (1페이지) 생성
        +-- GitHub PR로 결과물 공유
GitHub Actions 설정:
name: Monthly Brand Report
on:
  schedule:
    - cron: '0 0 1 * *'  # 매월 1일 09:00 KST (UTC 00:00)

jobs:
  generate-report:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Generate Monthly Report
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude -p "월간 브랜드 성과 보고서를 생성해줘.

          1단계: data/ 폴더의 카페24 데이터를 cafe24-analyst로 분석
          2단계: 분석 결과를 brand-reporter로 전달해 보고서 생성
          3단계: 8개 브랜드 통합 요약 생성
          4단계: reports/ 폴더에 저장

          각 단계 완료 시 체크포인트 커밋."

정리: 단계별 도입 가이드

단계내용난이도예상 소요
1단계CLAUDE.md 작성, /compact 활용입문30분
2단계Hooks로 위험 명령 차단중급1시간
3단계서브에이전트 정의 및 활용중급2시간
4단계비대화형 모드로 스크립트 자동화중급1시간
5단계GitHub Actions CI/CD 연동고급반나절
6단계Agent Teams 구성고급반나절
7단계Worktree 격리 + Memory 시스템고급반나절
8단계프로덕션 파이프라인 구축고급1일

1~2단계는 오늘 당장 시작할 수 있습니다. 기본편에서 기초를 익힌 뒤, 이 장의 패턴을 하나씩 적용해보세요.


참고 자료

자료설명링크
Claude Code 공식 문서Subagent, Hooks, Teams 레퍼런스[code.claude.com/docs](https://code.claude.com/docs)
Anthropic Harness 설계장시간 에이전트 앱 설계 원칙[anthropic.com/engineering](https://www.anthropic.com/engineering/harness-design-long-running-apps)
Agent Teams 문서에이전트 팀 공식 가이드[code.claude.com/docs/agent-teams](https://code.claude.com/docs/en/agent-teams)
Sub-agents 문서서브에이전트 공식 가이드[code.claude.com/docs/sub-agents](https://code.claude.com/docs/en/sub-agents)
Hooks 가이드훅 설정 공식 가이드[code.claude.com/docs/hooks](https://code.claude.com/docs/en/hooks)
everything-claude-codeClaude Code 패턴, 팁 커뮤니티 모음[GitHub](https://github.com/affaan-m/everything-claude-code)

퀴즈

이 챕터의 핵심 내용을 확인해보세요

1

Agent Harness에서 Claude 모델이 "두뇌"라면 Harness는 무엇에 해당하나?