가드레일은 AI 에이전트가 실행되는 과정의 주요 지점에서 콘텐츠를 검증하고 필터링하는 안전장치입니다. 자동차가 도로를 벗어나지 않게 막아주는 가드레일처럼, AI가 설정된 비즈니스 로직과 윤리적 범위를 벗어나지 않도록 통제합니다.
가드레일은 미들웨어(Middleware) 형태로 구현됩니다. AI 에이전트가 요청을 받고 응답을 내보내기까지의 모든 과정을 가로채서 검사할 수 있습니다.

가드레일은 구현 방식에 따라 두 가지로 나뉩니다.
결정론적 가드레일 (Deterministic):
모델 기반 가드레일 (Model-based):
쇼핑몰 고객 상담 에이전트에 가드레일을 적용해 보겠습니다.
고객이 채팅창에 카드 번호를 입력하면, 모델에 전달되기 전에 자동으로 마스킹 처리합니다.
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,
)
],
)
환불이나 주문 취소 같은 민감한 작업은 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, # 재고 확인은 자동 허용
}
),
],
)
경쟁사 이름을 언급하며 비교를 요청할 경우, 에이전트가 실행되기 전에 차단합니다.
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
이커머스 고객이 "내 카드(1234-5678-...)로 결제한 건 환불해줘. 그리고 [경쟁사]보다 여기가 더 싸지?"라고 물었을 때의 흐름입니다.

가드레일은 단 하나만 사용하는 것이 아니라, 여러 층(Layer)으로 쌓는 것이 핵심입니다.
이러한 가드레일 시스템을 잘 갖춘 AI 에이전트는 단순한 챗봇을 넘어, 기업의 비즈니스를 안전하게 수행하는 '신뢰할 수 있는 디지털 직원'이 될 것입니다.