안녕하세요 오늘은 BESPIN GLOBAL Innovate AI실 이규민님이 작성해주신 ‘나만의 ReAct 구현하기 : ReAct를 활용한 추론과 작업 자동화’ 대해 소개해드리도록 하겠습니다.
목차
- 나만의 ReAct 구현하기
1-1. ReAct란 무엇인가?
1-2. 에이전트와 툴킷 구성
1-3. 핵심 예제 - AWS에서 ReAct 활용하기
2-1. AWS 서비스 통합
2-2. 업무 자동화
2-3. 마무리
1. 나만의 ReAct 구현하기
1-1. ReAct란 무엇인가?
이번 주제는 “ReAct를 활용한 추론과 작업 자동화” 입니다. AWS Tech Guru에서 활동하며 참여했던 “AWS Ambassador Meetup 2024: ReAct를 활용한 추론과 작업 자동화” 세션에서의 인사이트를 정리하였습니다.
AWS Ambassador Meetup 2024에서는 ReAct(Reasoning + Action) 프레임워크와 LLM(Large Language Models)을 활용한 작업 자동화와 추론 기능을 중점적으로 다루었습니다.
특히, Claude 3와 같은 최신 LLM을 추론 엔진으로 활용하는 방법, ReAct를 기반으로 하는 에이전트 구성, 그리고 여러 도구(tool)를 활용하여 효율적으로 데이터를 분석하고 자동화하는 방식을 소개했습니다.
이번 글에서는 발표 내용을 요약하며, ReAct 프레임워크의 주요 개념과 AWS 생태계를 활용한 구현 사례를 살펴보겠습니다.
ReAct는 LLM을 단순한 데이터 암기용 모델이 아닌, 추론 엔진으로 활용하는 접근 방식입니다. 이를 통해 복잡한 작업을 단계적으로 수행하거나 다양한 데이터 소스와 상호작용할 수 있습니다.
1-2. 에이전트와 툴킷 구성
ReAct는 다음과 같은 구성 요소로 이루어져 있습니다:
- Schema: 작업 순서를 정의하는
AgentAction
,AgentFinish
,Intermediate Steps
등. - Agent: 언어 모델, 프롬프트, 그리고 출력 파서를 통해 작업을 실행하는 역할.
- AgentExecutor: 작업을 실행하고 결과를 반환하는 런타임 환경.
- Tools: 특정 작업을 수행하기 위한 함수 모음.
- Toolkits: 도구들을 조합하여 특정 목표를 달성하도록 지원.
1-3. 핵심 예제
@tool decorator와 함께 함수(tool 이름)와 description 정의 후, Agent에서 호출해 사용합니다. (️ Agents의 핵심 컴포넌트를 유의하여 작성)
@tool
def get_length(text: str) -> int:
"""단어의 글자수를 구합니다."""
return len(text)
agent = initialize_agent(
tools=[get_length], llm=chat, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
)
result = agent.invoke({"input": "langchain의 글자수를 구하시오."})
수학 계산 하기
from langchain.agents import load_tools, tool, initialize_agent, AgentType
from langchain_community.chat_models import BedrockChat
from datetime import datetime
chat = BedrockChat(
model_id="anthropic.claude-3-sonnet-20240229-v1:0",
model_kwargs={"max_tokens": 2048, "temperature": 0.1},
region_name="us-west-2",
)
# Built-in
tools = load_tools(["llm-math"], llm=chat)
현재 시간 질의하기
@tool
def time(text: str) -> str:
"""현재 시간과 관련된 질문에 사용합니다 이 함수는 항상 오늘의 시간 반환합니다."""
return str(datetime.now())
agent= initialize_agent(
tools + [time],
llm=chat,
agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
handle_parsing_errors=True,
verbose = True
)
agent("지금은 몇 일 몇 시이고, 19시 발표 예정인 저에게 발표 자료를 만들기까지 남은 시간은 몇 시간 인가요?")
2. AWS에서 ReAct 활용하기
2-1. AWS 서비스 통합
AWS 생태계를 기반으로 ReAct를 구현하면 다음과 같은 기능을 활용할 수 있습니다:
- 다양한 SaaS 애플리케이션 통합: 여러 애플리케이션 간의 작업을 자동화.
- AWS App Studio: 드래그 앤 드롭으로 비즈니스 애플리케이션 제작.
- AWS Deadline Cloud: 완전 관리형 렌더링 서비스로 작업 효율성 극대화.
2-2. 업무 자동화
- 사용 사례: 프로젝트 관리 도구(Jira, Asana)와 통합하여 워크플로우를 간소화.
- 효과: 팀 전체의 생산성을 높이고, 반복 작업을 줄여 혁신적인 작업에 더 많은 시간을 할애.
3. 마무리
ReAct 프레임워크와 AWS 생태계를 활용하여 추론과 자동화의 가능성을 확장하는 방법을 알아보았습니다. 그러나 몇 가지 한계점도 존재합니다:
- 복잡한 워크플로우 구성: 모든 도구를 통합하려면 시간이 소요됩니다.
- LLM 의존성: 모델의 성능은 데이터 품질과 프롬프트 엔지니어링에 크게 의존합니다.
여기까지 ‘나만의 ReAct 구현하기 : ReAct를 활용한 추론과 작업 자동화’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다.
Written by 이 규민/ Innovate AI실
BESPIN GLOBAL