AI

Bright Data로 Agno에서 AI 에이전트 구축하기

Bright Data의 실시간 검색 결과 페이지(SERP) 및 웹 스크래핑 도구를 활용하여 Agno AI 에이전트에 정확한 실시간 데이터 워크플로를 제공하는 방법을 알아보세요.
1 분 읽기
Build an Agent with SERP and Web Scraping Tools in Agno
요약:

ChatGPT
Perplexity


이 글에서는 다음을 살펴보게 됩니다:

  • Agno가 무엇이며 AI 에이전트 프레임워크로서 특별한 점은 무엇인지.
  • 데이터 검색 도구와의 연동이 AI 에이전트의 성능을 크게 향상시키는 이유.
  • Agno를 Bright Data 도구와 결합하여 실시간 데이터 검색이 가능한 에이전트를 구축하는 방법.

자, 시작해 보겠습니다!

Agno란 무엇인가?

Agno는 경량 AI 에이전트 및 다중 에이전트 시스템 구축을 위한 오픈소스 Python 프레임워크입니다. 메모리, 지식 통합, 고급 추론 등에 대한 내장 지원 기능을 제공합니다.

Agno의 독특한 특징은 다음과 같습니다:

  • 모델 독립적: 23개 이상의 LLM 공급자에 대한 통합 인터페이스를 제공합니다.
  • 고성능: 에이전트 인스턴스화 시간 약 3마이크로초, 평균 메모리 사용량 약 6.5KiB.
  • 추론을 핵심 요소로 강조: 에이전트 신뢰성 향상과 어려운 작업 처리를 위해 추론을 중시합니다. 추론 모델, 추론 도구, 사용자 정의 사고 과정 파이프라인 등 세 가지 추론 방식을 지원합니다.
  • 내재적 다중 모달리티: 에이전트가 텍스트, 이미지, 오디오, 비디오를 기본적으로 처리하고 생성할 수 있습니다.
  • 다중 에이전트 시나리오 지원: 공유 메모리, 컨텍스트 및 조정된 추론을 통해 에이전트 협업 팀을 구축합니다.
  • 내장형 에이전트 검색: 에이전트는 최첨단 에이전트 RAG 워크플로를 위해 런타임에 20개 이상의 벡터 데이터베이스를 검색할 수 있습니다.
  • 통합 메모리 및 세션 저장: 에이전트에는 내장 저장소 및 메모리 드라이버가 포함되어 있어 장기 메모리 및 지속적인 세션 추적을 제공합니다.
  • 구조화된 출력: 완전히 유형화된 응답을 반환합니다.

이 외에도 Agno는 50개 이상의 타사 AI 도구 공급자를 기본적으로 지원합니다. 즉, Agno로 구축된 AI 에이전트는 시중 최고의 AI 솔루션과 손쉽게 통합될 수 있습니다.

AI 에이전트의 정확성과 효율성을 위해 웹 데이터 접근이 필수적입니다

모든 AI 에이전트 프레임워크는 기반이 되는 대규모 언어 모델(LLM)의 핵심적 한계를 상속받습니다. 대부분의 LLM은 정적 데이터셋으로 사전 훈련되어 실시간 인식 능력이 부족하며, 라이브 웹 콘텐츠에 안정적으로 접근할 수 없습니다.

이로 인해 답변이 오래되었거나 심지어 허위 정보를 제공하기도 합니다. 이러한 한계를 극복하려면 에이전트(확장 기능의 경우, 에이전트가 의존하는 LLM도 포함)가 신뢰할 수 있는 웹 데이터에 접근할 수 있어야 합니다. 왜 웹 데이터일까요? 웹이 가장 포괄적인 정보 원천이기 때문입니다 .

따라서 이를 달성하는 효과적인 방법은 Agno 에이전트에게 실시간 검색 쿼리 수행 및 모든 웹 페이지에서 콘텐츠 스크래핑 기능을 부여하는 것입니다. 이는 Agno의 Bright Data 도구를 통해 가능합니다!

이 도구들은 Agno에 기본적으로 통합되어 있으며, 에이전트에게 AI 활용이 가능한 다양한 웹 데이터 도구 모음을 제공합니다. 주요 기능으로는 웹 스크래핑, 검색 결과 페이지(SERP) 데이터 추출, 스크린샷 기능, 그리고 40개 이상의 유명 사이트에서 JSON 형식의 데이터 피드에 대한 접근이 포함됩니다.

Agno 에이전트에 Bright Data 스크래핑 도구 통합 방법

이 섹션에서는 Agno를 사용하여 Bright Data 도구에 연결할 수 있는 Python AI 에이전트를 구축하는 방법을 배웁니다. 이를 통해 에이전트는 모든 페이지에서 데이터를 스크래핑하고 최신 검색 엔진 결과를 검색할 수 있는 능력을 갖추게 됩니다.

Agno에서 Bright Data 기반 AI 에이전트를 구축하려면 아래 단계를 따르세요!

필수 조건

이 튜토리얼을 따라하려면 다음이 준비되어 있어야 합니다:

아직 Bright Data API 키가 없더라도 걱정하지 마세요. 다음 단계에서 생성하는 방법을 안내해 드리겠습니다.

단계 #1: 프로젝트 설정

터미널을 열고 Bright Data 기반 데이터 검색 기능을 갖춘 Agno AI 에이전트용 새 폴더를 생성하세요:

mkdir agno-bright-data-agent

agno-bright-data-agent 폴더에는 AI 에이전트를 위한 모든 Python 코드가 포함됩니다.

다음으로 프로젝트 폴더로 이동하여 가상 환경을 생성합니다:

cd agno-bright-data-agent
python -m venv venv

이제 선호하는 Python IDE에서 프로젝트 폴더를 엽니다. Visual Studio Code(Python 확장 기능 포함) 또는 PyCharm Community Edition을 권장합니다.

프로젝트 폴더 내에 agent.py라는 새 파일을 생성하세요. 프로젝트 구조는 다음과 같아야 합니다:

agno-bright-data-agent/
├── venv/
└── agent.py

터미널에서 가상 환경을 활성화하세요. Linux 또는 macOS에서는 다음 명령어를 실행합니다:

source venv/bin/activate

Windows에서는 다음과 같이 실행하세요:

venv/Scripts/activate

다음 단계에서는 필요한 종속성 설치 과정을 안내합니다. 지금 바로 모든 것을 설치하려면 활성화된 가상 환경에서 다음 명령어를 실행하세요:

pip install agno python-dotenv openai requests 

참고: 본 튜토리얼은 LLM 제공자로 OpenAI를 사용하므로 openai를 설치합니다. 다른 LLM을 사용할 계획이라면 해당 제공자에 맞는 라이브러리를 설치하세요.

이제 준비가 완료되었습니다! Agno와 Bright Data 도구를 사용하여 AI 에이전트를 구축할 수 있는 Python 개발 환경이 마련되었습니다.

2단계: 환경 변수 설정

Agno 에이전트는 OpenAI 및 Bright Data와 같은 타사 서비스와 API 통합을 통해 상호작용합니다. 이를 안전하게 수행하려면 Python 코드에 API 키를 직접 하드코딩하지 마십시오. 대신 환경 변수로 저장하세요.

환경 변수 로딩을 간소화하려면 python-dotenv 라이브러리를 활용하세요. 가상 환경을 활성화한 상태에서 다음 명령어로 설치합니다:

pip install python-dotenv

그런 다음 agent.py 파일에서 라이브러리를 임포트하고 load_dotenv()를 사용하여 환경 변수를 로드하세요:

from dotenv import load_dotenv

load_dotenv()

이 함수는 로컬 .env 파일에서 변수를 읽을 수 있게 합니다. 프로젝트 폴더 루트에 .env 파일을 생성하세요:

agno-bright-data-agent/
├── venv/
├── .env # <-------------
└── agent.py

잘하셨습니다! 이제 환경 변수를 사용하여 타사 통합 시크릿을 안전하게 관리할 준비가 완료되었습니다.

3단계: Bright Data 시작하기

본 문서 작성 시점 기준으로, Agno와 통합된 Bright Data 도구는 다음과 같은 솔루션을 제공합니다:

  • SERP API: 모든 주요 검색 엔진의 실시간 검색 결과를 제공하는 API입니다.
  • 웹 언락커 API: 정교한 봇 방어 기능을 우회하는 고급 스크래핑 API로, 모든 웹 페이지에 접근할 수 있게 해줍니다( AI 사용에 최적화된 마크다운 형식으로 제공).
  • 웹 스크레이퍼 API: 여러 인기 도메인에서 신선하고 구조화된 웹 데이터를 윤리적으로 추출하기 위한 전용 스크래핑 엔드포인트입니다.

상기 도구 통합을 위해 다음을 수행해야 합니다:

  1. Bright Data 계정에서 SERP API 및 Web Unlocker 솔루션을 구성하세요.
  2. 이 서비스에 접근하기 위해 Bright Data API 토큰을 가져옵니다.

아래 지침을 따라 두 작업을 모두 수행하세요!

먼저, Bright Data 계정이 아직 없다면 계정 생성을 시작하세요. 이미 계정이 있다면 로그인 후 대시보드를 엽니다:

Clicking the “Get proxy products” button in your Bright Data account

“프록시 제품 받기” 버튼을 클릭하면 “프록시 및 스크래핑 인프라” 페이지로 이동합니다:

Note the SERP API and Web Unlocker API zones

이 경우 SERP API와 Web Unlocker API가 모두 활성화되어 사용 준비가 완료된 것을 확인할 수 있습니다. 해당 존 이름은 각각 serp와 unblocker입니다.

해당되지 않는 경우 설정이 필요합니다. 웹 언락커 API 존 생성 방법을 시연하겠지만, SERP API 존 생성 과정도 유사합니다.

아래로 스크롤하여 “Web Unlocker API” 카드에서 “영역 생성”을 클릭하세요:

Clicking the “Create zone” on the “Web Unlocker API” card

존에 이름을 지정하고(예: unlocker), 최대 효과를 위해 고급 기능을 활성화한 후 “추가”를 누르세요:

Configuring your new Web Unlocker API zone

그러면 다음과 같은 영역 페이지로 이동합니다:

The “unlocker” Web Unlocker API zone page

활성화 토글이 “활성화됨”으로 설정되어 있는지 확인하세요. 이는 영역이 올바르게 설정되어 사용 준비가 되었음을 의미합니다.

다음으로 공식 Bright Data 가이드를 따라 API 키를 생성하세요. 생성된 키를 .env 파일에 다음과 같이 추가합니다:

BRIGHT_DATA_API_KEY="<YOUR_BRIGHT_DATA_API_KEY>"

<YOUR_BRIGHT_DATA_API_KEY> 자리 표시자를 실제 API 키 값으로 교체하세요.

훌륭합니다! 이제 Bright Data 도구를 Agno 에이전트 스크립트에 통합할 차례입니다.

4단계: Agno Bright Data 도구 설치 및 구성

프로젝트 폴더에서 가상 환경을 활성화한 상태로 다음 명령어를 실행하여 Agno를 설치하세요:

pip install agno

참고: agno 패키지에는 Bright Data 도구에 대한 내장 지원이 이미 포함되어 있으므로, 이 설정에는 별도의 통합 전용 패키지가 필요하지 않습니다.

이제 Bright Data 도구는 Python requests 라이브러리에 의존하므로, 이 라이브러리도 함께 설치하세요:

pip install requests

agent.py 파일에서 Agno를 통해 Bright Data 도구를 임포트하세요:

from agno.tools.brightdata import BrightDataTools

그런 다음 다음과 같이 도구를 초기화하세요:

bright_data_tools = BrightDataTools(
    serp_zone="YOUR_SERP_ZONE_NAME",
    web_unlocker_zone="YOUR_UNLOCKER_ZONE_NAME"
)

"YOUR_SERP_ZONE_NAME""YOUR_UNLOCKER_ZONE_NAME"을 앞서 구성한 Bright Data 영역의 이름으로 대체하세요. 예를 들어, 영역 이름이 serp와 unlocker인 경우 코드는 다음과 같습니다:

bright_data_tools = BrightDataTools(
    serp_zone="serp",
    web_unlocker_zone="unlocker"
)

참고: 코드에서 직접 존 이름을 전달하는 대신, .env 파일에 다음 환경 변수를 사용할 수도 있습니다:

BRIGHT_DATA_WEB_UNLOCKER_ZONE="<YOUR_BRIGHT_DATA_WEB_UNLOCKER_ZONE>"
BRIGHT_DATA_SERP_ZONE="<YOUR_BRIGHT_DATA_SERP_ZONE>"

자리 표시자를 실제 Bright Data 영역 이름으로 대체하세요. 그런 다음 BrightDataTools에서 serp_zoneweb_unlocker_zone 인수를 제거하세요.

참고: Bright Data 솔루션에 연결하기 위해 BrightDataTools는 BRIGHT_DATA_API_KEY 환경 변수에 의존합니다. 구체적으로, BRIGHT_DATA_API_KEY 환경 변수에 귀하의 Bright Data API 키가 포함되어 있어야 합니다. 그래서 이전 단계에서 .env 파일에 이를 추가한 것입니다.

대단하네요! 다음 통합은 LLM과의 연동입니다.

단계 #5: LLM 모델 설정

이 튜토리얼에서 사용되는 LLM 제공업체인 OpenAI에 연결하려면 먼저 필요한 openai 종속성을 설치하세요:

pip install openai

그런 다음 Agno에서 OpenAI 통합 클래스를 임포트합니다:

from agno.models.openai import OpenAIChat

이제 아래와 같이 LLM 모델을 초기화하세요:

llm_model = OpenAIChat(id="gpt-4o-mini")

위에서 "gpt-4o-mini" 는 본 가이드에서 사용된 OpenAI 모델의 이름입니다. 필요 시 다른 지원되는 OpenAI 모델로 변경할 수 있습니다.

배경에서 OpenAIChat은 OPENAI_API_KEY라는 환경 변수에 OpenAI API 키가 정의되어 있을 것을 기대합니다. 이를 설정하려면 .env 파일에 다음 줄을 추가하세요:

OPENAI_API_KEY="<YOUR_OPENAI_API_KEY>"

<YOUR_OPENAI_API_KEY> 자리 표시자를 실제 OpenAI API 키로 대체하세요.

참고: Agno가 지원하는 다른 LLM에 연결하려면 공식 문서의 지침을 참조하세요.

잘하셨습니다! 이제 웹 데이터 검색 기능을 갖춘 Agno 에이전트를 구축할 모든 기반이 마련되었습니다.

6단계: 에이전트 생성

agent.py 파일에서 에이전트를 정의하세요:

agent = Agent(
    tools=[bright_data_tools],
    show_tool_calls=True,
    model=llm_model,
)

이렇게 하면 구성된 LLM 모델을 사용하여 사용자 입력을 처리하고 데이터 검색을 위해 Bright Data 도구에 접근할 수 있는 Agno 에이전트가 생성됩니다. show_tool_calls=True 옵션은 에이전트가 요청을 처리하기 위해 어떤 도구를 사용하는지 표시하므로 진행 상황을 이해하는 데 도움이 됩니다.

Agno에서 Agent 클래스를 반드시 임포트하세요:

from agno.agent import Agent

훌륭합니다! Agno와 Bright Data의 통합이 완료되었습니다. 이제 에이전트에 쿼리를 보내 작동하는 모습을 확인하기만 하면 됩니다.

7단계: Bright Data 도구로 구동되는 에이전트에 쿼리하기

이제 다음 두 줄의 코드로 Agno AI 에이전트와 상호작용할 수 있습니다:

prompt = "AAPL 뉴스 검색"
agent.print_response(prompt, markdown=True)

첫 번째 줄은 에이전트가 처리할 작업이나 질문을 설명하는 프롬프트를 정의합니다. 두 번째 줄은 이를 실행하고 출력을 표시합니다.

markdown=True 옵션은 응답이 마크다운 형식으로 포맷되도록 하여 가독성이 높고 AI 친화적인 출력에 이상적입니다.

참고: 원하는 프롬프트를 자유롭게 시도해 볼 수 있지만, SERP 데이터 검색 기능을 테스트하기에는 “AAPL 뉴스 검색”이 훌륭한 시작점입니다.

8단계: 모든 것을 통합하기

agent.py 파일의 최종 코드는 다음과 같아야 합니다:

from dotenv import load_dotenv
from agno.tools.brightdata import BrightDataTools
from agno.models.openai import OpenAIChat
from agno.agent import Agent

# .env 파일에서 환경 변수 로드
load_dotenv()

# Agno 통합을 위한 Bright Data 도구 구성
bright_data_tools = BrightDataTools(
    serp_zone="serp", # SERP API 영역 이름으로 대체
    web_unlocker_zone="unlocker" # Web Unlocker API 영역 이름으로 대체)


# AI 에이전트가 사용할 LLM
llm_model = OpenAIChat(id="gpt-4o-mini")

# Bright Data 도구를 포함한 Agno 에이전트 정의
agent = Agent(
    tools=[bright_data_tools],
    show_tool_calls=True, # 백엔드 동작 이해에 유용함
    model=llm_model,
)

# AI 에이전트에서 작업 실행
prompt = "AAPL 뉴스 검색"
agent.print_response(prompt, markdown=True)

30줄 미만의 코드로, 어떤 웹 페이지에서든 데이터를 스크래핑하고 주요 검색 엔진에서 실시간 검색을 수행할 수 있는 AI 에이전트를 구축했습니다. 이것이 바로 AI 에이전트 구축을 위한 풀스택 프레임워크인 Agno의 힘입니다!

9단계: Agno 에이전트 실행하기

이제 Agno AI 에이전트를 실행해 볼 시간입니다. 터미널에서 다음 명령어로 실행하세요:

python agent.py

터미널에 에이전트가 “AAPL 뉴스 검색” 프롬프트를 처리 중임을 보여주는 애니메이션 출력이 표시됩니다. 완료되면 에이전트는 다음과 같은 결과를 생성합니다:

The Agno agent output on the  "Search for AAPL news” prompt

출력 내용:

  1. 사용자가 제출한 프롬프트.
  2. 에이전트가 작업을 완료하기 위해 사용한 도구. 이 경우 Bright Data 도구의 search_engine() 함수를 사용하여 SERP API를 통해 Google에 접근하고 AAPL 주식에 대한 실시간 뉴스를 검색했습니다.
  3. 검색된 데이터를 기반으로 OpenAI 모델이 생성한 마크다운 형식의 응답.

참고: 마크다운 형식 덕분에 결과에는 클릭 가능한 링크가 포함된 실시간 뉴스 콘텐츠가 포함됩니다. 또한 일부 뉴스는 매우 최신 정보로, 프롬프트 실행 몇 시간 전에 게시된 것입니다.

이제 한 단계 더 나아가 보겠습니다. 검색된 뉴스 기사 중 하나의 요약본을 원한다고 가정해 보세요. 프롬프트를 간단히 업데이트하면 됩니다:

prompt = """
다음 뉴스 기사의 약 150단어 분량 요약문을 제공해 주세요.

뉴스 URL:
https://www.msn.com/en-us/money/other/apple-inc-aapl-to-introduce-new-parental-controls-to-protect-kids-and-teens-online/ar-AA1HdVd6
"""
agent.print_response(prompt, markdown=True)

이번에는 출력 결과가 다음과 비슷하게 보일 것입니다:

The output for the news summarization task

이 경우 에이전트는 다른 도구인 scrape_as_markdown()을 사용했습니다. 이 도구는 Web Unlocker API에 연결하여 웹 페이지 콘텐츠를 마크다운 형식으로 가져온 후 LLM에 전달해 요약합니다.

자, 이제 Bright Data 도구와 Agno로 구동되는 AI 에이전트에서 원활한 데이터 검색 및 처리 과정을 경험해 보셨습니다.

다음 단계

이 튜토리얼에서 Agno로 구축한 AI 에이전트는 시작점일 뿐입니다. 사실 우리는 가능성의 표면만을 살짝 훑었을 뿐입니다. 프로젝트를 더 발전시키려면 다음 단계를 고려해 보세요:

더 많은 아이디어와 고급 통합 방법은 공식 Agno 문서를 참고하세요.

결론

이 글에서는 Bright Data 도구를 활용해 실시간 데이터 검색 기능을 갖춘 AI 에이전트를 Agno로 구축하는 방법을 알아보았습니다. 이 통합을 통해 에이전트는 웹사이트와 검색 엔진 모두에서 공개 웹 콘텐츠에 접근할 수 있습니다.

여기서 본 내용은 단순한 예시에 불과하다는 점을 잊지 마십시오. 더 고급 에이전트를 구축하려면 실시간 웹 데이터 검색, 검증 및 변환 솔루션이 필요합니다. 바로 Bright Data의 AI 인프라에서 이를 찾을 수 있습니다.

무료 Bright Data 계정을 생성하고 AI 활용이 가능한 데이터 도구로 실험을 시작해 보세요!