LangGraph 도입 검토 및 데이터셋 설계

Aug 17, 2026·
In Hyuk
In Hyuk
· 3 min read
blog

LangGraph 도입하는 게 맞을까?

LangGraph비용 최적화 를 위해 도입하는 게 좋을 거 같음.

  • 현재 version은 ChatGPT 4o 모델을 활용해 사용자 자연어 처리를 함.
    • 현재 얼마의 비용이 청구되는 지에 대한 정확한 판단이 필요함. 문제 설정 필요

    • 하지만 사용자 명령이 만약 안녕, ㅎ2, ㅎㅎ 라면? 굳이 모든 명령들을 전부 4o 모델로 처리할 필요가 있을까??

    • 사용자의 명령을 중요도 낮음, 약간 중요, 매우 중요 등으로 나눠서, 이에 맞는 수준의 모델로 라우팅해주는 게 좋을 거 같음. 나중에 구현할 기능

Version 01.

flowchart TD START([사용자 입력
prompt + pending 플래그]) --> R{의도 라우터
gpt-4o-mini} R -->|잡담 / 인사 / ㅎㅎ| S[단순 응답
gpt-4o-mini
tool 없음] S --> END1([END
채팅 응답만]) R -->|알림 규칙 관련| P{pending?} P -->|false| E[규칙 추출
gpt-4o
extract_notification_rule] P -->|true| C[재질문 후속 분류
gpt-4o-mini] C -->|supplement
보충| M[이전 명령 + 보충
합친 prompt] C -->|new_command
새 명령| N[이번 prompt만] M --> E N --> E E -->|tool 성공| OK[confirm 문장
gpt-4o] E -->|정보 부족| ASK[재질문 메시지
ok=false] OK --> END2([END
규칙 저장]) ASK --> END3([END
앱이 pending 유지])

Version 02.

flowchart TD START([사용자 입력
prompt + pending + pendingOriginal]) --> ENTRY{pending=true
AND pendingOriginal 있음?} ENTRY -->|Yes| RP[resolve_pending] ENTRY -->|No| R[의도 라우터
gpt-4o-mini
route_intent] R -->|chitchat
잡담/인사/ㅎㅎ| S[단순 응답
gpt-4o-mini
tool 없음] S --> END1([END
ok=false
failReason=chitchat
needsSupplement=false]) R -->|extract
알림 규칙 관련| RP RP --> C{pending 분류?
gpt-4o-mini} C -->|pending 아님| N[이번 prompt만] C -->|supplement
보충| M[이전 명령 + 보충
합친 prompt] C -->|new_command
새 명령| N M --> E[규칙 추출
gpt-4o
function calling] N --> E E -->|성공| OK[confirm 문장
gpt-4o] E -->|정보 부족| ASK[재질문
ok=false
needsSupplement=true] E -->|충돌/앱 미해결 등| FAIL[실패
ok=false
needsSupplement=false] OK --> END2([END
규칙 저장]) ASK --> END3([END
앱이 pending 유지]) FAIL --> END4([END
pending 해제])

LangGraph 도입 시 (Routing 버전을 추가), 확인 사항

  • A버전에 비해 B버전에서, 정확도가 많이 떨어지지 않는지
  • 비용 및 속도가 얼마나 줄어드는지

Evaluation Dataset 구성 기준

Evaluation Dataset이 특정 유형에 편중되지 않도록, 주요 평가 축을 intent, time, target으로 나누고 각 카테고리 별 최소 케이스 수를 정의했습니다.

  • 전체 Dataset: 85 cases
  • 주요 카테고리 별 최소 5 cases 이상 확보
  • ok=true 케이스에서는 time, target 세부 유형이 모두 포함되도록 구성

Coverage 확인

모든 주요 카테고리에서 최소 5개 이상의 평가 케이스를 확보하여, 특정 입력 유형이 Dataset에서 완전히 누락되는 것을 방지했습니다.
개수기준상태
A. intentmute44≥5OK
A. intentallow14≥5OK
A. intentreject27≥5OK
B. time (ok=true 58건)duration38≥5OK
B. timeuntil_absolute5≥5OK
B. timerelative_delay5≥5OK
B. timedaily5≥5OK
B. timeweekly5≥5OK
C. target (ok=true 58건)all11≥5OK
C. targetsingle_app29≥5OK
C. targetmulti_app5≥5OK
C. targetcontent6≥5OK
C. targetapp_and_content7≥5OK

References

LangGraph 도입해야 한다면 내 프로젝트 서비스를 최적화시켜줄 수 있는 최적의 참조 논문은..?

  1. ReAct
  • ReasoningAction을 번갈아 수행하면서 외부 환경 / 도구와 상호작용하는 구조
  1. Self-Refine
  • 같은 LLM이 Generator, Feedback Provider, Refiner 역할을 수행하면서 반복적으로 결과 개선
  • 별도의 Supervised Training이나 RL 없이도 여러 task에서 one-shot generation보다 성능 개선 보고
  1. Reflexion
  • 자연어 reflection 형태로 memory에 저장하고 다음 attempt에 활용하는 구조
  • LangGraph에서 state / memory / retry loop를 설계할 때 굉장히 자연스럽게 연결
  1. CRITIC
  • 틀린 모델이 자기 답을 평가하면 틀릴 수 있음.
  • 검색엔진, 코드 실행기 같은 외부 도구의 피드백을 사용해 검증
  1. Tree of Thoughts
  • 여러 reasoning candidate를 만들고 평가하면서 search / branching / backtracking
  1. Plan-and-Solve
  • 전체 문제를 먼저 작은 subtask로 나눈 뒤 실행
  • 특히 Zero-shot CoT에서 발생하는 missing-step 등의 문제를 해결하려는 접근
  1. ReWOO
  • reasoningtool observation분리
  1. Toolformer
  • Tool Calling의 중요한 초기 연구
  • LLM이 언제 어떤 API를 사용할지를 결정하는 것 자체를 연구한 논문
  1. AutoGen
  • 같은 여러 Agentinteraction을 일반화한 프레임워크 연구
  • LLM, human input, tool을 조합한 customizable/conversable agent를 구성하고 다양한 conversation pattern을 정의
In Hyuk
Authors
Data Analyst
데이터AI를 통해 가치를 만드는 것을 좋아합니다.
LLM을 활용한 서비스로 가치를 창출하고 유저 데이터 분석에 관심이 있습니다.