사전 구축된 구성 요소를 사용한 에이전트 개발
LangGraph는 에이전트 기반 애플리케이션을 구축하기 위한 저수준 기본 요소와 고수준의 사전 구축된 구성 요소를 모두 제공합니다. 이 섹션에서는 오케스트레이션, 메모리, 사용자 피드백 처리를 처음부터 구현할 필요 없이 에이전트 시스템을 빠르고 안정적으로 구축할 수 있도록 설계된, 바로 사용할 수 있는 사전 구축 구성 요소에 중점을 둡니다.
에이전트란 무엇인가요?
에이전트는 대규모 언어 모델(LLM), 사용할 수 있는 도구 집합, 그리고 지시사항을 제공하는 프롬프트, 이 세 가지 구성 요소로 이루어집니다.
LLM은 루프 안에서 작동합니다. 각 반복마다 호출할 도구를 선택하고, 입력을 제공하며, 그 결과(관찰)를 받아 다음 행동을 결정합니다. 이 루프는 일반적으로 에이전트가 사용자에게 응답하기에 충분한 정보를 수집했을 때와 같은 특정 중지 조건이 충족될 때까지 계속됩니다.

에이전트 루프: LLM이 도구를 선택하고 그 출력을 사용하여 사용자 요청을 처리합니다.
주요 특징
LangGraph는 강력하고 실제 서비스에 적용 가능한 에이전트 시스템을 구축하는 데 필수적인 여러 기능을 포함합니다:
- 메모리 통합: 챗봇과 어시스턴트에서 상태를 유지하는 동작을 가능하게 하는 단기(세션 기반) 및 장기(세션 간 지속) 메모리를 기본적으로 지원합니다.
- 사용자 참여 제어: 실시간 상호작용에 국한된 웹소켓 기반 솔루션과 달리, 실행을 무기한으로 일시 중지하여 사용자 피드백을 기다릴 수 있습니다. 이를 통해 워크플로우의 어느 지점에서든 비동기적인 승인, 수정 또는 개입이 가능합니다.
- 스트리밍 지원: 에이전트 상태, 모델 토큰, 도구 출력 또는 결합된 스트림을 실시간으로 스트리밍합니다.
- 배포 도구: 인프라 없이 배포할 수 있는 도구를 포함합니다. LangGraph 플랫폼은 테스트, 디버깅 및 배포를 지원합니다.
- 스튜디오: 워크플로우를 검사하고 디버깅하기 위한 시각적 IDE입니다.
- 프로덕션을 위한 여러 배포 옵션을 지원합니다.
고수준 빌딩 블록
LangGraph는 일반적인 에이전트 동작과 워크플로우를 구현하는 사전 구축된 구성 요소 세트와 함께 제공됩니다. 이러한 추상화는 LangGraph 프레임워크 위에 구축되어 고급 사용자 정의를 위한 유연성을 유지하면서 프로덕션까지 더 빠른 경로를 제공합니다.
에이전트 개발에 LangGraph를 사용하면 상태, 메모리 및 사용자 피드백을 위한 지원 인프라를 구축하고 유지하는 대신 애플리케이션의 로직과 동작에 집중할 수 있습니다.
패키지 생태계
고수준 구성 요소는 각각 특정 초점을 맞춘 여러 패키지로 구성됩니다.
| 패키지 | 설명 | 설치 |
|---|---|---|
langgraph-prebuilt (langgraph의 일부) | 에이전트 생성을 위한 사전 구축된 구성 요소 | pip install -U langgraph langchain |
langgraph-supervisor | 감독자(supervisor) 에이전트 구축을 위한 도구 | pip install -U langgraph-supervisor |
langgraph-swarm | 스웜(swarm) 다중 에이전트 시스템 구축을 위한 도구 | pip install -U langgraph-swarm |
langchain-mcp-adapters | 도구 및 리소스 통합을 위한 MCP 서버 인터페이스 | pip install -U langchain-mcp-adapters |
langmem | 에이전트 메모리 관리: 단기 및 장기 | pip install -U langmem |
agentevals | 에이전트 성능 평가를 위한 유틸리티 | pip install -U agentevals |
에이전트 그래프 시각화
다음 도구를 사용하여 create_react_agent로 생성된 그래프를 시각화하고 해당 코드의 개요를 볼 수 있습니다. 이를 통해 다음과 같은 요소의 존재 여부로 정의된 에이전트의 인프라를 탐색할 수 있습니다.
tools: 에이전트가 작업을 수행하는 데 사용할 수 있는 도구(함수, API 또는 기타 호출 가능한 객체) 목록입니다.pre_model_hook: 모델이 호출되기 전에 호출되는 함수입니다. 메시지를 압축하거나 다른 전처리 작업을 수행하는 데 사용할 수 있습니다.post_model_hook: 모델이 호출된 후에 호출되는 함수입니다. 가드레일, 사용자 참여 흐름 또는 기타 후처리 작업을 구현하는 데 사용할 수 있습니다.response_format: 최종 출력의 유형을 제한하는 데 사용되는 데이터 구조입니다(예:pydanticBaseModel).
특징
그래프
다음 코드 스니펫은 create_react_agent를 사용하여 위 에이전트(및 기본 그래프)를 만드는 방법을 보여줍니다.
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
model = ChatOpenAI("o4-mini")
def tool() -> None:
"""테스트용 도구."""
...
agent = create_react_agent(
model,
tools=[tool],
)
# 그래프 시각화
# Jupyter 또는 GUI 환경의 경우:
agent.get_graph().draw_mermaid_png()
# PNG를 파일로 저장하려면:
png_data = agent.get_graph().draw_mermaid_png()
with open("graph.png", "wb") as f:
f.write(png_data)
# 터미널/ASCII 출력의 경우:
agent.get_graph().draw_ascii()