AIBeginnerX
ESC

검색어를 입력하세요

↑↓ 이동 · ↵ 열기 · ESC 닫기 Powered by Pagefind

№ 002 · · 2분 읽기

ReAct 패턴 — AI 에이전트의 가장 기본이 되는 사고방식

Reason + Act의 합성어, ReAct 패턴. AI 에이전트가 "생각 → 행동 → 관찰"을 반복하는 방식을 코드로 이해합니다.

By AIBeginnerX
#ReAct#에이전트#패턴

ReAct — “생각하고, 행동하고, 다시 생각하기”

ReAct는 AI 에이전트의 가장 기본이 되는 추론 패턴입니다. “Reason + Act”의 합성어로, 2022년 Google Research가 제안했어요.

핵심 아이디어

에이전트가 한 번에 답을 내는 게 아니라, 다음 3단계를 반복합니다.

Thought (생각) → Action (행동) → Observation (관찰) → 다시 Thought

왜 강력한가

단순한 “Q&A”와 비교해 보세요.

방식약점
직접 답변중간 사고를 보여주지 않아 신뢰도가 낮음
Chain-of-Thought추론은 잘하지만 실제 외부 정보에 접근 못함
ReAct추론 + 도구 사용을 한 사이클로 묶음

직접 구현해보기

def react_loop(question, llm, tools, max_steps=5):
    scratchpad = f"Question: {question}\n"
    for i in range(max_steps):
        # 1. Thought
        thought = llm(
            f"{scratchpad}\nThought {i+1}:"
        )
        scratchpad += f"Thought {i+1}: {thought}\n"

        # 2. Action 결정
        action = llm(
            f"{scratchpad}\nAction {i+1}:"
        )
        scratchpad += f"Action {i+1}: {action}\n"

        # 3. Finish면 종료
        if "Final Answer:" in action:
            return action.split("Final Answer:")[1].strip()

        # 4. 도구 실행 (Observation)
        tool_name, tool_input = parse_action(action)
        if tool_name in tools:
            observation = tools[tool_name](tool_input)
        else:
            observation = "Tool not found"
        scratchpad += f"Observation {i+1}: {observation}\n"

    return "Max steps reached"

ReAct가 빛나는 순간

  • 외부 정보가 필요한 질문 — “오늘 서울 날씨 어때?”
  • 다단계 계산 — “환율 반영해서 일본 여행 경비 계산해줘”
  • 툴 체이닝 — “GitHub 이슈 검색 → 관련 코드 찾기 → PR 만들기”

한계

  • 토큰 사용량이 큼 (전체 scratchpad를 매번 다시 보내야 함)
  • 무한 루프 위험 → max_steps 필수
  • 도구 실패 처리를 직접 구현해야 함

다음 글에서

  • ReAct vs Plan-and-Execute — 어떤 게 더 좋을까
  • LangGraph로 ReAct 그래프 시각화하기
  • 멀티 에이전트 ReAct — Supervisor 패턴

Colophon

Set in Source Serif 4 & Fraunces. Printed on warm paper.

Further reading

🤖 AI Agentic

Cursor AI 입문 가이드 — 처음 30분이 전부다

AI 코드 에디터 Cursor를 처음 켜는 분들을 위한 5단계 입문 가이드. 설치부터 첫 AI 수정까지, 진짜 30분이면 충분합니다.

— 끝 —

💬 댓글 기능

GitHub Discussions로 댓글을 받으려면 README의 Giscus 설정 안내를 따라주세요. (5분이면 끝나요)