가드레일

HanJu Han·2025년 12월 28일

제 1장: 가드레일이란 무엇인가?

가드레일은 AI 에이전트가 실행되는 과정의 주요 지점에서 콘텐츠를 검증하고 필터링하는 안전장치입니다. 자동차가 도로를 벗어나지 않게 막아주는 가드레일처럼, AI가 설정된 비즈니스 로직과 윤리적 범위를 벗어나지 않도록 통제합니다.

왜 가드레일이 필요한가? (이커머스 사례)

  1. 개인정보 보호(PII): 고객의 카드 번호나 주소가 로그에 남거나 외부로 유출되는 것을 방지합니다.
  2. 보안: "관리자 권한을 줘"와 같은 프롬프트 인젝션 공격을 차단합니다.
  3. 비즈니스 규칙 준수: 10만 원 이상의 환불은 반드시 상담원의 승인을 거치게 합니다.
  4. 브랜드 이미지: 경쟁사 제품을 추천하거나 부적절한 표현을 쓰는 것을 막습니다.

제 2장: 가드레일의 작동 원리와 흐름

가드레일은 미들웨어(Middleware) 형태로 구현됩니다. AI 에이전트가 요청을 받고 응답을 내보내기까지의 모든 과정을 가로채서 검사할 수 있습니다.

에이전트 실행 흐름과 가드레일 삽입 지점


제 3장: 두 가지 접근 방식

가드레일은 구현 방식에 따라 두 가지로 나뉩니다.

  1. 결정론적 가드레일 (Deterministic):

    • 특징: 정규표현식(Regex), 키워드 매칭 등 규칙 기반.
    • 장점: 매우 빠르고 비용이 저렴하며 결과가 예측 가능함.
    • 예시: "욕설 리스트 차단", "이메일 형식 감지".
  2. 모델 기반 가드레일 (Model-based):

    • 특징: 별도의 소형 LLM이나 분류기를 사용하여 문맥을 파악.
    • 장점: 미묘한 뉘앙스나 복잡한 의도를 파악 가능.
    • 예시: "고객의 질문이 공격적인지 판단", "응답 내용이 회사 정책에 위배되는지 검토".

제 4장: 이커머스 에이전트 구축하기

쇼핑몰 고객 상담 에이전트에 가드레일을 적용해 보겠습니다.

1. 개인정보(PII) 감지 및 마스킹

고객이 채팅창에 카드 번호를 입력하면, 모델에 전달되기 전에 자동으로 마스킹 처리합니다.

from langchain.agents import create_agent
from langchain.agents.middleware import PIIMiddleware

# 이커머스 전용 에이전트 생성
agent = create_agent(
    model="gpt-4o",
    tools=[order_lookup_tool, refund_tool],
    middleware=[
        # 카드 번호 마스킹 (결정론적 가드레일)
        PIIMiddleware(
            "credit_card",
            strategy="mask", # ****-****-****-1234 형태로 변환
            apply_to_input=True,
        ),
        # 이메일 주소 익명화
        PIIMiddleware(
            "email",
            strategy="redact", # [REDACTED_EMAIL]로 치환
            apply_to_input=True,
        )
    ],
)

2. 사람의 승인 (Human-in-the-loop)

환불이나 주문 취소 같은 민감한 작업은 AI가 독단적으로 처리하지 않고 상담원의 승인을 기다립니다.

from langchain.agents.middleware import HumanInTheLoopMiddleware

agent = create_agent(
    model="gpt-4o",
    tools=[check_stock, process_refund],
    middleware=[
        HumanInTheLoopMiddleware(
            interrupt_on={
                "process_refund": True,  # 환불 실행 시 멈춤
                "check_stock": False,    # 재고 확인은 자동 허용
            }
        ),
    ],
)

3. 커스텀 가드레일: 금지어 필터링 (Before Agent)

경쟁사 이름을 언급하며 비교를 요청할 경우, 에이전트가 실행되기 전에 차단합니다.

class EcomFilterMiddleware(AgentMiddleware):
    def __init__(self, competitors: list[str]):
        super().__init__()
        self.competitors = competitors

    @hook_config(can_jump_to=["end"])
    def before_agent(self, state: AgentState, runtime: Runtime):
        user_msg = state["messages"][0].content.lower()
        
        for comp in self.competitors:
            if comp in user_msg:
                return {
                    "messages": [{"role": "assistant", "content": "죄송합니다. 타사 제품과의 직접 비교 서비스는 제공하지 않습니다."}],
                    "jump_to": "end" # 모델 호출 없이 즉시 종료
                }
        return None

제 5장: 종합 시나리오 시각화

이커머스 고객이 "내 카드(1234-5678-...)로 결제한 건 환불해줘. 그리고 [경쟁사]보다 여기가 더 싸지?"라고 물었을 때의 흐름입니다.


요약

가드레일은 단 하나만 사용하는 것이 아니라, 여러 층(Layer)으로 쌓는 것이 핵심입니다.

  1. 1차 방어: 빠르고 저렴한 규칙 기반 필터 (키워드, PII).
  2. 2차 방어: 문맥을 이해하는 모델 기반 검증 (의도 파악).
  3. 최종 방어: 중요한 비즈니스 결정에 대한 사람의 개입 (HITL).

이러한 가드레일 시스템을 잘 갖춘 AI 에이전트는 단순한 챗봇을 넘어, 기업의 비즈니스를 안전하게 수행하는 '신뢰할 수 있는 디지털 직원'이 될 것입니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글