AI

[AI] LangChain 에이전트 구현하기: ReAct 프레임워크 기반 자동화 시스템

shoney9254 2025. 3. 6. 13:06
반응형

LangChain을 활용하면 단순한 언어 모델(LLM)을 넘어, 자율적으로 행동하는 AI 에이전트를 만들 수 있습니다.
이번 글에서는 Google Gemini Pro 모델과 ReAct 에이전트 프레임워크를 사용해,
웹 검색과 파이썬 코드 실행이 가능한 스마트 에이전트를 구축하는 방법을 설명하겠습니다. 🚀


📌 1. 환경 설정

먼저 필요한 라이브러리를 임포트하고 환경 변수를 설정합니다.
특히, SSL 인증을 비활성화하여 네트워크 요청에서 발생할 수 있는 보안 경고를 방지합니다.

import os
import ssl
from langchain import hub
from langchain_community.utilities.serpapi import SerpAPIWrapper
from langchain_experimental.tools import PythonREPLTool
from langchain_core.tools import Tool
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.agents import create_react_agent, AgentExecutor

# SSL 검증 비활성화
ssl._create_default_https_context = ssl._create_unverified_context

# 환경 변수 설정
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "agent/api-key.json"
os.environ["SERPAPI_API_KEY"] = "YOUR_SERPAPI_KEY"  # SerpAPI에서 무료 API 키 발급
os.environ['PYTHONHTTPSVERIFY'] = '0'

👉 SerpAPI는 검색 엔진을 활용하기 위해 필요한 API입니다.
SerpAPI 공식 사이트에서 무료 키를 발급받아 YOUR_SERPAPI_KEY를 대체하세요.


📌 2. 언어 모델(LLM) 설정

우리는 Gemini Pro 모델을 사용해 에이전트의 "두뇌" 역할을 담당하도록 설정합니다.

# Gemini Pro 모델을 활용한 LLM 초기화
llm = ChatGoogleGenerativeAI(model="models/gemini-1.5-pro")

💡 LangChain은 다양한 LLM을 지원하며, OpenAI의 GPT, Anthropic의 Claude, Google의 Gemini 등 다양한 모델을 연결할 수 있습니다.


📌 3. 에이전트 도구(Tools) 정의

에이전트가 단순한 텍스트 생성기에서 더 똑똑한 AI로 동작하려면, 외부 도구를 사용할 수 있어야 합니다.
이번 프로젝트에서는 웹 검색파이썬 코드 실행기를 도구로 추가하겠습니다.

# 에이전트가 사용할 도구 정의
tools = [
    Tool(
        name="웹검색",
        func=SerpAPIWrapper().run,
        description="최신 정보를 검색해야 할 때 사용하는 도구"
    ),
    PythonREPLTool(
        name="파이썬_실행기",
        description="파이썬 코드를 실행해야 할 때 사용하는 도구"
    )
]

🎯 도구의 역할

웹 검색: 검색 엔진을 사용해 최신 정보를 가져옵니다.
파이썬 실행기: 수학 계산, 데이터 분석, 문자열 처리 등을 수행할 수 있습니다.


📌 4. ReAct 기반 에이전트 생성

이제 LLM과 도구들을 조합하여 ReAct(Reasoning + Acting) 프레임워크 기반의 에이전트를 만듭니다.

# 프롬프트 템플릿 가져오기
prompt = hub.pull("hwchase17/react")

# ReAct 에이전트 생성
agent = create_react_agent(llm, tools, prompt)

# 에이전트 실행기(Agent Executor) 생성
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

🛠 ReAct 프레임워크란?

AI가 "생각(Reasoning) → 행동(Acting) → 피드백" 을 반복하는 방식으로 동작하는 프레임워크입니다.
예를 들어, AI가 "GDP 검색 후 원화 환산"을 요청받으면,
① 검색 → ② 환산 계산 → ③ 최종 결과 도출 의 과정을 스스로 수행합니다.


📌 5. 에이전트 테스트 🚀

이제 우리가 만든 에이전트가 실제로 어떻게 동작하는지 테스트해보겠습니다.

# 에이전트 테스트 함수
def test_agent():
    # 1️⃣ 파이썬 코드 실행 테스트 - 짝수 출력
    result1 = agent_executor.invoke(
        {"input": "파이썬을 사용해서 1부터 10까지의 숫자 중 짝수만 출력해주세요"}
    )
    print("\n기본 계산 결과:", result1["output"])
    
    # 2️⃣ 파이썬 코드 실행 테스트 - 통계 분석
    result2 = agent_executor.invoke(
        {"input": """다음 데이터의 평균과 표준편차를 계산해주세요: 
        [23, 45, 67, 89, 12, 34, 56, 78, 90, 11]"""}
    )
    print("\n통계 분석 결과:", result2["output"])
    
    # 3️⃣ 문자열 처리 테스트 - 모음 개수 세기
    result3 = agent_executor.invoke(
        {"input": "문자열 'Hello, Python World!'에서 모든 모음(a,e,i,o,u)의 개수를 세어주세요"}
    )
    print("\n문자열 분석 결과:", result3["output"])
    
    # 4️⃣ 복합 작업 테스트 - GDP 검색 후 환산
    result4 = agent_executor.invoke(
        {"input": "대한민국의 2023년 GDP가 얼마인지 검색하고, 이를 달러에서 원화로 환산해주세요 (1달러=1300원 기준)"}
    )
    print("\n복합 작업 결과:", result4["output"])

if __name__ == "__main__":
    test_agent()

🔥 실행 결과 예시

기본 계산 결과: [2, 4, 6, 8, 10]

통계 분석 결과: 평균=50.5, 표준편차=28.4

문자열 분석 결과: 모음 개수 = 6

복합 작업 결과: 대한민국 2023년 GDP는 약 1.7조 달러이며, 원화로 환산하면 약 2210조 원입니다.

🌟 정리하자면...
단순한 LLM이 아니라, 직접 행동할 수 있는 AI를 만들었다!
웹 검색을 통해 실시간 정보를 얻고, 파이썬 실행기로 데이터를 처리할 수 있다!
ReAct 프레임워크를 활용해 AI가 스스로 생각하고, 판단하고, 실행한다!


🚀 마무리

이번 글에서는 LangChain을 활용해 스스로 검색하고 계산하는 AI 에이전트를 만들었습니다.
이를 확장하면 "AI 자동 보고 시스템", "데이터 분석 도우미", "스마트 챗봇" 등 다양한 응용이 가능합니다!

✨ 앞으로의 확장 아이디어

  • 추가적인 도구(Tool) 연결 → 데이터베이스 조회, API 호출 등
  • 더 강력한 모델 적용 → GPT-4, Claude-3, Mixtral 등
  • 자연어 처리 강화 → 복잡한 요청을 더 정확하게 분석

다음에도 더 흥미로운 LangChain 활용법을 소개하겠습니다! 🚀
궁금한 점은 댓글로 남겨주세요! 😊

반응형