Skip to main content

배포 아키텍처

┌─────────────────────────────────────────────────┐
│                 Model Serving                     │
│  ┌───────────────────────────────────────────┐   │
│  │         Supervisor Agent Endpoint          │   │
│  │                                           │   │
│  │  ┌─────────────┐  ┌─────────────────────┐│   │
│  │  │ KA Endpoint  │  │ Genie Space (API)   ││   │
│  │  └──────┬──────┘  └──────────┬──────────┘│   │
│  │         │                     │           │   │
│  │  ┌──────┴──────┐  ┌──────────┴──────────┐│   │
│  │  │Vector Search│  │  SQL Warehouse      ││   │
│  │  │   Index     │  │  (UC Tables)        ││   │
│  │  └─────────────┘  └─────────────────────┘│   │
│  └───────────────────────────────────────────┘   │
│                                                   │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐ │
│  │ UC Functions│  │ MCP Servers│  │  MLflow    │ │
│  └────────────┘  └────────────┘  │  Monitoring │ │
│                                   └────────────┘ │
└─────────────────────────────────────────────────┘

워크스페이스 간 마이그레이션

Knowledge Assistant를 다른 워크스페이스로 복제해야 할 경우:
  1. 타겟 워크스페이스에 필요한 리소스를 먼저 생성 (Vector Search Index, Volume 등)
  2. 소스 워크스페이스에서 SDK로 설정 정보 조회
  3. 타겟 워크스페이스에서 create_knowledge_source API로 재생성
  4. Instructions, Examples 데이터도 Export/Import하여 이전
  5. 타겟 워크스페이스에서 AI Judge로 동일한 품질 수준인지 검증

평가가 Agent Bricks에서 특히 중요한 이유

일반적인 소프트웨어에서는 유닛 테스트와 통합 테스트로 품질을 보장합니다. 하지만 AI 에이전트는 비결정적(non-deterministic) 시스템이므로, 동일한 입력에도 다른 출력이 나올 수 있습니다. 이 특성이 Agent Bricks에서 평가를 특히 중요하게 만드는 이유입니다.

AI 에이전트 평가의 고유한 어려움

어려움설명Agent Bricks 대응
비결정적 출력같은 질문에 다른 답변이 생성될 수 있음AI Judge가 “의미적 동등성”으로 평가 (단어 일치가 아닌 의미 일치)
주관적 품질”좋은 답변”의 기준이 도메인마다 다름Guidelines로 도메인별 품질 기준 정의 가능
다단계 파이프라인검색 실패 vs 생성 실패를 구분해야 함Tracing으로 각 단계별 품질을 개별 추적
멀티 에이전트 복잡성라우팅 오류, 컨텍스트 전달 실패 등 다양한 실패 모드Supervisor Trace에서 라우팅 판단 과정 확인
시간 경과에 따른 변화데이터 업데이트, 모델 변경으로 품질이 변동자동 최적화 + 정기 평가 루프

평가하지 않으면 발생하는 문제

에이전트 배포 → 사용자 불만 접수 → 원인 파악 불가 → 긴급 패치 →
다른 질문 품질 저하 → 사용자 신뢰 상실 → 프로젝트 폐기

vs.

에이전트 구축 → 평가 데이터셋 준비 → AI Judge 자동 평가 →
목표 미달 항목 개선 → 재평가 통과 → 배포 → 정기 모니터링 →
지속적 품질 유지
위험 평가 없이 배포하는 것은 테스트 없이 코드를 프로덕션에 배포하는 것과 같습니다. Agent Bricks의 AI Judge는 이 과정을 자동화해주므로, 반드시 활용하세요. 최소 50개 이상의 테스트 케이스로 평가한 후 배포하는 것을 권장합니다.

평가 데이터셋 설계 전략

평가의 품질은 평가 데이터셋의 품질 에 의해 결정됩니다. 좋은 평가 데이터셋을 설계하는 전략을 상세히 알아봅니다.

데이터셋 구성 원칙

원칙설명예시
대표성실제 사용자 질문 패턴을 반영단순 조회, 비교 질문, 복합 질문을 균등 배분
다양성다양한 주제, 난이도, 형식을 포함쉬운 FAQ + 어려운 분석 질문 + 에지 케이스
균형긍정/부정 케이스를 모두 포함답변 가능한 질문 + “문서에 없는” 질문
현실성인위적이지 않은 자연스러운 질문오타, 약어, 구어체 포함
추적 가능성각 테스트 케이스의 출처와 의도 기록태그: “FAQ”, “에지케이스”, “다국어” 등

질문 카테고리별 비율 권장사항

카테고리비율설명예시 질문
직접 조회30%문서/데이터에 명확한 답이 있는 질문”연차 일수는 몇 일인가요?”
추론 필요20%여러 정보를 종합해야 하는 질문”3년차 직원의 연차 + 특별 휴가 합계는?”
비교/분석15%두 가지 이상을 비교하는 질문”A 정책과 B 정책의 차이점은?”
범위 외 질문15%에이전트가 답변할 수 없어야 하는 질문”내일 날씨는?” (HR봇에 대한 질문)
모호한 질문10%의도가 불명확한 질문”그거 알려줘”
에지 케이스10%극단적이거나 예외적인 질문매우 긴 질문, 특수문자 포함, 다국어 혼합

Synthetic Task Generation 활용 전략

Synthetic Task Generation은 Knowledge Source를 분석하여 질문을 자동 생성합니다. 그러나 이것만으로는 충분하지 않습니다. 효과적인 활용 방법:
1단계: Synthetic Task Generation으로 50~100개 초기 질문 생성

2단계: SME가 생성된 질문을 검토
    - 부자연스러운 질문 삭제 (약 20~30%)
    - 실제 사용자 질문 패턴에 맞게 수정

3단계: SME가 누락된 카테고리의 질문 수동 추가
    - 범위 외 질문 (Synthetic에서 잘 생성되지 않음)
    - 모호한 질문
    - 에지 케이스

4단계: 각 질문에 Guidelines 추가
    - "응답에 정책명이 포함되어야 합니다"
    - "수치 데이터가 정확해야 합니다"
    - "인용 출처가 올바르게 매핑되어야 합니다"

5단계: UC 테이블로 Export하여 버전 관리
    - 에이전트 업데이트 시 동일 데이터셋으로 회귀 테스트

Guidelines 작성 가이드

Guidelines는 AI Judge가 응답을 평가할 때 사용하는 도메인 특화 기준 입니다. 잘 작성된 Guidelines는 평가의 정확도를 크게 높입니다.
Guidelines 유형설명예시
내용 기준응답에 포함되어야 할 정보”연차 일수와 사용 기한이 모두 포함되어야 합니다”
형식 기준응답의 형식 요구사항”표 형태로 정리되어야 합니다”
인용 기준출처 인용 요구사항”정책명과 조항 번호가 인용되어야 합니다”
부정 기준포함되면 안 되는 내용”개인적인 의견이나 추측이 포함되면 안 됩니다”
거부 기준답변을 거부해야 하는 조건”문서에 없는 내용이면 ‘확인 불가’로 답해야 합니다”

MLflow Evaluate 통합 패턴

Agent Bricks의 내장 평가 기능 외에, MLflow Evaluate API 를 직접 사용하면 더 세밀하고 자동화된 평가 파이프라인을 구축할 수 있습니다.

Agent Bricks UI vs MLflow Evaluate API

기능Agent Bricks UIMLflow Evaluate API
평가 실행Examples 탭에서 Evaluate 클릭Python 코드로 실행
데이터셋 관리UI에서 수동 관리UC 테이블로 프로그래밍 관리
커스텀 메트릭기본 5가지 메트릭사용자 정의 메트릭 추가 가능
자동화수동 실행CI/CD 파이프라인 연동 가능
비교 평가제한적여러 버전의 에이전트를 동시 비교
이력 관리기본 이력MLflow Experiment로 전체 이력 추적

MLflow Evaluate를 활용한 자동 평가 파이프라인

import mlflow
from databricks.sdk import WorkspaceClient

# 에이전트 엔드포인트 설정
w = WorkspaceClient()
endpoint_name = "customer-support-supervisor"

# 평가 데이터셋 로드 (UC 테이블에서)
eval_df = spark.table("ml.evaluation.agent_eval_dataset").toPandas()

# 에이전트 응답 수집 함수
def get_agent_response(question):
    response = w.serving_endpoints.query(
        name=endpoint_name,
        messages=[{"role": "user", "content": question}]
    )
    return response.choices[0].message.content

# 응답 수집
eval_df["predictions"] = eval_df["request"].apply(get_agent_response)

# MLflow Evaluate 실행
with mlflow.start_run(run_name="agent-eval-v2.1"):
    results = mlflow.evaluate(
        data=eval_df,
        predictions="predictions",
        targets="expected_response",
        model_type="question-answering",
        extra_metrics=[
            mlflow.metrics.genai.relevance(),
            mlflow.metrics.genai.faithfulness(),
        ],
        evaluator_config={
            "col_mapping": {
                "inputs": "request",
                "context": "retrieved_context",
            }
        },
    )

    # 결과 확인
    print(f"Relevance: {results.metrics['relevance/mean']:.2f}")
    print(f"Faithfulness: {results.metrics['faithfulness/mean']:.2f}")

CI/CD 연동 패턴

에이전트 설정 변경(Instructions, Knowledge Source 등) 시 자동으로 평가를 실행하는 파이프라인입니다.
에이전트 설정 변경 (Instructions 수정, Knowledge Source 업데이트)

자동 트리거: MLflow Evaluate 실행 (50개 이상 테스트 케이스)

┌─ 모든 메트릭이 임계값 이상 → 자동 배포 (또는 승인 요청)
└─ 하나라도 임계값 미만 → 알림 + 배포 차단

    임계값 예시:
    - Correctness ≥ 0.80
    - Groundedness ≥ 0.85
    - Relevance ≥ 0.80
    - Safety = 1.00 (안전성은 100% 필수)
참고 임계값 설정 팁: 처음에는 낮은 임계값(예: Correctness 0.70)으로 시작하고, 에이전트 품질이 개선됨에 따라 점진적으로 높이세요. 처음부터 높은 임계값을 설정하면 배포가 계속 차단되어 팀의 개발 속도가 저하됩니다.

에이전트 유형별 평가 전략

각 에이전트 유형에 따라 중점적으로 평가해야 할 메트릭과 전략이 다릅니다.

Knowledge Assistant 평가 전략

메트릭중요도평가 포인트
Groundedness최우선환각 방지가 KA의 핵심 가치 — 문서에 없는 내용을 만들어내지 않는지
Correctness높음기대 답변과 실제 답변의 의미적 일치도
Chunk Relevance높음검색된 청크가 질문과 관련 있는지 — RAG 파이프라인 품질 지표
Relevance중간질문에 대한 답변의 관련성
Safety필수유해 콘텐츠 생성 여부
KA 특화 평가 시나리오:
  • 문서에 있는 내용에 대한 직접 질문 → Correctness + Groundedness
  • 문서에 없는 내용에 대한 질문 → 거부 응답 생성 여부
  • 여러 문서에 걸친 종합 질문 → 올바른 소스 인용 여부
  • 최신 문서 vs 구버전 문서 → 최신 정보 우선 검색 여부

Genie Space 평가 전략

메트릭중요도평가 포인트
SQL 정확도최우선생성된 SQL이 의도한 결과를 반환하는지
결과 정확도높음SQL 실행 결과가 기대값과 일치하는지
응답 시간중간SQL 실행 + 응답 생성까지의 총 소요 시간
에러율필수SQL 문법 오류, 실행 실패 비율

Supervisor Agent 평가 전략

메트릭중요도평가 포인트
라우팅 정확도최우선올바른 서브 에이전트로 위임되는지
종합 응답 품질높음여러 서브 에이전트 응답을 잘 종합하는지
에러 처리중간서브 에이전트 실패 시 적절하게 대응하는지
권한 준수필수권한 없는 에이전트에 접근하지 않는지

평가 결과 분석 및 개선 루프

평가 결과를 분석하고 에이전트를 개선하는 체계적인 프로세스입니다.

점수가 낮은 항목 분석 흐름

AI Judge 평가 결과 확인

[점수가 낮은 질문 식별]

┌─ Groundedness 낮음
│   └→ Trace에서 Retrieval 확인 → 관련 없는 청크가 검색되었는지?
│       ├── 검색 문제 → Content Description 수정, 문서 재구조화
│       └── 생성 문제 → Instructions에 "문서에 없으면 모른다고 답하라" 추가

├─ Correctness 낮음
│   └→ 기대 답변과 실제 답변 비교 → 어디서 차이가 발생하는지?
│       ├── 검색은 올바른데 답변이 부정확 → Instructions 수정, Examples 추가
│       └── 검색 자체가 잘못됨 → Knowledge Source 보강, 동의어 추가

├─ Relevance 낮음
│   └→ 답변이 질문과 무관한 내용을 포함하는지?
│       └── Instructions에 "질문에 직접 관련된 내용만 답변하라" 추가

└─ Chunk Relevance 낮음
    └→ 검색된 청크가 질문과 관련 없는지?
        ├── 문서 구조 문제 → 헤딩/섹션 구조 개선
        ├── 동의어 문제 → Content Description에 동의어 추가
        └── 검색 설정 문제 → Top-K 조정, 유사도 임계값 조정

평가 이력 관리와 트렌드 분석

정기적인 평가를 통해 에이전트 품질의 트렌드를 추적합니다.
주기활동목적
매주AI Judge 자동 평가 실행 (기존 데이터셋)회귀(Regression) 감지
격주프로덕션 로그에서 실패 질문 수집 → 데이터셋 보강데이터셋 현실성 유지
매월SME 리뷰 + 데이터셋 대규모 업데이트도메인 변화 반영
분기전체 평가 보고서 작성 + 목표 재설정장기 품질 트렌드 관리