우공이산(愚公移山)

자신과 세상을 바꾸는 것은 머리좋고 가진것이 많은 사람이 아니라 결코 포기하지 않는 의지로 꾸준히 노력해 가는 사람이다. 오늘이 쌓여 내일을 만들고, 내일이 쌓여 인생을 만든다.

Code Story

LangGraph 개발 가이드 요약 및 참고사이트

보노보노 2025. 6. 18. 08:36

LangGraph 개발 가이드 요약

LangGraph란?

LangGraph는 LLM(대형 언어 모델) 기반의 복잡한 AI 워크플로우를 상태 기반 그래프 구조로 설계할 수 있도록 도와주는 프레임워크입니다. 여러 에이전트(Agent)와 작업 단계를 노드(Node)와 엣지(Edge)로 모델링하여, 복잡한 분기, 반복, 상태 관리, 사람-AI 협업 등을 체계적으로 구현할 수 있습니다[1][2][3].


LangGraph의 핵심 개념

개념 설명 예시
상태(State) 대화 컨텍스트, 중간 결과 등 모든 정보를 저장하는 데이터 구조 이전 대화 내용, 설정, 검색 결과 등
노드(Node) 실행 가능한 작업 단위(Python 함수) 검색, 응답 생성, API 호출 등
엣지(Edge) 노드 간의 연결 및 흐름 제어 조건부 실행, 순차 실행, 분기 등
도구(Tools) 외부 기능 연동 웹 검색, 계산, 파일 처리 등
  • 상태(State): 대화의 맥락, 중간 결과, 사용자 입력 등 모든 정보를 저장하며, Python의 TypedDict 또는 BaseModel로 정의합니다[2][4][5].
  • 노드(Node): 각 단계별로 실행되는 함수로, 현재 상태를 입력받아 작업을 수행하고 상태를 업데이트합니다[2][4].
  • 엣지(Edge): 다음에 실행할 노드를 결정하는 함수로, 조건부 분기나 순차 실행을 구현합니다[2][4][3].

LangGraph 주요 기능 및 예시

  • 상태 기반 워크플로우: 각 단계별로 상태를 주고받으며, 복잡한 분기와 반복, 에러 복구도 체계적으로 설계할 수 있습니다[1][3].
  • 에이전트 조정: 여러 에이전트가 협력하여 공동 목표를 달성할 수 있도록 데이터 흐름과 작업 순서를 관리합니다[1][6].
  • 사람-AI 협업: 중간에 수동 개입(휴먼 인더 루프), 상태 롤백(타임 트래블), 대화 분기 등 고급 기능을 지원합니다[2][7].
  • 확장성: 웹 검색, API 호출 등 다양한 도구와 연동하여 복잡한 AI 애플리케이션을 쉽게 확장할 수 있습니다[2][6].

기본 챗봇 예시 코드

from langgraph.graph import StateGraph, START, END

class State(TypedDict):
    messages: Annotated[list, add_messages]

graph_builder = StateGraph(State)

def chatbot(state: State):
    return {"messages": [llm.invoke(state["messages"])]}

graph_builder.add_node("chatbot", chatbot)
graph_builder.add_edge(START, "chatbot")
graph_builder.add_edge("chatbot", END)
graph = graph_builder.compile()

참고 사이트 및 공식 문서


요약

LangGraph는 복잡한 AI 워크플로우를 그래프와 상태 기반으로 설계·관리할 수 있는 프레임워크로, 다양한 에이전트, 분기, 반복, 사람-AI 협업, 상태 롤백 등 고급 기능을 제공합니다. 공식 문서와 다양한 한글 튜토리얼을 참고하면 실전 예제와 함께 쉽게 시작할 수 있습니다[1][2][8].

[1] https://data-newbie.tistory.com/997
[2] https://jypark1111.tistory.com/275
[3] https://tilnote.io/pages/68156a69baa37b745385c26c
[4] https://rudaks.tistory.com/entry/%EB%B2%88%EC%97%ADlanggraph-Contextual-Guides-LangGraph-Glossary
[5] https://wikidocs.net/267808
[6] https://s-core.co.kr/insight/view/langchain%EC%9D%98-%EC%83%88%EB%A1%9C%EC%9A%B4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-langgraph-%ED%9B%91%EC%96%B4%EB%B3%B4%EA%B8%B0/
[7] https://langchain-ai.github.io/langgraph/concepts/why-langgraph/
[8] https://langchain-ai.github.io/langgraph/
[9] https://www.langchain.com/langgraph
[10] https://github.com/langchain-ai/langgraph-example
[11] https://github.com/langchain-ai/langgraph-studio
[12] https://memoryhub.tistory.com/entry/LangGraph-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%B4%88%EB%B3%B4%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-%EA%B0%80%EC%9D%B4%EB%93%9C-%F0%9F%8C%9F
[13] https://vision-ai.tistory.com/265
[14] https://jypark1111.tistory.com/276
[15] https://www.langchain.com/langgraph-platform
[16] https://blog.langchain.dev/langgraph/
[17] https://wikidocs.net/264624
[18] https://tilnote.io/pages/68156ae8baa37b745385c3ea
[19] https://www.langchain.com