Pattern Skills

reopt-evaluation-and-guardrails

평가와 가드레일

허용 판단과 위험 판단을 평가 기준과 안전 규칙으로 구분한다.

OCLS SHARPEN

설치

cp skills/patterns/reopt-evaluation-and-guardrails/SKILL.md <your-project>/.claude/skills/reopt-evaluation-and-guardrails/SKILL.md

이 레포의 파일을 당신의 프로젝트에 복사하면 Claude Code 세션에서 바로 활성화된다.

markdownskills/patterns/reopt-evaluation-and-guardrails/SKILL.md
---
name: reopt-evaluation-and-guardrails
description: When agent output needs quality and safety validation. Deciding whether to place guardrails before or after execution. Designing an evaluation pipeline, hallucination detection, blocking forbidden actions.
---

# 평가와 가드레일 (Evaluation and Guardrails)

OCLS 단계: **SHARPEN** · 허용 가능한 판단과 위험한 판단을 평가 기준과 안전 규칙으로 구분한다.

## 핵심 규칙

- 모든 에이전트와 모듈에 정량적 평가 기준(성공률, 응답 품질 점수, 비용 효율)과 안전 가드레일(비용 상한, 권한 범위, 금지 행동 목록)을 함께 부여한다.
- 가드레일은 실행 전에, 평가는 실행 후에 작동한다.
- 평가 점수가 임계치 이하이면 자동 경보 또는 실행 중단 정책을 적용한다.
- 비결정적 에이전트에는: 도구성 사용은 pass@k(k번 시도 중 1번이라도 성공), 일관성이 요구되는 고객 대면 서비스는 pass^k(k번 모두 성공)를 사용한다.
- 평가를 역량 평가(통과율 낮은 어려운 과제)와 회귀 평가(100% 유지, 회귀 감지)로 분리한다. 역량이 안정되면 회귀 평가로 "졸업"시킨다.

## 판단 질문

**우리는 어떤 기준으로 품질과 위험을 측정하는가?**

## 적용 체크

1. 정량적 평가 기준(점수, 임계치)이 정의되어 있는가?
2. 사전 가드레일과 사후 평가가 모두 적용되어 있는가?
3. 임계치 위반 시 자동 조치(경보, 차단)가 있는가?
4. 역량 평가와 회귀 평가의 경계가 선언되어 있는가?

## 코드 예시

```typescript
// 사전 가드레일 (실행 전)
function preGuard(input: RequestInput): GuardResult {
  if (detectPII(input.text)) return { block: true, reason: "PII detected" };
  if (input.text.length > 5000) return { block: true, reason: "input too long" };
  if (estimateCost(input) > 0.5) return { block: true, reason: "cost cap" };
  return { block: false };
}

// 사후 평가 (실행 후)
interface EvalCriteria {
  relevance: { min: 0.8 };
  toneConsistency: { min: 0.7 };
  hallucination: { max: 0 };
}

async function evaluate(response: Response, graders: Grader[]): Promise<Score> {
  const results = await Promise.all(graders.map((g) => g.grade(response)));
  return aggregate(results);
}

// 역량 평가: 어려운 케이스 — 낮은 통과율에서 시작
const capabilityEval = new EvalSet("hard-legal-cases", { target: 0.6 });
// 회귀 평가: 통과한 케이스 — 100% 유지 필요
const regressionEval = new EvalSet("passed-cases", { target: 1.0 });
```

## 안티패턴

**고객 응대**: 기준 없이 운영하면 "고객 불만이 늘었는데 이유를 모른다"가 반복된다. 가드레일 없이 운영하면 카드 번호를 응답에 그대로 실어 보내거나, 존재하지 않는 환불 정책을 만들어내는 사고를 사후에야 발견한다.

**코딩 에이전트**: 평가 없이 코드 생성을 반복하면 모델 업그레이드의 영향을 판단할 데이터가 없다. 테스트 통과율과 보안 취약점 감지율을 회귀 평가로 잠가두면 회귀가 생기는 즉시 잡아낸다.

## 호출 예시

```
"Response Agent에 평가와 가드레일을 추가해줘.
사전 가드레일: PII, 비용, 길이 검사.
사후 평가: relevance ≥ 0.8, tone consistency ≥ 0.7, hallucination = 0.
역량 평가(어려운 케이스)와 회귀 평가(통과 케이스)를 분리해줘."
```

## 관련 패턴

- 모듈 계약 — 계약 위반 감지의 기준
- 인간 승인 — 평가 실패 시의 에스컬레이션 경로
- 의사결정 추적 — 평가 결과의 기록

연결된 패턴

Evaluation and Guardrails평가와 가드레일 — 허용되는 판단과 위험한 판단을 평가 기준과 안전 규칙으로 구분한다.