LabHub

AI 에이전트 — 모델이 아니라 그래프 · 그래프로 보는 에이전트 · 실습

LangGraph — 멈추는 에이전트를 만든다

LabHub 에서 이어서 보기

목표

LangGraph 로 재고를 물어보는 작은 에이전트를 만듭니다. 그래프, 쌓이는 상태,
조건부 갈래, 멈추는 루프, 도구 노드, 실패 경로, 체크포인터, 경로 기록까지
여덟 단계입니다.

모델은 부르지 않습니다

판단하는 노드를 규칙으로 둡니다. **이 실습이 가르치는 것은 모델 호출이
아니라 그래프**이기 때문입니다 — 언제 멈출지, 무엇을 상태로 들고 다닐지,
도구가 실패하면 어디로 갈지. 에이전트에서 실제로 어려운 곳이 거기이고,
모델을 붙이는 것은 나중에 노드 하나를 바꾸는 일입니다.

형식

/root/work/agent/graph.py 에 아래를 둡니다.

상태에는 최소한 question, steps(리스트), tries(정수), answer 를 둡니다.

단계 8개

  1. 그래프 하나를 세우고 돌려 본다
    확인 기준: build_graph().invoke() 가 돌고 steps 에 노드 이름이 남습니다
  2. 상태가 쌓이게 만든다
    확인 기준: 서로 다른 노드 두 개 이상을 지나고 steps 에 전부 남습니다
  3. 질문에 따라 갈래를 나눈다
    확인 기준: '재고' 질문은 lookup 을 지나고 인사말은 지나지 않습니다
  4. 돌되 반드시 멈춘다
    확인 기준: 루프가 2회 이상 돌고 5회 이내에 스스로 멈춥니다
  5. 도구의 결과를 실제로 쓴다
    확인 기준: CATALOG 의 값이 answer 에 반영됩니다
  6. 도구 실패는 예외가 아니라 경로다
    확인 기준: 없는 품목 질문이 fallback 을 지나고 answer 가 '모른다' 는 뜻을 담습니다
  7. 대화를 이어 붙인다
    확인 기준: get_state 로 상태가 남고 thread_id 별로 따로 관리됩니다
  8. 지나온 길을 기록한다
    확인 기준: 08-trace.json 의 경로가 실제 실행과 일치하고 두 경로가 서로 다릅니다