RAG2026-5일20차시 · Edge 이해5 / 18← 이전목차다음 →MetaContents

20차시. Edge 이해

2. Edge의 세 가지 형태

출처: 원본 PDF 20차시_Edge이해.pdf 4~5쪽 · 쪽 그림 4쪽 5쪽

2-1) 일반 Edge — 무조건 다음으로

출력
g.add_edge("retrieve", "generate")

의미: retrieve가 끝나면 무조건 generate로 간다

판단이 필요 없는 고정 흐름에 씁니다.
가장 단순하고 가장 많이 쓰입니다.

2-2) 조건부 Edge — 판단에 따라 갈림

Python
def route(state):
    return "ok" if state["retrieval_ok"] else "empty"

g.add_conditional_edges(
    "retrieve",        # ① 어느 노드 다음에?
    route,             # ② 어떤 함수로 판단?
    {                  # ③ 결과에 따라 어디로?
        "ok":    "generate",
        "empty": "fallback",
    }
)

🚦 신호등 비유
① 출발 노드 = 교차로 위치
② 분기 함수 = 신호등을 보는 눈
③ 경로 맵 = "초록이면 직진, 빨강이면 정지"
분기 함수는 보기만 합니다.
차를 움직이지는 않습니다.
움직이는 것은 LangGraph가 경로 맵을 보고 합니다.

2-3) START / END — 시작과 끝

Python
from langgraph.graph import START, END

g.add_edge(START, "retrieve")     # 여기서 시작
g.add_edge("generate", END)       # 여기서 끝
g.add_edge("fallback", END)       # 여기서도 끝

⚠️ 둘 다 반드시 연결해야 합니다
START를 안 붙이면
어디서 시작할지 몰라 컴파일 에러가 납니다
END를 안 붙이면
그래프가 끝나지 않고 멈춰버립니다
END가 여러 개여도 됩니다
generate로 끝나든 fallback으로 끝나든
둘 다 END로 연결하면 됩니다

← 이전 절20차시 · 1. 노드가 부품이라면 Edge는 설계도다음 절 →20차시 · 3. 분기 함수 작성 규칙 4가지