생성형 AI의 부상
실험용 에이전트와 프로덕션 레벨 에이전트 사이에는 상당한 차이가 있다. 랭체인의 '에이전트 현황 보고서'에 따르면, 에이전트를 사용하는 기업의 절반 이상인 51%가 성능 품질을 가장 큰 관심사로 여기고 있으나, 정작 제대로 된 평가 시스템을 갖춘 기업은 39.8%에 불과했다.
이 책은 두 가지 측면에서 이러한 격차를 해소한다. 첫째, 랭체인과 랭스미스를 활용하여 강력한 테스트 및 모니터링 시스템을 구축하는 방법을 다룬다. 둘째, 랭그래프
이번 장에서는 LLM이 어떻게 에이전틱 AI
- 현대 LLM 기술 동향
- 단순 모델에서 에이전틱 애플리케이션으로의 진화 과정
- 랭체인 소개와 생태계 구성
현대 LLM 현황
인공지능(AI)은 오랫동안 연구 대상이었지만, 최근 생성형 AI의 급격한 발전으로 이제는 주류 기술로 자리잡았다. 기존 AI가 데이터 분류와 예측에 집중했다면, 생성형 AI는 방대한 학습 데이터를 바탕으로 텍스트, 이미지, 코드 등 완전히 새로운 콘텐츠를 생산해낸다.
2017년 트랜스포머 아키텍처
언어 모델 발전 연대표
기술 환경은 라마(Llama)와 미스트랄(Mistral) 같은 모델이 주도한 오픈소스 혁명으로 다시 변화했다. 다음 표는 통계 모델에서 최신 추론 모델까지 주요 발전을 요약한 것이다.
| 연도 | 주요 발전 | 핵심 특징 |
|---|---|---|
| 1990s | IBM 정렬 모델 | 통계 기반 기계 번역(SMT) |
| 2012 | 딥러닝 부상 | 신경망이 통계 모델을 능가 |
| 2017 | 트랜스포머 아키텍처 | 셀프 어텐션 메커니즘 도입, NLP 분야의 혁명 |
| 2018 | BERT · GPT-1 | 트랜스포머 기반 언어 이해와 생성 |
| 2020 | GPT-3 | API 기반 접근, 최고 수준 성능 |
| 2022 | ChatGPT | LLM의 대중화 시작 |
| 2024 | OpenAI o1 | 강화된 추론 능력 |
| 2025 | DeepSeek R1 | 오픈 웨이트 접근 방식과 대규모 AI 모델 |
이 책 초판은 랭체인 0.1.x 기준이었으나, 2판은 0.3.x를 기준으로 한다. 메모리 메커니즘이 랭그래프로 분리되었고 에이전트 생성 권장 경로가 변경되었다. 0.1 → 0.3 마이그레이션 가이드는 GitHub 저장소에서 확인할 수 있다.
기존 LLM의 한계
LLM은 고급 언어 기능을 갖추고 있지만 실무 애플리케이션에서 몇 가지 근본적인 한계에 직면한다. 가장 중요한 한계 다섯 가지를 짚어본다.
- 진정한 의미 이해 능력 부족. 학습 데이터의 통계적 패턴을 따라 다음 토큰을 예측할 뿐, 인간처럼 깊이 이해하지는 못한다. 사실처럼 보이지만 부정확한 내용을 생성하기도 한다.
- 제한적인 추론 능력. 다단계 추론이나 논리적 퍼즐 해결에 취약하다. CoT개념 정의모델이 답을 내기 전에 추론 단계를 명시적으로 풀어쓰게 하는 프롬프팅 기법. 산수·논리 문제에서 정확도를 크게 끌어올린다.Chain of Thought · 사고 체인 같은 명시적 프롬프팅 없이는 신뢰하기 어렵다.
- 낡은 지식. 정적 데이터셋으로 학습되어 시사 정보·실시간 데이터를 반영하지 못한다.
- 도구 사용 능력 부재. API 호출·코드 실행·실시간 검색 등 외부 시스템과의 상호작용이 격리되어 있다.
- 편향과 윤리 문제. 학습 데이터의 편향을 의도치 않게 강화할 수 있다.
LLM이 "확신 있게" 답을 내놓더라도 그 출력이 사실인지 검증하는 절차는 별개의 시스템이 담당해야 한다. 환각(hallucination)은 모델 크기로 사라지지 않는다. 4장에서 다룰 RAG와 8장의 평가 프레임워크가 이 문제를 직접 다룬다.
랭체인 소개
랭체인은 오픈소스 프레임워크로, 2022년 해리슨 체이스가 처음 선보였다. 다음은 랭체인 0.3.x에서 가장 단순한 LLM 호출 형태다. 이후 장에서 이 코드를 점진적으로 확장한다.
# 랭체인 0.3.x: 기본 채팅 모델 호출 from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2) response = llm.invoke([ HumanMessage(content="랭체인을 한 문장으로 설명해줘") ]) print(response.content)
이 코드, 줄별로 자세히 보기
langchain_openai패키지에서ChatOpenAI클래스를 가져온다. 0.3부터는 공급자별 통합이 별도 패키지로 분리되었다.HumanMessage는 사용자 메시지를 표현하는 표준 메시지 타입이다.SystemMessage·AIMessage도 같은 모듈에 있다.temperature=0.2는 결정성에 가까운 출력을 유도한다. 코드 생성·정보 추출은 0.0~0.3, 창작은 0.7+ 가 일반적이다.invoke는 단일 입력에 단일 출력을 반환하는 동기 호출. 배치는batch, 스트리밍은stream을 쓴다.- 응답 객체의
.content에 실제 텍스트가 담긴다. 메타데이터는.response_metadata로 조회한다.
위 호출 한 번으로는 단일 LLM에 메시지를 보내고 받는 것 외에 할 수 있는 일이 없다. 실제 애플리케이션은 프롬프트 템플릿, 출력 파서, 메모리, 도구를 조합해 워크플로를 구성한다. 다음 코드는 LCEL(LangChain Expression Language)로 이를 표현한 예다.
from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputParser from langchain_openai import ChatOpenAI prompt = ChatPromptTemplate.from_messages([ ("system", "너는 한국어로 답변하는 기술 편집자다."), ("user", "{topic}을 200자 이내로 요약해줘"), ]) # LCEL 파이프 연산자로 체인 구성 chain = prompt | ChatOpenAI(model="gpt-4o-mini") | StrOutputParser() print(chain.invoke({"topic": "검색 증강 생성(RAG)"}))
LCEL 파이프(|)는 무엇을 하는가?
파이프 연산자는 Runnable 인터페이스를 따르는 객체들을 합성해 하나의 체인으로 묶는다. 좌변의 출력이 우변의 입력으로 흐른다. 따라서 위 체인은 딕셔너리 → 프롬프트 메시지 → LLM 응답 → 문자열 순으로 흐른다. 이 합성성 덕분에 chain.stream()·chain.batch()·chain.ainvoke()가 모두 자동으로 동작한다.
API 키 없이도 위 코드를 실행해보고 싶다면 langchain-ollama로 로컬 모델을 쓰는 방법이 있다. 2장에서 Ollama 설정을 자세히 다룬다. temperature와 max_tokens를 조정해 출력 차이를 직접 확인해보자.
랭체인의 에이전트 실행 흐름
랭체인 에이전트가 도구를 호출하는 과정을 단계별로 따라가보자. 아래 다이어그램의 각 단계를 클릭하면 상세 설명이 펼쳐진다.
이 단계에서 에이전트는 입력을
HumanMessage로 래핑하고, 시스템 프롬프트와 결합해 LLM이 다음에 무엇을 할지 결정할 수 있도록 컨텍스트를 구성한다.
tool_calls 배열을 출력한다. 각 항목에 name과 arguments가 들어 있다. 예: {"name": "weather", "arguments": {"city": "Seoul", "from": "2026-04-23"}}
실제 LangGraph 구현에서는 위 4단계가 START → agent → tools → agent → END 형태의 그래프로 표현된다. should_continue 같은 조건부 엣지가 루프 종료를 결정한다. 5장에서 이 그래프를 직접 작성한다.
파라미터와 하이퍼파라미터의 차이. 파라미터는 모델이 학습 과정에서 스스로 조정하는 가중치·편향이고, 하이퍼파라미터는 모델 구조와 학습 과정을 사람이 설정하는 외부 변수(학습률·배치 크기 등)다. 본문의 "매개변수"는 대부분 전자(파라미터)를 가리킨다.
이 장을 한 페이지로
- 현대 LLM은 트랜스포머 이후 빠르게 진화해, 2022년 ChatGPT를 기점으로 대중화되었고 2025년 추론 모델(o1·DeepSeek R1)로 또 한 번 도약했다.
- 원시 LLM은 진정한 의미 이해·추론·도구 사용에 한계가 있어, 그대로는 프로덕션에 쓰기 어렵다.
- 이 격차를 메우기 위해 랭체인이 등장했고, 모듈식 컴포넌트(모델·프롬프트·체인·도구)와 LCEL로 합성성을 제공한다.
- 0.3 버전부터 메모리·에이전트의 권장 경로는 랭그래프로 이동했다. 랭체인은 모델·도구·체인을 담당하고, 랭그래프는 상태와 워크플로를, 랭스미스는 관찰을 담당한다.
- 다음 장에서는 개발 환경을 설정하고 첫 번째 LLM 호출과 LCEL 체인을 직접 만들어본다.
python --version)langchain langchain-openai 설치.env 파일에 등록topic을 다른 주제로 바꿔 실행해보기다음 장에서는 개발 환경을 설정하고 첫 번째 LLM 호출을 직접 작성한다. 클라우드 모델과 로컬 모델을 모두 다루며, 멀티모달 입력까지 확장한다.