LangGraph로 만드는 AI 에이전트 서비스 (RAG, 멀티 에이전트, 평가까지 AI 에이전트 실무 완전 정복)

LangGraph로 만드는 AI 에이전트 서비스 (RAG, 멀티 에이전트, 평가까지 AI 에이전트 실무 완전 정복)

$29.00
Description
우리가 AI로 많이 알고 있는 프롬프트가 요리사에게 주는 ‘레시피’라면 AI 에이전트는 주방 전체를 책임지는 ‘요리사’이다. 이제 AI 에이전트, 자율적 지능에 관심이 옮겨가고 있다.
이 책은 AI 프레임워크인 랭체인(LangChain) 라이브러리 위에서 돌아가는 AI 에이전트 전용 오케이스레이션 프레임워크이자 파이썬 패키지인 랭그래프(LangGraph)로 만드는 AI 서비스를 다룬다. 기존 랭체인(LangChain)이 일직선으로 명령을 수행하는 AI 에이전트를 만들기 쉬웠다면, 랭그래프는 AI가 막히면 뒤로 돌아가고, 스스로 계획을 수정하는 에이전틱 AI 시스템을 구축하는 데 최적화되어 있다. AI 에이전트 개발은 선택이 아니라 필수이고 대세이다. 에이전트가 없는 곳이 없다. 우리의 일하는 방식을 바꾸고 있다. 예약하고, 환불을 처리하고, 복잡한 문의를 담당자에게 연결한다. 개발자들은 코드를 작성하고 리뷰하는 AI 에이전트와 함께 일한다. 마케터는 데이터를 분석하고 리포트를 자동으로 생성하는 에이전트를 활용한다. 금융, 의료, 법률, 교육, 산업을 가리지 않고 에이전트가 스며들고 있다.
이 책은 그런 흐름에 맞춤형으로 저자들이 AI 에이전트 서비스를 만들 수 있도록 안내한다. 예제 코드는 저자 깃허브(https://github.com/ai-agent-labs/langgraph-ai-agent-service-examples)와 성안당 자료실을 통해 제공된다.
저자

전상우

인터넷기업에서대규모트래픽을안정적으로처리하는백엔드시스템을개발해왔고,지금은금융도메인에AI에이전트기술을접목하는일을하고있습니다.매일달라지는AI변화속도에맞춰개발방식또한부지런히업데이트하는중입니다.

목차

서문
저자소개
추천사

1부시작하기

1장에이전트의시대
AI에이전트의시대
1.1생성형AI의발전속도
1.1-1폭발적인성장의시작
1.1-22026년,AI는어디까지왔는가?
1.1-3왜발전속도가중요한가?

1.2AI에이전트의능력
1.2-1LLM의한계
1.2-2AI에이전트란무엇인가?
1.2-3에이전트의핵심구성요소
1.2-4생각하고,행동하고,관찰하기
1.2-5기존소프트웨어와무엇이다른가?
1.2-6에이전트는‘새로운팀원’

1.3AI에이전트의실생활예시
1.3-1ChatGPT:에이전트로의진화
1.3-2에이전트도입의확산
1.3-3왜지금배워야하는가?
1.4AI에이전트개발을시작해보자

1.4AI에이전트개발을시작해보자
1.4-1이책에서배울것
1.4-2왜LangChain과LangGraph인가?
핵심정리


2장개발시작하기
개발시작하기
2.1개발환경설정
2.1-1Python설치
2.1-2패키지관리자사용하기
2.1-3LangChain&LangGraph설치
2.1-4Streamlit으로채팅UI만들기

2.2LLM모델사용준비
2.2-1OpenAIAPI키발급
2.2-2모델선택가이드

2.3프로젝트구성
2.3-1프로젝트구조생성
2.3-2환경변수및API키관리
2.3-3첫번째에이전트만들기
2.3-4애플리케이션실행
2.3-5프로젝트공유준비
핵심정리

3장LangChain
3.1LangChain첫걸음
3.1-1LLM개발,생각보다복잡하다
3.1-2LangChain소개
3.1-3LangChain과커뮤니티
3.1-4LangChain공식문서

3.2챗모델
3.2-1Invoke메서드로챗모델호출하기
3.2-2챗모델활용하기
3.2-3스트리밍호출
3.2-4다양한모델공급자지원

3.3메시지
3.3-1메시지타입
3.3-2왜여러유형의메시지가필요할까?
3.3-3SystemMessage활용하기
3.3-4AIMessage활용하기
3.3-5스트리밍과MessageChunk

3.4프롬프트
3.4-1프롬프트란무엇인가?
3.4-2왜프롬프트가중요한가?
3.4-3프롬프트템플릿이필요한이유
3.4-4프롬프트템플릿사용하기

3.5러너블
3.5-1러너블이란무엇인가?
3.5-2왜러너블이중요한가?
3.5-3러너블의핵심인터페이스
3.5-4러너블활용예제
3.5-5RunnableLambda

3.6러너블설정
3.6-1RunnableConfig
3.6-2콜백
3.6-3Configurable

3.7LCEL
3.7-1LCEL기본문법
3.7-2함수연결하기
3.7-3RunnableParallel
3.7-4RunnablePassthrough
핵심정리


4장프롬프트엔지니어링프롬프트엔지니어링
4.1프롬프트엔지니어링소개
4.1-1프롬프트엔지니어링이해결하는문제들
4.1-2프롬프트엔지니어링을시작하기전에
4.1-3프롬프트엔지니어링은반복적인과정이다
4.2프롬프트엔지니어링의기본원칙
4.2-1명확하고직접적이며상세하게
4.2-2구조화프롬프트:XML과Markdown활용
4.2-3실전예시:구조화프롬프트

4.3프롬프트엔지니어링의핵심기법
4.3-1페르소나
4.3-2맥락정보제공하기
4.3-3사고연쇄
4.3-4퓨샷프롬프팅

4.4모델파라미터:프롬프트를넘어LLM을제어하는힘
4.4-1샘플링파라미터:출력의다양성제어
4.4-2출력제어파라미터
4.4-3반복억제파라미터116
4.4-4프로덕션환경에서의최적화
핵심정리



2부핵심구성요소
RAG
5장RAG

5.1LLM모델의한계
5.1-1정적인학습데이터의한계
5.1-2지식단절문제
5.1-3환각현상과의연결
5.1-4파인튜닝의한계
5.1-5더나은해결책의필요성

5.2RAG소개
5.2-1RAG란?
5.2-2RAG의장점
5.2-3RAG의핵심구성요소

5.3RAG구현
5.3-1OpenSearch소개
5.3-2OpenSearch설치
5.3-3문서인덱싱
5.3-4검색및답변생성
5.3-5LangChainLCEL을활용한간편구현

5.4Retriever성능개선-HybridSearch
5.4-1임베딩이란?
5.4-2검색방식의종류
5.4-3하이브리드검색구현
5.4-4가중치튜닝
핵심정리
메모리

6장메모리
6.1메모리란?
6.1-1메모리가없을때
6.1-2메모리가있을때
6.1-3LLM은왜기억을못할까?

6.2메모리전략
6.2-1전체저장(FullHistory)
6.2-2최근N개만저장(Window)
6.2-3요약저장(Summary)
6.2-4전략비교

6.3전체대화저장하기
6.3-1기본구현
6.3-2동작원리
6.3-3대화기록확인하기
6.3-4session_id의중요성

6.4최근대화만저장하기
6.4-1메시지자르기구현
6.4-2trim_messages옵션
6.4-3토큰기반자르기

6.5대화요약하기
6.5-1요약메모리구현
6.5-2동작원리
6.5-3다양한저장소활용하기
핵심정리


7장메모리
도구와MCP
7.1도구와MCP개요
7.1-1LLM과도구의역할분담
7.1-2도구의개념과구조176
7.1-3LangChain에서의도구정의방식

7.2MCP프로토콜이해하기
7.2-1MCP의아키텍처
7.2-2도구발견과호출:tools/list,tools/call
7.2-3오류처리
7.2-4MCP와LangChain통합
7.2-5MCP도입시고려사항
핵심정리
구조화된

8장구조화된출력출력
8.1구조화된출력이란?
8.1-1자유텍스트응답의문제
8.1-2약속된형식으로응답받기
8.1-3구조화된출력이없을때
8.1-4구조화된출력이있을때
8.1-5핵심장점

8.2Pydantic스키마기초
8.2-1Pydantic이란?
8.2-2BaseModel로스키마정의하기
8.2-3Field로상세설명추가하기
8.2-4타입힌트의중요성
8.2-5완성된스키마예제
8.2-6스키마설계원칙

8.3LangChain에서구조화된출력사용하기
8.3-1with_structured_output메서드
3-2기본사용법
8.3-3반환값은Pydantic객체
8.3-4동작원리
8.3-5프롬프트와함께사용하기

8.4method옵션이해하기
8.4-1세가지method옵션
8.4-2json_schema(기본값)
8.4-3function_calling
8.4-4json_mode
8.4-5method선택가이드
8.4-6코드예제
8.4-7strict옵션
8.4-8include_raw옵션
8.5실전활용
8.5-1여러휴가신청한번에처리하기
8.5-2선택지제한하기
8.5-3선택적필드처리하기
핵심정리




3부에이전트구축


9장에이전트구축
LangGraph
9.1LangGraph란?
9.1-1왜LangGraph인가?
9.1-2LangGraph의핵심아이디어
9.1-3LCELvs.LangGraph

9.2StateGraph의기본구조
9.2-1State:그래프의메모리
9.2-2Node:작업수행자
9.2-3Edge:연결경로
9.2-4첫번째그래프만들기

9.3노드와엣지추가하기
9.3-1노드등록하기
9.3-2순차연결
9.3-3조건부분기
9.3-4HR요청분류에이전트
9.3-5루프
9.3-6병렬실행
9.3-7Subgraph
9.3-8동적라우팅

9.4그래프실행하기
9.4-1컴파일
9.4-2동기실행(invoke)
9.4-3스트리밍실행
9.4-4실행흐름디버깅

9.5영속성과체크포인트
9.5-1왜영속성이필요한가?
9.5-2InMemorySaver사용하기
9.5-3세션관리(thread_id)
9.5-4휴먼인더루프
핵심정리


10장단일에이전트설계단일에이전트설계
10.1서비스요구에서단일에이전트설계까지
10.1-1기능요구를에이전트문제로바꾸기
10.1-2입력·출력·품질기준으로다시쓰기

10.2단일에이전트아키텍처의기본구조
10.2-1한화면·한엔드포인트·한에이전트
10.2-2입력파싱·검증레이어
10.2-3LLM+RAG+도구호출레이어
10.2-4후처리·포맷팅레이어
10.2-5관측가능성·오류처리레이어

10.3단일에이전트를위한선형워크플로우패턴
10.3-1왜‘선형워크플로우’로보는가?
10.3-2패턴A:기본순차형워크플로우
10.3-3패턴B:의도분기형워크플로우
10.3-4패턴C:병렬도구호출워크플로우
10.3-5패턴D:툴퍼스트워크플로우
10.3-6패턴선택을위한간단한체크리스트

10.4에이전틱워크플로우와LangChainReAct에이전트
10.4-1선형워크플로우에‘선택과반복’더하기
10.4-2ReAct패턴:생각과행동의반복
10.4-3create_agent로ReAct에이전트만들기
10.4-4단일에이전트에서에이전틱워크플로우를어디까지쓸까?

10.5실습선형워크플로우+ReAct에이전트+휴먼인더루프
10.5-1시나리오:교육비지원신청에이전트
10.5-2도구정의하기:선형워크플로우를잘게나누기
1