TL;DR
미들웨어를 통해 에이전트의 기본 ReAct 패턴을 확장하고 보안 검증 및 비용 최적화를 자동화할 수 있다. @wrap_model_call, @before_model 등 다양한 훅을 활용하면 코드 수정 없이 에이전트의 기능을 고도화할 수 있다.
배경
AI 에이전트를 더 견고하고 안전하게 만들기 위해 실행 흐름 중간에 개입하는 미들웨어 기술이 중요해지고 있다.
대상 독자
LangChain을 활용해 실무 수준의 AI 에이전트 시스템을 구축하려는 개발자
의미 / 영향
이 튜토리얼은 단순한 챗봇을 넘어 실무 환경에서 운영 가능한 안전한 에이전트 시스템 설계 방안을 제시한다. 미들웨어를 통한 계층적 방어 체계 구축은 기업용 AI 서비스의 보안 사고를 예방하고 운영 비용을 최적화하는 데 즉각적인 도움을 준다.
챕터별 상세
create_agent의 상세 구조와 ReAct 패턴
ReAct 패턴은 Reasoning과 Acting의 합성어로 LLM이 스스로 판단하고 행동하는 에이전트의 핵심 알고리즘이다.
랭체인 미들웨어 훅의 종류와 역할
모델 동적 라우팅 실습 (@wrap_model_call)
데코레이터는 기존 함수를 수정하지 않고 기능을 추가하거나 변경할 수 있는 파이썬의 문법적 설탕이다.
금지어 필터링 및 동적 프롬프트 적용
@wrap_model_call
def dynamic_model_selection(request: ModelRequest, handler) -> ModelResponse:
message_count = len(request.state["messages"])
if message_count > 10:
model = advanced_model
else:
model = basic_model
return handler(request.override(model=model))대화 메시지 수에 따라 기본 모델과 고급 모델을 동적으로 전환하는 미들웨어 예시
프롬프트 인젝션 차단 실습 (@before_agent)
jump_to는 LangGraph 기반 에이전트에서 특정 노드로 실행 흐름을 강제 이동시키는 기능이다.
@before_model
def content_filter_middleware(state: AgentState, runtime: Runtime) -> None:
last_msg = state["messages"][-1]
for word in BLOCKED_WORDS:
if word in last_msg.content:
raise ValueError(f"부적절한 표현이 감지되었습니다: {word}")모델 호출 전 금지어 포함 여부를 검사하여 차단하는 미들웨어 예시
용어 해설
- Middleware
- — 에이전트의 실행 흐름 중 특정 지점에서 동작을 가로채거나 조작할 수 있는 중간 처리기이다. LangChain 에이전트의 기본 패턴을 벗어나 입력 전처리, 출력 마스킹, 모델 동적 변경 등을 가능하게 하여 시스템의 유연성을 높인다.
- Prompt Injection
- — 사용자가 악의적인 입력을 통해 LLM의 원래 지침(System Prompt)을 무시하거나 우회하여 제어권을 탈취하려는 공격 방식이다. 에이전트 시스템에서는 보안을 위해 미들웨어 단계에서 이러한 시도를 사전에 감지하고 차단하는 로직이 필수적이다.
- ReAct Pattern
- — 모델이 추론(Reasoning)과 행동(Acting)을 반복하며 문제를 해결하는 에이전트 설계 방식이다. 사용자의 질문에 대해 어떤 도구를 사용할지 판단하고 실행 결과를 다시 모델이 받아 최종 답변을 생성하는 순환 구조를 가진다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.