LangChain create_agent 기반 미들웨어 구현

2강: 랭체인의 create_agent 기반 미들웨어 구현하기 | 만들면서 배우는 AI 에이전트 개발 입문+실전 저자 직강

강사: 공원나연 교재: 한빛미디어 『만들면서 배우는 AI 에이전트 개발 입문+실전』 영상 길이: 32분 44초

핵심 개념

create_agent 미들웨어의 3가지 팁(Tip) 타입

LangChain 6.4절에서 소개되는 create_agent는 LLM 호출의 전후 처리를 데코레이터로 제공한다:

  1. @wrap_model_call — LLM 입출력 스키마 변환 및 응답 후처리
  2. @before_model — 모델 호출 전 프롬프트 동적 수정
  3. @dynamic_prompt — 실행 시점의 변수 기반 프롬프트 조정
  4. @before_agent — 에이전트 실행 전 프롬프트 인젝션 검증

아이디어 (IDEAS)

  • create_agent 미들웨어는 LLM 호출 전후 처리를 데코레이터로 제공
  • LangChain 6.4절의 3가지 팁(Tip) 타입: @wrap_model_call, @before_model, @before_agent
  • @wrap_model_call - LLM 입출력 스키마 변환 및 응답 후처리
  • @before_model - 프롬프트 동적 수정 및 동적 프롬프트 삽입
  • @dynamic_prompt - 실행 시점의 변수 기반 프롬프트 조정
  • @before_agent - 에이전트 실행 전 프롬프트 인젝션 검증
  • 프롬프트 인젝션은 미들웨어 단계에서 정규표현식 필터로 방어 가능
  • 미들웨어 중앙화로 보안 정책을 코드로 명시적 관리
  • LLM 라우팅, MCP(Model Context Protocol), A2A(Agent-to-Agent) 실전 구현까지 단계별 학습

깊은 통찰 (INSIGHTS)

통찰 1: LangChain의 미들웨어 시스템은 단순한 로깅을 넘어, 프롬프트 변조·동적 라우팅·보안 정책을 통합적으로 지원하는 아키텍처를 제공한다.

단순 로깅 → 프롬프트 검증, 스키마 변환, 동적 라우팅, 보안 정책 등을 한곳에서 관리할 수 있다는 의미다.

통찰 2: create_agent 미들웨어를 이해하면, 복잡한 LLM 애플리케이션의 요청/응답 흐름을 중앙화하고 테스트하기 쉬워진다.

각 LLM 호출 지점마다 검증 로직을 분산하는 대신, 미들웨어로 통합하면 코드 응집도와 유지보수성이 향상된다.

통찰 3: 프롬프트 인젝션 방어가 미들웨어에서 처리되어야, 개발자가 매번 수동으로 검증하는 부담에서 벗어날 수 있다.

보안 로직을 중앙화하면 일관된 방어 정책을 모든 LLM 호출에 적용할 수 있다.

참고 자료 (REFERENCES)

이름타입설명
LangChainframeworkPython 기반 AI 에이전트 개발 프레임워크
create_agenttoolLangChain 6.4절의 핵심 미들웨어 구현 방식
@wrap_model_calldecoratorLLM 호출 입출력 스키마 변환
@before_modeldecorator모델 호출 전 프롬프트 수정
@dynamic_promptdecorator실행 시점 변수 기반 프롬프트 조정
@before_agentdecorator에이전트 실행 전 보안 검증
LangGraphframeworkLangChain의 그래프 기반 에이전트 구축 도구
MCPprotocolModel Context Protocol - LLM 도구 호출 표준
공원나연person영상 강사 - AI 에이전트 개발 전문가
한빛미디어publisher『만들면서 배우는 AI 에이전트 개발』 저자 및 출판사

검증 가능한 사실 (FACTS)

  • 영상은 2강이며, 총 32분 44초(1964초) 길이
  • LangChain의 create_agent는 6.4절에 소개됨
  • 미들웨어 팁은 3가지 종류: @wrap_model_call, @before_model/@dynamic_prompt, @before_agent
  • 프롬프트 인젝션 방어 예제는 정규표현식 필터 기반
  • 책 제목: 『만들면서 배우는 AI 에이전트 개발 입문+실전』
  • 교재 출판: 한빛미디어 (YES24, 교보문고, 알라딘 판매)

실천 가능한 습관 (HABITS)

1. 미들웨어 중앙화

미들웨어로 프롬프트 변조를 중앙화하여 일관된 보안 정책을 유지하자. 각 개발자가 독립적으로 검증 로직을 구현하는 대신, 공통 미들웨어에서 관리한다.

2. 단일 책임 원칙 (SRP)

각 미들웨어 데코레이터는 단일 책임 원칙을 유지한다:

  • @wrap_model_call은 스키마 변환만
  • @before_agent는 보안 검증만
  • @dynamic_prompt는 변수 기반 프롬프트 조정만

3. 정적/동적 부분 구분

실행 시점 변수는 @dynamic_prompt로 분리하여, 프롬프트 템플릿의 정적·동적 부분을 명확히 구분하자.

구체적 실행 권고 (RECOMMENDATIONS)

1단계: 스키마 변환부터 시작

기존 LLM 애플리케이션에 @wrap_model_call을 먼저 추가하여, 입력/출력 스키마 변환 검증을 단순화하자.

@wrap_model_call
def transform_response(response):
    # 모델 응답 → 비즈니스 로직 스키마로 변환
    return {
        "result": response.content,
        "tokens": response.usage
    }

2단계: 보안 필터 추가

프롬프트 인젝션이 우려된다면, @before_agent에 정규표현식 필터를 추가해 악의적 입력을 사전에 차단하자.

@before_agent
def validate_prompt(prompt: str) -> str:
    # SQL 인젝션 같은 패턴 차단
    dangerous_patterns = [r"'; DROP TABLE", r"<script>"]
    for pattern in dangerous_patterns:
        if re.search(pattern, prompt):
            raise ValueError("Suspicious prompt detected")
    return prompt

3단계: 동적 프롬프트 분리

동적 프롬프트 구성이 필요하면 @dynamic_prompt로 분리하여, 프롬프트 템플릿의 가독성과 유지보수성을 향상시키자.

4단계: 멀티 에이전트로 확장

실전 구현을 위해 LangGraph와 MCP 문서를 함께 학습하여, 단일 미들웨어에서 멀티 에이전트 시스템으로 확장하자.

섹션별 요약

시간섹션주요 내용
00:00인트로강의 개요 및 학습 목표
00:396.4절 create_agent 살펴보기LangChain 미들웨어의 개념 소개
03:34랭체인의 미들웨어가 제공하는 팁 종류3가지 데코레이터 타입 설명
09:05첫째 실습: @wrap_model_callLLM 입출력 스키마 변환 실습
16:30둘째 실습: @before_model, @dynamic_prompt프롬프트 동적 수정 실습
23:10셋째 실습: 프롬프트 인젝션 차단 (@before_agent)보안 검증 미들웨어 구현
30:52아웃트로정리 및 다음 학습 가이드

관련 개념

학습 경로

이 강의는 다음 순서로 학습하는 것을 권장한다:

  1. LangChain-기초 — 기본 개념 학습
  2. 이 강의 — 미들웨어 시스템 이해
  3. LangGraph-실전 — 그래프 기반 에이전트 구축
  4. MCP-A2A-통신 — 에이전트 간 통신 구현

출처: 공원나연, 『만들면서 배우는 AI 에이전트 개발 입문+실전』, 한빛미디어, 2026