37분
실습: ReAct Agent 직접 구현
Day 3: ReAct 에이전트
실습: ReAct Agent 직접 구현
AI Agent 기초 > Day 3: ReAct 에이전트
학습 목표
- ReAct 패턴을 OpenAI API로 직접 구현한다
- Thought-Action-Observation 사이클을 코드로 표현한다
- 사고 과정을 로깅하는 Agent를 만든다
미션: 생각하는 Agent 만들기
어제 만든 Tool을 사용하되, ReAct 패턴으로 추론하는 Agent를 구현하세요.
핵심 변경점
- System Prompt에 ReAct 지시 추가
- 매 루프마다 LLM의 Thought를 로깅
- 불필요한 Tool 호출 방지 로직
- 최대 반복 횟수와 조기 종료 조건
Agent가 해결할 테스트 시나리오
"A라인 설비 전체 점검하고 문제 있으면 원인과 필요 부품까지 알려줘"
어디서 돌리나
이 코드는 OpenAI API 를 부르므로 브라우저 안에서는 돌지 않습니다. 사이트의
Python Console은 표준 라이브러리만 갖춘 브라우저 파이썬이라
from openai import OpenAI 에서 ModuleNotFoundError 로 멈춥니다. 내 컴퓨터의 파이썬에
pip install openai 로 설치하고 OPENAI_API_KEY 를 환경변수에 넣은 뒤 돌리세요.
앞부분의 Tool 함수와 EQUIPMENT_DB·MANUAL_DB·INVENTORY_DB 는 표준 라이브러리만 쓰므로
그 부분만 떼어 Python Console 에 붙여넣으면 반환 문자열을 확인할 수 있습니다.
루프가 돌아가는 모습은 콘솔이 아니라 내 터미널에서 봅니다.
에디터 로딩 중...
힌트 보기
- • REACT_SYSTEM_PROMPT에 "생각하라"는 지시를 반드시 포함하세요
- • message.content와 message.tool_calls를 동시에 확인하세요
- • tool_call_id를 반드시 매칭하여 결과를 전달하세요
- • max_iterations로 무한 루프를 방지하세요
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
ReAct Thought-Action 사이클 파싱 점검AI 학습 팁
AI에게 LLM 출력에서 Thought·Action·Observation을 파싱하는 코드의 엣지케이스를 찾게 해 사이클 안정성을 높이세요.
이 ReAct Agent 코드에서 LLM이 'Action:' 없이 Thought만 출력하거나, Action 이름이 정의된 Tool과 대소문자가 다를 때, 또는 Observation이 너무 길어 컨텍스트를 초과할 때 어떻게 처리되는지 분석하고 방어 코드를 추가해줘.
이 팁이 도움이 됐나요?