이 가이드에서는 다음을 배울 수 있습니다:
- OpenAI 에이전트 SDK란 무엇인가
- 웹 언락커 서비스와의 연동이 효과를 극대화하는 핵심 이유
- 상세 단계별 튜토리얼을 통해 OpenAI 에이전트 SDK와 웹 언락커 API를 사용한 Python 에이전트 구축 방법
자, 시작해 보겠습니다!
OpenAI 에이전트 SDK란 무엇인가요?
OpenAI 에이전트 SDK는 OpenAI에서 제공하는 오픈소스 Python 라이브러리입니다. 간단하고 가볍게, 즉시 생산 환경에 적용 가능한 방식으로 에이전트 기반 AI 애플리케이션을 구축하기 위해 설계되었습니다. 이 라이브러리는 OpenAI의 초기 실험 프로젝트인 Swarm을 정교하게 발전시킨 결과물입니다.
OpenAI 에이전트 SDK는 최소한의 추상화로 몇 가지 핵심 기본 요소만 제공하는 데 중점을 둡니다:
- 에이전트: 특정 지시사항 및 작업 수행 도구가 결합된 대규모 언어 모델(LLM)
- 핸도프(Handoffs): 필요 시 에이전트가 다른 에이전트에게 작업을 위임할 수 있도록 함
- 가드레일: 에이전트 입력이 예상된 형식이나 조건을 충족하는지 검증
이러한 구성 요소들은 Python의 유연성과 결합되어 에이전트와 도구 간의 복잡한 상호작용을 쉽게 정의할 수 있게 합니다.
SDK에는 내장된 추적 기능도 포함되어 있어 에이전트 워크플로를 시각화하고 디버깅하며 평가할 수 있습니다. 특정 사용 사례에 맞게 모델을 미세 조정하는 것도 지원합니다.
AI 에이전트 구축에 대한 이 접근법의 가장 큰 한계점
대부분의 AI 에이전트는 콘텐츠 검색이나 페이지 요소와의 상호 작용 등 웹 페이지에서 작업을 자동화하는 것을 목표로 합니다. 즉, 프로그래밍 방식으로 웹을 탐색해야 합니다.
AI 모델 자체의 잠재적 오해 외에도, 이러한 에이전트가 직면하는 가장 큰 도전은 웹사이트의 보호 조치에 대처하는 것입니다. 그 이유는 많은 사이트가 AI 에이전트를 차단하거나 오도할 수 있는 봇 방지 및 스크래핑 방지 기술을 구현하기 때문입니다. 특히 오늘날에는 AI 방지 CAPTCHA와 고급 봇 탐지 시스템이 점점 더 보편화되면서 더욱 그렇습니다.
그렇다면 AI 웹 에이전트의 시대는 끝난 걸까요? 절대 아닙니다!
이러한 장벽을 극복하려면 Bright Data의 Web Unlocker API와 같은 솔루션을 통합하여 에이전트의 웹 탐색 능력을 강화해야 합니다. 이 도구는 인터넷에 연결되는 모든 HTTP 클라이언트 또는 솔루션(AI 에이전트 포함)과 연동되어 웹 잠금 해제 게이트웨이 역할을 합니다. 모든 웹페이지에서 깨끗하고 차단되지 않은 HTML을 제공합니다. 더 이상 CAPTCHA, IP 차단, 콘텐츠 차단에 시달리지 않아도 됩니다.
OpenAI 에이전트 SDK와 웹 언락커 API를 결합하는 것이 강력하고 웹에 능숙한 AI 에이전트를 구축하는 궁극적인 전략인 이유를 확인하세요!
에이전트 SDK와 웹 언락커 API 통합 방법
이 가이드 섹션에서는 OpenAI 에이전트 SDK를 Bright Data의 웹 언락커 API와 통합하여 다음과 같은 기능을 갖춘 AI 에이전트를 구축하는 방법을 배웁니다:
- 모든 웹 페이지의 텍스트 요약
- 전자상거래 웹사이트에서 구조화된 상품 데이터 추출
- 뉴스 기사에서 핵심 정보 수집
이를 위해 에이전트는 OpenAI 에이전트 SDK에 웹 언락커 API를 엔진으로 활용하여 모든 웹 페이지의 콘텐츠를 가져오도록 지시합니다. 콘텐츠를 가져온 후, 에이전트는 AI 로직을 적용하여 위 각 작업에 필요한 데이터를 추출하고 형식을 지정합니다.
참고: 위 세 가지 사용 사례는 예시일 뿐입니다. 여기 제시된 접근 방식은 에이전트의 동작을 맞춤 설정하여 다양한 다른 시나리오로 확장할 수 있습니다.
OpenAI 에이전트 SDK와 Bright Data의 고성능 Web Unlocker API를 사용하여 Python으로 AI 스크래핑 에이전트를 구축하려면 아래 단계를 따르세요!
필수 조건
본 튜토리얼을 시작하기 전에 다음 사항을 확인하십시오:
- 로컬에 설치된 Python 3 이상
- 활성화된 Bright Data 계정
- 활성화된 OpenAI 계정
- HTTP 요청 작동 방식에 대한 기본적인 이해
- Pydantic 모델 작동 방식에 대한 이해
- AI 에이전트 기능에 대한 일반적인 이해
아직 모든 설정이 완료되지 않았더라도 걱정하지 마세요. 다음 섹션에서 설정을 단계별로 안내해 드리겠습니다.
1단계: 프로젝트 설정
시작하기 전에 시스템에 Python 3이 설치되어 있는지 확인하세요. 설치되어 있지 않다면 Python을 다운로드하고 운영 체제에 맞는 설치 안내를 따르세요.
터미널을 열고 스크래핑 에이전트 프로젝트용 새 폴더를 생성하세요:
mkdir openai-sdk-agent
openai-sdk-agent 폴더에는 Python 기반, Agents SDK로 구동되는 에이전트의 모든 코드가 포함됩니다.
프로젝트 폴더로 이동하여 가상 환경을 설정하세요:
cd openai-sdk-agent
python -m venv venv
선호하는 Python IDE에서 프로젝트 폴더를 로드하세요. Python 확장 프로그램이 설치된 Visual Studio Code나 PyCharm Community Edition이 좋은 선택입니다.
openai-sdk-agent 폴더 내에서 agent.py라는 새 Python 파일을 생성하세요. 현재 폴더 구조는 다음과 같아야 합니다:

현재 scraper.py는 빈 Python 스크립트이지만 곧 원하는 AI 에이전트 로직이 포함될 것입니다.
IDE 터미널에서 가상 환경을 활성화하세요. Linux 또는 macOS에서는 다음 명령어를 실행합니다:
./env/bin/activate
Windows에서는 동일하게 다음을 실행하세요:
env/Scripts/activate
이제 준비가 완료되었습니다! OpenAI 에이전트 SDK와 웹 언락커를 사용하여 강력한 AI 에이전트를 구축할 수 있는 Python 환경이 마련되었습니다.
2단계: 프로젝트 종속성 설치 및 시작하기
이 프로젝트는 다음 Python 라이브러리를 사용합니다:
openai-agents: Python으로 AI 에이전트를 구축하는 데 사용되는 OpenAI 에이전트 SDK입니다.requests: Bright Data의 웹 언락커 API에 연결하고 AI 에이전트가 작업할 웹 페이지의 HTML 콘텐츠를 가져오기 위해 사용됩니다. Python Requests 라이브러리 마스터 가이드에서 자세히 알아보세요.pydantic: 구조화된 출력 모델을 정의하여 에이전트가 명확하고 검증된 형식으로 데이터를 반환할 수 있도록 합니다.markdownify: 원시 HTML 콘텐츠를 깔끔한 마크다운으로 변환합니다. (곧 이 기능의 유용성에 대해 설명하겠습니다.)python-dotenv:.env파일에서 환경 변수를 로드합니다. OpenAI 및 Bright Data의 비밀 키를 저장할 위치입니다.
활성화된 가상 환경에서 다음 명령어로 모두 설치하세요:
pip install requests pydantic openai-agents openai-agents markdownify python-dotenv
이제 다음 임포트 및 비동기 기본 코드로 scraper.py를 초기화하세요:
import asyncio
from agents import Agent, RunResult, Runner, function_tool
import requests
from pydantic import BaseModel
from markdownify import markdownify as md
from dotenv import load_dotenv
# AI 에이전트 로직...
async def run():
# 비동기 AI 에이전트 로직 호출...
if __name__ == "__main__":
asyncio.run(run())
좋습니다! 환경 변수를 로드할 시간입니다.
3단계: 환경 변수 읽기 설정
프로젝트 폴더에 .env 파일을 추가하세요:

이 파일에는 API 키나 비밀 토큰 같은 환경 변수가 저장됩니다. .env 파일에서 환경 변수를 불러오려면 dotenv 패키지의 load_dotenv() 를 사용하세요:
load_dotenv()
이제 os.getenv() 를 사용하여 다음과 같이 특정 환경 변수를 읽을 수 있습니다:
os.getenv("ENV_NAME")
Python 표준 라이브러리에서 os를 반드시 임포트하세요:
import os
좋습니다! 환경 변수를 읽을 준비가 되었습니다.
4단계: OpenAI 에이전트 SDK 설정
OpenAI 에이전트 SDK를 사용하려면 유효한 OpenAI API 키가 필요합니다. 아직 생성하지 않았다면 OpenAI 공식 가이드를 따라 API 키를 생성하세요.
키를 생성한 후 다음과 같이 .env 파일에 키를 추가하세요:
OPENAI_API_KEY="<YOUR_OPENAI_KEY>"
<YOUR_OPENAI_KEY> 자리 표시자를 실제 키로 반드시 교체하세요.
openai-agents SDK는 OPENAI_API_KEY 환경 변수에서 API 키를 자동으로 읽어오도록 설계되어 있으므로 추가 설정이 필요하지 않습니다.
5단계: 웹 언락커 API 설정
아직 계정이 없다면 Bright Data 계정을 생성하세요. 이미 계정이 있다면 로그인하세요.
다음으로 Bright Data의 공식 웹 언락커 문서를 읽고 API 토큰을 가져오세요. 또는 아래 단계를 따르세요.
Bright Data “사용자 대시보드” 페이지에서 “프록시 제품 받기” 옵션을 누르세요:

제품 테이블에서 “unblocker”라고 표시된 행을 찾아 클릭하세요:

⚠️참고: 아직 설정하지 않았다면 먼저 새로운 웹 언블로커 API 영역을 생성해야 합니다. 시작하려면 웹 언블로커 설정 문서를 참조하세요.
“unlocker” 페이지에서 클립보드 아이콘을 사용하여 API 토큰을 복사하세요:

또한 오른쪽 상단 모서리의 토글이 “On”으로 설정되어 있는지 확인하세요. 이는 웹 언락커 제품이 활성화되었음을 나타냅니다.
최적의 효과를 위해 “구성” 탭에서 다음 옵션이 활성화되었는지 확인하세요:

.env 파일에 다음 환경 변수를 추가하세요:
BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN="<YOUR_BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN>"
자리 표시자를 실제 API 토큰으로 교체하세요.
완벽합니다! 이제 프로젝트에서 OpenAI SDK와 Bright Data의 Web Unlocker API를 모두 사용할 수 있습니다.
6단계: 웹 페이지 콘텐츠 추출 함수 생성
get_page_content() 함수를 생성하여 다음 작업을 수행합니다:
BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN환경 변수를 읽습니다.- 제공된 URL을 사용하여 Bright Data의 Web Unlocker API에 요청을 전송합니다.
- API가 반환한 원시 HTML을 가져옵니다
- HTML을 Markdown으로 변환하여 반환
위 로직을 구현하는 방법은 다음과 같습니다:
@function_tool
def get_page_content(url: str) -> str:
"""
Bright Data의 Web Unlocker API를 사용하여 지정된 웹 페이지의 HTML 콘텐츠를 가져옵니다.
이 과정에서 봇 방지 보호 기능을 우회합니다. 응답은 원시 HTML에서 Markdown으로 변환되어
더 쉽고 저렴하게 처리할 수 있습니다.
매개변수:
url (str): 스크래핑할 웹 페이지의 URL.
반환값:
str: 요청된 페이지의 마크다운 형식 콘텐츠.
"""
# 환경 변수에서 Bright Data의 Web Unlocker API 토큰 읽기
BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN = os.getenv("BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN")
# Web Unlocker API 호출 설정
api_url = "https://api.brightdata.com/request"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN}"
}
data = {
"zone": "unblocker",
"url": url,
"format": "raw"
}
# 대상 페이지의 차단 해제된 HTML을 가져오기 위해 Web Uncloker에 요청을 수행합니다
response = requests.post(api_url, headers=headers, data=json.dumps(data))
# 원시 HTML 응답을 추출합니다
html = response.text
# HTML을 마크다운으로 변환하고 반환합니다
markdown_text = md(html)
return markdown_text
참고 1: 함수는 @function_tool로 주석 처리되어야 합니다. 이 특수 데코레이터는 OpenAI 에이전트 SDK에 해당 함수가 에이전트가 특정 작업을 수행하는 도구로 사용될 수 있음을 알립니다. 이 경우 함수는 에이전트가 작업할 웹 페이지의 콘텐츠를 가져오는 데 활용할 수 있는 “엔진” 역할을 합니다.
참고 2: get_page_content() 함수는 입력 유형을 명시적으로 선언해야 합니다.
이를 생략하면 다음과 같은 오류가 발생합니다: 응답 획득 오류: 오류 코드: 400 - {'error': {'message': "함수 'get_page_content'에 대한 유효하지 않은 스키마: 컨텍스트=('properties', 'url')에서 스키마는 'type' 키를 반드시 포함해야 합니다.``"
자, 이제 궁금해하실 겁니다: 왜 원시 HTML을 마크다운으로 변환해야 할까요? 답은 간단합니다—성능 효율성과 비용 효율성 때문입니다!
HTML은 매우 장황하며 스크립트, 스타일, 메타데이터 같은 불필요한 요소를 포함하는 경우가 많습니다. 이는 AI 에이전트가 일반적으로 필요로 하지 않는 콘텐츠입니다. 텍스트, 링크, 이미지 같은 필수 요소만 필요한 에이전트라면 마크다운이 훨씬 깔끔하고 간결한 표현을 제공합니다.
구체적으로 HTML-Markdown 변환은 입력 크기를 최대 99%까지 줄여 다음과 같은 이점을 제공합니다:
- – 토큰 수: OpenAI 모델 사용 시 비용 절감
- 모델이 더 작은 입력에서 더 빠르게 작동하므로 처리 시간
더 자세한 내용은 “새로운 AI 에이전트가 HTML 대신 마크다운을 선택하는 이유”기사를 참고하세요.
7단계: 데이터 모델 정의
OpenAI SDK 에이전트가 정상 작동하려면 출력 데이터의 예상 구조를 정의하는 Pydantic 모델이 필요합니다. 우리가 구축 중인 에이전트는 다음 세 가지 출력 중 하나를 반환할 수 있음을 기억하세요:
- 페이지 요약
- 제품 정보
- 뉴스 기사 정보
따라서 이에 대응하는 세 가지 Pydantic 모델을 정의해 보겠습니다:
class Summary(BaseModel):
summary: str
class Product(BaseModel):
name: str
price: Optional[float] = None
currency: Optional[str] = None
ratings: Optional[int] = None
rating_score: Optional[float] = None
class News(BaseModel):
title: str
subtitle: Optional[str] = None
authors: Optional[List[str]] = None
text: str
publication_date: Optional[str] = None
참고: Optional을 사용하면 에이전트의 견고성과 범용성이 향상됩니다. 모든 페이지가 스키마에 정의된 모든 데이터를 포함하는 것은 아니므로, 이러한 유연성은 필드가 누락되었을 때 오류를 방지하는 데 도움이 됩니다.
typing에서 Optional 과 List를 반드시 임포트하세요:
from typing import Optional, List
훌륭합니다! 이제 에이전트의 로직을 구축할 준비가 되었습니다.
단계 #8: 에이전트 로직 초기화
openai-agents SDK의 Agent 클래스를 사용하여 세 가지 특수 에이전트를 정의하세요:
summarization_agent = Agent(
name="텍스트 요약 에이전트",
instructions="입력 텍스트를 요약하는 콘텐츠 요약 에이전트입니다.",
tools=[get_page_content],
output_type=Summary,
)
product_info_agent = Agent(
name="제품 정보 에이전트",
instructions="텍스트에서 제품 세부 정보를 추출하는 제품 파싱 에이전트입니다.",
tools=[get_page_content],
output_type=Product,
)
news_info_agent = Agent(
name="뉴스 정보 에이전트",
instructions="당신은 텍스트에서 관련 뉴스 세부 정보를 추출하는 뉴스 파싱 에이전트입니다.",
tools=[get_page_content],
output_type=News,
)
각 에이전트:
- 명확한 지시문 문자열을 포함하여 수행해야 할 작업을 설명합니다. 이는 OpenAI 에이전트 SDK가 에이전트의 행동을 안내하는 데 사용할 내용입니다.
- 입력 데이터(즉, 웹 페이지의 콘텐츠)를 가져오기 위한 도구로
get_page_content()를사용합니다. - 앞서 정의된 Pydantic 모델(
Summary,Product또는News) 중 하나로 출력을 반환합니다.
사용자 요청을 올바른 전문 에이전트로 자동 라우팅하려면 상위 레벨 에이전트를 정의합니다:
routing_agent = Agent(
name="라우팅 에이전트",
instructions=(
"당신은 상위 의사결정 에이전트입니다. 사용자의 요청에 따라 "
"해당 작업을 적절한 에이전트에게 넘겨주세요."
),
handoffs=[summarization_agent, product_info_agent, news_info_agent],
)
이 에이전트는 AI 에이전트 로직을 구동하기 위해 run() 함수에서 호출할 대상입니다.
단계 #9: 실행 루프 구현
run() 함수 내에서 AI 에이전트 로직을 실행하기 위해 다음 루프를 추가하세요:
# 사용자가 "exit" 입력 시까지 반복
while True:
# 사용자 요청 읽기
request = input("요청 내용 -> ")
# 사용자가 "exit" 입력 시 실행 중지
if request.lower() in ["exit"]:
print("에이전트 종료 중...")
break
# 작업할 페이지 URL 읽기
url = input("페이지 URL -> ")
# 사용자의 요청을 적절한 에이전트로 라우팅
output = await Runner.run(routing_agent, input=f"{request} {url}")
# 에이전트 출력을 JSON 문자열로 변환
json_output = json.dumps(output.final_output.model_dump(), indent=4)
print(f"출력 -> n{json_output}nn")
이 루프는 사용자 입력을 지속적으로 수신하며 각 요청을 적절한 에이전트(요약, 제품, 뉴스)로 라우팅하여 처리합니다. 사용자의 쿼리와 대상 URL을 결합하고, 로직을 실행한 후 json을 사용하여 구조화된 결과를 JSON 형식으로 출력합니다. 다음으로 임포트하세요:
import json
대단합니다! Bright Data의 Web Unlocker API와 OpenAI 에이전트 SDK 통합이 완료되었습니다.
10단계: 모든 것을 통합하기
이제 scraper.py 파일에는 다음 내용이 포함되어야 합니다:
import asyncio
from agents import Agent, RunResult, Runner, function_tool
import requests
from pydantic import BaseModel
from markdownify import markdownify as md
from dotenv import load_dotenv
import os
from typing import Optional, List
import json
# .env 파일에서 환경 변수 로드
load_dotenv()
# AI 에이전트를 위한 Pydantic 출력 모델 정의
class Summary(BaseModel):
summary: str
class Product(BaseModel):
name: str
price: Optional[float] = None
currency: Optional[str] = None
ratings: Optional[int] = None
rating_score: Optional[float] = None
class News(BaseModel):
title: str
subtitle: Optional[str] = None
authors: Optional[List[str]] = None
text: str
publication_date: Optional[str] = None
@function_tool
def get_page_content(url: str) -> str:
"""
Bright Data의 Web Unlocker API를 사용하여 지정된 웹 페이지의 HTML 콘텐츠를 가져옵니다.
반봇 보호 기능을 우회합니다. 응답은 원시 HTML에서 Markdown으로 변환되어
더 쉽고 저렴하게 처리할 수 있습니다.
매개변수:
url (str): 스크래핑할 웹 페이지의 URL.
반환값:
str: 요청된 페이지의 마크다운 형식 콘텐츠.
"""
# 환경 변수에서 Bright Data의 Web Unlocker API 토큰 읽기
BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN = os.getenv("BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN")
# Web Unlocker API 호출 설정
api_url = "https://api.brightdata.com/request"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {BRIGHT_DATA_WEB_UNLOCKER_API_TOKEN}"
}
data = {
"zone": "unblocker",
"url": url,
"format": "raw"
}
# 대상 페이지의 차단 해제된 HTML을 가져오기 위해 Web Unlocker 호출
response = requests.post(api_url, headers=headers, data=json.dumps(data))
# 원시 HTML 응답 추출
html = response.text
# HTML을 마크다운으로 변환하여 반환
markdown_text = md(html)
return markdown_text
# 개별 OpenAI 에이전트 정의
summarization_agent = Agent(
name="텍스트 요약 에이전트",
instructions="당신은 입력 텍스트를 요약하는 콘텐츠 요약 에이전트입니다.",
tools=[get_page_content],
output_type=Summary,)
product_info_agent = Agent(
name="제품 정보 에이전트",
instructions="당신은 텍스트에서 제품 세부 정보를 추출하는 제품 파싱 에이전트입니다.",
tools=[get_page_content],
output_type=Product,
)
news_info_agent = Agent(
name="뉴스 정보 에이전트",
instructions="당신은 텍스트에서 관련 뉴스 세부 정보를 추출하는 뉴스 파싱 에이전트입니다.",
tools=[get_page_content],
output_type=News,
)
# 작업을 적절한 전문 에이전트에게 위임하는 상위 라우팅 에이전트 정의
routing_agent = Agent(
name="라우팅 에이전트",
instructions=(
"당신은 상위 의사 결정 에이전트입니다. 사용자의 요청에 따라, "
"작업을 적절한 에이전트에게 넘겨주세요."
),
handoffs=[요약 에이전트, 제품 정보 에이전트, 뉴스 정보 에이전트],)
async def run():
# 사용자가 "exit" 입력할 때까지 반복
while True:
# 사용자 요청 읽기
request = input("요청 내용 -> ")
# 사용자가 "exit" 입력 시 실행 중지
if request.lower() in ["exit"]:
print("에이전트 종료 중...")
break
# 처리할 페이지 URL 입력
url = input("페이지 URL -> ")
# 사용자의 요청을 적절한 에이전트로 라우팅
output = await Runner.run(routing_agent, input=f"{request} {url}")
# 에이전트 출력을 JSON 문자열로 변환
json_output = json.dumps(output.final_output.model_dump(), indent=4)
print(f"출력 -> n{json_output}nn")
if __name__ == "__main__":
asyncio.run(run())
자, 이제 완성되었습니다! 100줄이 조금 넘는 파이썬 코드로 다음과 같은 기능을 가진 AI 에이전트를 구축했습니다:
- 모든 웹 페이지의 내용을 요약합니다
- 어떤 전자상거래 사이트에서든 제품 정보 추출
- 온라인 기사에서 뉴스 세부 정보 추출
이제 작동하는 모습을 확인해 볼 시간입니다!
11단계: AI 에이전트 테스트하기
AI 에이전트를 시작하려면 다음을 실행하세요:
python agent.py
이제 Bright Data의 AI 서비스 허브 콘텐츠를 요약하고 싶다면 다음과 같은 요청을 입력하세요:

다음은 JSON 형식으로 얻게 될 결과입니다:

이번에는 PS5 상품 페이지처럼 아마존 상품 페이지에서 제품 데이터를 가져오고 싶다고 가정해 보겠습니다:

일반적으로 아마존의 CAPTCHA 및 봇 방지 시스템이 요청을 차단합니다. Web Unlocker API 덕분에 AI 에이전트는 차단당하지 않고 페이지에 접근하여 파싱할 수 있습니다:

출력 결과는 다음과 같습니다:
{
"name": "PlayStation®5 콘솔 (슬림)",
"price": 499.0,
"currency": "USD",
"ratings": 6321,
"rating_score": 4.7
}
이것이 아마존 페이지의 정확한 상품 데이터입니다!
마지막으로, Yahoo 뉴스 기사에서 구조화된 뉴스 정보를 얻고자 한다고 가정해 보겠습니다:

다음 입력으로 목표를 달성하세요:
요청 내용 -> 뉴스 정보를 제공해 주세요
페이지 URL -> https://www.yahoo.com/news/pope-francis-dies-88-080859417.html
결과는 다음과 같습니다:
{
"title": "교황 프란치스코, 88세로 별세",
"subtitle": null,
"authors": [
"닉 비바렐리",
"윌슨 채프먼"
],
"text": "교회를 보다 포용적으로 이끌려 노력한 제266대 가톨릭 교회 지도자 프란치스코 교황이 부활절 월요일(21일)에 별세했다고 바티칸 관계자가 확인했다. 향년 88세. (생략...)",
"publication_date": "Mon, April 21, 2026 at 8:08 AM UTC"
}
다시 한번, AI 에이전트가 정확한 데이터를 전달합니다—그리고 Web Unlocker 덕분에 뉴스 사이트의 차단 없이!
결론
이 블로그 글에서는 OpenAI 에이전트 SDK와 웹 언락킹 API를 결합하여 Python으로 매우 효과적인 웹 에이전트를 구축하는 방법을 배웠습니다.
시연된 바와 같이, OpenAI SDK와 Bright Data의 Web Unlocker API를 결합하면 어떤 웹 페이지에서도 안정적으로 작동하는 AI 에이전트를 만들 수 있습니다. 이는 Bright Data의 제품과 서비스가 강력한 AI 통합을 지원하는 방법의 한 예에 불과합니다.
AI 에이전트 개발을 위한 당사의 솔루션을 살펴보세요:
- 자율 AI 에이전트: 강력한 API 세트를 사용하여 실시간으로 모든 웹사이트를 검색, 접근 및 상호작용합니다.
- 수직 AI 애플리케이션: 산업별 소스에서 웹 데이터를 추출하기 위한 안정적이고 맞춤형 데이터 파이프라인 구축.
- 파운데이션 모델: 사전 훈련, 평가 및 미세 조정을 위한 규정 준수 웹 규모 데이터셋에 접근하세요.
- 다중 모달 AI: AI에 최적화된 세계 최대 규모의 이미지, 동영상, 오디오 저장소를 활용하세요.
- 데이터 공급자: 신뢰할 수 있는 공급자와 연결하여 대규모로 고품질의 AI 활용 가능한 데이터셋을 확보하세요.
- 데이터 패키지: 선별되고 즉시 사용 가능한 데이터 세트를 구조화, 보강 및 주석 처리된 형태로 확보하세요.
자세한 내용은 당사의 전체 AI 제품군을 살펴보세요.
Bright Data 계정을 생성하고 AI 에이전트 개발을 위한 모든 제품과 서비스를 체험해 보세요!