에이전트의 오답 문제를 해결한 4줄짜리 함수 (LangGraph의 조건부 엣지)
The 4-line function that fixed my agent's wrong answers (conditional edge in LangGraph)
핵심 요약
LangGraph에서 조건부 엣지를 활용해 에이전트가 도구 결과를 검증하고 답변하도록 개선한 사례.
- ReAct 에이전트 문제 — 도구 결과를 확인하지 않고 바로 답변하여 오답을 내뱉는 현상 발생
- 조건부 엣지 도입 — 4줄의 코드로 LLM이 도구 결과를 검증하고 필요 시 루프를 돌도록 로직 수정
- 코드 구현 방식 — MessageState를 확인하여 tool_calls 여부에 따라 흐름을 제어하는 방식
- 오픈소스 공유 — 전체 67줄로 구성된 ReAct 에이전트 구현체를 GitHub에 공개함
제 ReAct 에이전트가 일주일 동안 계속 틀린 답을 내놓더군요. 도구를 호출해서 결과를 얻은 뒤, 그 결과가 타당한지 확인도 안 하고 바로 답변을 해버리는 게 문제였습니다.
해결책은 조건부 엣지(conditional edge)였는데, 딱 4줄이면 충분했습니다:
def conditional_edge(state: MessageState):
last_message = state["messages"][-1]
if last_message.tool_calls:
return "tool"
return END
이게 없을 때: LLM → 도구 → 답변 (한 번에 처리, 자가 수정 없음)
이게 있을 때: LLM → 도구 → 확인 → 필요 시 루프 → 답변
전체 저장소(총 67줄): https://github.com/dunjeonmaster07/react-agent
여러분은 에이전트의 신뢰도를 높이기 위해 어떤 간단한 패턴을 사용하시나요?


