LangChain 도구 활용하기

CrewAI는 LangChain의 다양한 도구 목록과 원활하게 통합된다. 이 모든 도구를 CrewAI에서 사용할 수 있다.

import os
from dotenv import load_dotenv
from crewai import Agent, Task, Crew
from crewai.tools import BaseTool
from pydantic import Field
from langchain_community.utilities import GoogleSerperAPIWrapper

# .env 파일에 SERPER_API_KEY를 설정한다. 예시:
# SERPER_API_KEY=<your api key>
load_dotenv()

search = GoogleSerperAPIWrapper()

class SearchTool(BaseTool):
    name: str = "Search"
    description: str = "검색 기반 쿼리에 유용하다. 이 도구를 사용해 시장, 기업, 트렌드에 대한 최신 정보를 찾을 수 있다."
    search: GoogleSerperAPIWrapper = Field(default_factory=GoogleSerperAPIWrapper)

    def _run(self, query: str) -> str:
        """검색 쿼리를 실행하고 결과를 반환한다."""
        try:
            return self.search.run(query)
        except Exception as e:
            return f"검색 중 오류 발생: {str(e)}"

# 에이전트 생성
researcher = Agent(
    role='리서치 애널리스트',
    goal='최신 시장 데이터와 트렌드 수집',
    backstory="""시장 정보 수집 분야에서 수년간의 경험을 가진 전문 리서치 애널리스트다. 
    관련성 있고 최신의 시장 정보를 찾아내고 이를 명확하고 실행 가능한 형식으로 
    제공하는 능력으로 유명하다.""",
    tools=[SearchTool()],
    verbose=True
)

# 나머지 코드 ...

결론

CrewAI 에이전트의 능력을 확장하는 데 도구는 매우 중요하다. 다양한 작업을 수행하고 효과적으로 협업할 수 있게 한다. CrewAI로 솔루션을 구축할 때, 커스텀 도구와 기존 도구를 모두 활용해 에이전트의 역량을 강화하고 AI 생태계를 개선한다. 에러 처리, 캐싱 메커니즘, 도구 인자의 유연성을 고려해 에이전트의 성능과 능력을 최적화한다.