AI Agent/AI Agent의 이해

5. LangGraph 기초1 기본 그래프

427paul 2026. 5. 29. 23:07

AI Agent란?

  • 스스로 의사 결정하며, 도구를 사용하여, 목표를 달성하는 시스템
    • 도구 사용이나 다단계 추론을 활용
    • LLM을 중심으로 다양한 외부 도구를 연결하여 구축
  • AI Agent = GPT + Tool 사용 능력 + 상태 유지
    • 문제를 스스로 해결하는 시스템
  • 주요 구성 요소
    • Goal : “무엇을 해야 할까?” - 사용자의 요청이나 해결할 문제
    • Reasoning Engine : GPT 같은 모델 → 계획을 세움
    • Toolset : 외부 기능(검색, 계산 API 등)
    • Memory / State : 이전 정보 저장, 진행 상황 추적

LangGraph란?

LangGraph

  • AI Agent 간의 협업을 그래프 기반으로 설계하는 프레임워크
  • 워크플로우(Workflow) : AI 에이전트들이 특정 목표를 위해 수행하는 일련의 과정 의미
  • 복잡한 워크플로우를 처리하기 위해 그래프 구조가 필요

여기서 그래프(Graph)란?

  • 워크플로우(작업 순서)를 의미
  • 그래프의 구성요소
    • 노드 : 실제 처리 함수(예: GPT 호출, 요약, 분류)
    • 엣지(Edge) : “이 노드가 끝나면 어디로 갈지” 정의

주요 구성 요소

  • 노드(Node)
    • 노드는 그래프에서 특정 작업이나 판단을 수행하는 단위를 의미
    • 각 노드는 파이썬 함수나 객체의 call 메서드로 구현
    • 예) 사용자의 질문을 이해하거나 필요한 정보를 검색하는 등의 작업을 담당
  • 엣지(Edge)
    • 엣지는 노드간의 연결을 나타내며, 작업의 흐름을 정의
    • 즉, 한 노드의 작업이 완료된 후 어떤 노드로 이동할지를 결정하는 역할
  • 조건부 엣지(Conditional Edge)
    • 조건부 엣지는 특정 조건에 따라 노드 간의 분기 처리를 가능하게 함
    • 예) 특정 조건이 총족되면 A 노드에서 B 노드로 이동하고, 그렇지 않으면 C 노드로 이동
  • 스테이트(State)
    • 스테이트는 그래프의 현재 상태 값을 저장 및 전달하는 역할
    • 대화 이력, 수집한 정보, 중간 결과 등을 포함
    • 각 노드는 이 state를 입력으로 받아 처리한 후 업데이트

그래프 유형

1. 간단한 그래프

  • 입력, 처리, 출력으로 이어지는 단순 흐름

2. Routing

  • 특정 입력에 따라 서로 다른 경로를 선택하여 실행 흐름을 제어
  • 사용자의 입력이나 특정 조건에 따라 서로 다른 노드 실행

3. Reflection

  • LLM이 스스로의 추론 과정을 반추하여, 자기 피드백을 생성하는 메커니즘
  • 에이전트는 반복 수행 속에서 점진적으로 성능을 향상

Graph 구조 만들기 절차

  • 시스템 목표 설정 및 구성 요소 준비(LLM 모델 선정, Toolset 준비 등)
  • 그래프 디자인 : 손으로 그래프 구조 그리기
  • Graph 코딩을 통해 구현

<aside> 💡

State 정의 → Node 정의 → 그래프 구조 → 그래프 실행

</aside>

State 정의

State

  • 그래프 노드의 입력과 출력 관리하는 딕셔너리 형태의 자료형
  • 그래프를 통과하며, 컨텍스트를 유지(각 노드는 입력과 출력을 State에 담아 처리)
  • typing 모듈의 TypedDict 클래스를 사용
    • TypedDict는 딕셔너리 기반 상태 구조를 명확하게 정의
    • LangGraph가 각 노드 간 상태 흐름을 안정적으로 추적하고 검증할 수 있게 해줌
from typing import TypedDict

# 그래프 전체에서 주고받는 데이터 구조를 정의
class State(TypedDict):
    text: str
    extra_field: int

Node 정의

Node

  • 노드(Nodes)는 단순히 Python 함수
  • 입력 : State 구조
  • 출력 : State 구조
def node_1(state: State):
    print(state)
    # 입력: 상태 (state) → text 필드에 문자열을 덧붙임
    # extra_field은 무조건 10으로 덮어씀
    return {"text": state['text'] + "(텍스트 추가됨)", "extra_field": 10}

간단한 그래프 : 그래프 구조

그래프 구조 : START → Node → END

  • 그래프 초기화
  • Node 추가 : 생성한 함수를 노드로 추가(add_node)
  • 노드 연결 : .add_edge(노드1, 노드2)
  • 컴파일
from langgraph.graph import StateGraph, START, END

# 그래프 초기화
builder = StateGraph(State)

# Node 추가
builder.add_node("node", node_1)  # "node"라는 이름으로 node_1 함수를 노드로 추가

# 노드 연결
builder.add_edge(START, "node")
builder.add_edge("node", END)

# 그래프 컴파일
graph = builder.compile()
graph.invoke({"text" : "안녕!"})

 

https://github.com/427paul/AI_Agent/blob/main/AI_Agent_Basic/06.%20AI%20Agent%20%EA%B8%B0%EB%B3%B8%20%EA%B7%B8%EB%9E%98%ED%94%84.ipynb

 

AI_Agent/AI_Agent_Basic/06. AI Agent 기본 그래프.ipynb at main · 427paul/AI_Agent

Contribute to 427paul/AI_Agent development by creating an account on GitHub.

github.com

 

'AI Agent > AI Agent의 이해' 카테고리의 다른 글

7. LangGraph 기초2 도구  (0) 2026.05.31
6. LangGraph 기초1 기본 그래프2  (0) 2026.05.30
4. Memory  (1) 2026.05.28
3. RAG 개념 이해  (0) 2026.05.27
2. 메모리, RAG 개념 이해  (0) 2026.05.26