20

ReAct Agent 디버깅 가이드

Day 3: ReAct 에이전트

학습 목표

ReAct Agent의 Thought-Action-Observation 루프를 디버깅하는 방법을 안다 무한 루프, 잘못된 Tool 선택, 헛도는 추론을 진단하고 해결할 수 있다 LangSmith 또는 로그 기반 추적 방법을 이해한다

ReAct Agent 디버깅 가이드

TAO 루프 로깅

ReAct 패턴의 핵심인 Thought-Action-Observation을 로깅하면 문제의 원인을 빠르게 찾을 수 있다.

import logging
logging.basicConfig(level=logging.DEBUG)

class DebugReActAgent:
    def __init__(self, llm, tools):
        self.llm = llm
        self.tools = {t.name: t for t in tools}
        self.trace = []

    def run(self, question):
        print(f"\n{'='*50}")
        print(f"질문: {question}")
        print('='*50)

        for step in range(1, 11):  # 최대 10 스텝
            thought, action, action_input = self._think(question)
            print(f"\n[Step {step}]")
            print(f"  Thought: {thought}")
            print(f"  Action: {action}")
            print(f"  Input: {action_input}")

            if action == "finish":
                print(f"  Final: {action_input}")
                return action_input

            observation = self._act(action, action_input)
            print(f"  Observation: {observation[:100]}...")  # 앞 100자

            self.trace.append({
                "step": step, "thought": thought,
                "action": action, "input": action_input,
                "observation": observation
            })

        return "최대 스텝 초과"

흔한 문제 진단표

증상원인해결
같은 Tool 반복 호출종료 조건 없음, 프롬프트 미비max_iterations 설정, 프롬프트에 "중복 금지" 추가
엉뚱한 Tool 선택Tool description 불명확description에 "언제 사용하는지" 명시
Observation 무시프롬프트 지시 불충분"이전 Observation을 반드시 활용" 추가
존재 않는 설비 코드 추측Tool 에러 처리 미비Tool에서 에러를 친절한 메시지로 반환
답변 생성 지연Tool 과다 호출캐싱 + 프롬프트 최적화

단계별 검증 체크리스트

□ Tool 정의 검증
  - name: 영문 소문자, 밑줄만 사용
  - description: 20자 이상, 사용 시점 명시
  - parameters: 타입과 설명 완비

□ 프롬프트 검증
  - 역할 정의 (제조 현장 AI)
  - 사용 가능한 Tool 목록
  - 금지 행동 (중복 조회 등)
  - 응답 형식 지정

□ 실행 검증
  - 단순 질문 (Tool 1회): 정상 동작?
  - 복합 질문 (Tool 3회): 체이닝 정상?
  - 에러 상황: 우아한 에러 메시지?

실무 팁: 배포 전 10가지 시나리오 테스트를 완료하고 trace를 저장해두면 이후 문제 발생 시 빠르게 비교할 수 있다.

AI로 학습하기 — 꿀팁
🤖ReAct 디버깅 로그 분석 가이드 생성AI 학습 팁

ReAct Agent의 Thought-Action-Observation 로그를 체계적으로 분석하는 가이드를 만들어두면 현장 디버깅 속도가 높아집니다.

CNC 머신 고장 진단 ReAct Agent의 실제 실패 로그를 시뮬레이션해줘. 무한 루프, 잘못된 Tool 선택(진동 데이터 대신 온도 데이터 조회), 헛도는 추론(동일 결론 반복) 3가지 버그 유형을 각각 Thought/Action/Observation 형식의 로그로 보여주고, 각 로그에서 버그를 식별하는 방법과 수정 방향을 설명해줘.
이 팁이 도움이 됐나요?
핵심 포인트
  • TAO(Thought-Action-Observation) 루프 로깅이 ReAct 디버깅의 핵심이다
  • 무한 루프는 max_iterations 설정과 프롬프트에 중복 금지 규칙으로 해결한다
  • Tool description에 '언제 사용하는지'를 명시하면 잘못된 Tool 선택을 방지한다