AI 에이전트 — 모델이 아니라 그래프 · 그래프로 보는 에이전트 · 실습
LangGraph — 멈추는 에이전트를 만든다
목표
LangGraph 로 재고를 물어보는 작은 에이전트를 만듭니다. 그래프, 쌓이는 상태,
조건부 갈래, 멈추는 루프, 도구 노드, 실패 경로, 체크포인터, 경로 기록까지
여덟 단계입니다.
모델은 부르지 않습니다
판단하는 노드를 규칙으로 둡니다. **이 실습이 가르치는 것은 모델 호출이
아니라 그래프**이기 때문입니다 — 언제 멈출지, 무엇을 상태로 들고 다닐지,
도구가 실패하면 어디로 갈지. 에이전트에서 실제로 어려운 곳이 거기이고,
모델을 붙이는 것은 나중에 노드 하나를 바꾸는 일입니다.
형식
/root/work/agent/graph.py 에 아래를 둡니다.
build_graph(checkpoint: bool = False)— compile 된 그래프를 돌려줍니다.CATALOG— 품목별 재고 딕셔너리(5단계부터).
상태에는 최소한 question, steps(리스트), tries(정수), answer 를 둡니다.
단계 8개
- 그래프 하나를 세우고 돌려 본다
확인 기준: build_graph().invoke() 가 돌고 steps 에 노드 이름이 남습니다 - 상태가 쌓이게 만든다
확인 기준: 서로 다른 노드 두 개 이상을 지나고 steps 에 전부 남습니다 - 질문에 따라 갈래를 나눈다
확인 기준: '재고' 질문은 lookup 을 지나고 인사말은 지나지 않습니다 - 돌되 반드시 멈춘다
확인 기준: 루프가 2회 이상 돌고 5회 이내에 스스로 멈춥니다 - 도구의 결과를 실제로 쓴다
확인 기준: CATALOG 의 값이 answer 에 반영됩니다 - 도구 실패는 예외가 아니라 경로다
확인 기준: 없는 품목 질문이 fallback 을 지나고 answer 가 '모른다' 는 뜻을 담습니다 - 대화를 이어 붙인다
확인 기준: get_state 로 상태가 남고 thread_id 별로 따로 관리됩니다 - 지나온 길을 기록한다
확인 기준: 08-trace.json 의 경로가 실제 실행과 일치하고 두 경로가 서로 다릅니다