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

20차시. Edge 이해

8. Edge 문법 정리

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

목적문법설명
시작 지정add_edge(START, "retrieve")그래프 진입점
순차 연결add_edge("a", "b")무조건 다음으로
종료 지정add_edge("generate", END)여기서 실행 종료
조건 분기add_conditional_edges(n, f, / map)f의 반환값으로 경로 결정
루프add_edge("bump", "retrieve")되돌아가기 — 상한 필수
여러 종료END로 가는 Edge 여러 개모든 분기에 하나씩

8-1) 자주 겪는 에러

에러 / 증상원인과 해결
KeyError: 'yes'분기 함수 반환값이 경로 맵에 없습니다. 문자열을 일치시키세요
ValueError: Graph must have an entrypointadd_edge(START, ...)를 빠뜨렸습니다
실행이 끝나지 않고 멈춤END로 가는 경로가 없습니다
GraphRecursionError루프에 종료 조건이 없습니다. MAX_RETRY를 확인하세요
ValueError: Unknown node / 'genarate'add_node 이름과 add_edge 이름의 오타입니다
분기가 항상 같은 쪽으로만 감분기 함수가 보는 State 키가 실제로 채워지는지 확인하세요

🔍 노드 이름 오타를 막는 방법
문자열을 상수로 빼두면 오타가 사라집니다.
RETRIEVE = "retrieve"
GENERATE = "generate"
g.add_node(RETRIEVE, retrieve_node)
g.add_edge(RETRIEVE, GENERATE)
편집기가 자동완성을 해주고,
오타가 나면 실행 전에 NameError로 잡힙니다.

← 이전 절20차시 · 7. 실습 ③ — 무한루프 체험하기다음 절 →20차시 · 9. 설계는 표로 먼저