AI

AWS Strands SDK 및 Bright Data의 Web MCP를 사용하는 AI 에이전트

AWS Strands SDK를 Bright Data의 MCP 서버와 통합하여 자율적인 실시간 웹 데이터 분석이 가능한 AI 에이전트를 생성하는 방법을 알아보세요.
5 분 읽기
AWS Strands SDK × Bright Data MCP

대규모 언어 모델(LLM) 기반 AI 에이전트는 추론과 의사 결정을 수행할 수 있지만, 훈련 데이터의 한계가 존재합니다. 진정으로 유용한 에이전트를 구축하려면 실시간 웹 데이터와 연결해야 합니다. 본 가이드에서는 AWS Strands SDK와 Bright Data의 Web MCP 서버를 결합하여 실시간 웹 데이터에 접근하고 분석할 수 있는 자율형 AI 에이전트를 만드는 방법을 설명합니다.

이 가이드에서 다음을 배울 수 있습니다:

  • AWS Strands SDK의 정의 및 AI 에이전트 구축 프레임워크로서의 차별점
  • 웹 인식 에이전트 구축을 위해 AWS Strands SDK가 Bright Data의 Web MCP 서버와 완벽하게 조화를 이루는 이유
  • AWS Strands를 Bright Data의 Web MCP와 통합하여 자율적인 경쟁 정보 에이전트를 만드는 방법
  • 목표에 따라 웹 스크래핑 도구를 자율적으로 선택하는 에이전트 구축 방법

자, 시작해 보겠습니다!

AWS Strands SDK란 무엇인가요?

AWS Strands SDK는 최소한의 코드로 AI 에이전트를 구축하기 위해 AWS가 개발한 경량 코드 우선 프레임워크입니다. 하드코딩된 로직이 아닌 모델의 결정에서 에이전트 기능이 도출되는 모델 주도적 접근 방식을 취합니다.

다른 AI 에이전트 프레임워크와 비교할 때 AWS Strands SDK는 단순성, 유연성, 그리고 생산 환경 적용 가능성을 강조합니다. 구체적으로 주요 특징은 다음과 같습니다:

  • 모델 독립성: AWS Bedrock, OpenAI, Anthropic 등 다양한 LLM 공급자 지원
  • 네이티브 MCP 지원: 1000개 이상의 사전 구축된 도구에 접근하기 위한 모델 컨텍스트 프로토콜(MCP)과의 내장 통합
  • 최소 코드: 몇 줄의 코드로 정교한 에이전트 구축
  • 생산 환경 준비 완료: 기본 제공되는 오류 처리, 재시도, 가시성 기능 포함
  • 에이전틱 루프: 자율적 의사 결정을 위한 인지-추론-행동 사이클 구현
  • 다중 에이전트 지원: 여러 특수화 에이전트 간 협업을 위한 오케스트레이션 기본 요소
  • 상태 관리: 상호작용 전반에 걸친 세션 및 컨텍스트 관리

AWS Strands SDK 이해하기

핵심 아키텍처

AWS Strands SDK는 성능을 저하시키지 않는 깔끔한 3가지 구성 요소 설계로 에이전트 개발을 간소화합니다.

이 접근 방식을 통해 수천 줄의 코드가 필요한 작업을 최소한의 코드로 스마트 에이전트를 구축할 수 있습니다.

  1. 모델 구성 요소: 여러 AI 공급자와 협력하는 두뇌
  2. 도구 통합: MCP 서버를 통해 에이전트를 외부 시스템에 연결
  3. 프롬프트 기반 작업: 코드 대신 자연어로 에이전트 동작 정의

에이전틱 루프 구현

Agentic loop diagram

에이전틱 루프는 Strands 에이전트를 매우 스마트하게 만드는 핵심입니다. 이는 에이전트가 상황을 인지하고, 이를 고려하여, 스스로 행동을 취하는 지속적인 순환 과정과 같아 복잡한 작업을 완전히 독자적으로 처리할 수 있게 합니다.

Strands는 AI 모델이 다음 행동을 결정하도록 함으로써 판도를 바꿉니다. 모든 가능한 시나리오를 코딩하는 대신, 모델이 현재 상황에 기반해 스스로 해결책을 찾아냅니다.

실제 작동 방식은 다음과 같습니다:

  1. 사용자로부터 작업을 받은 에이전트는
  2. 모델은 현재 상황과 사용 가능한 도구를 분석합니다.
  3. 도구를 사용할지, 설명을 요청할지, 최종 답변을 제공할지 결정합니다.
  4. 도구를 사용하기로 결정하면 Strands가 해당 도구를 실행하고 결과를 모델에 다시 피드백합니다.
  5. 작업이 완료되거나 사람의 도움이 필요할 때까지 이 과정이 반복됩니다.

가격 모니터링 도구를 구축하는 것을 생각해보세요. 기존 코딩 방식으로는 경쟁사 웹사이트 확인, 다양한 페이지 레이아웃 처리, 오류 관리, 결과 수집, 경보 임계값 설정을 위한 로직을 작성해야 합니다.

Strands를 사용하면 웹 스크래핑 도구만 제공하고 에이전트에게 “이 경쟁사 사이트에서 5% 이상의 가격 변동을 모니터링하고 요약으로 알려주세요”라고 지시하기만 하면 됩니다. 모델이 어떤 사이트를 확인할지, 문제를 어떻게 처리할지, 언제 알림을 보낼지 모두 스스로 파악합니다.

웹 데이터 수집을 위해 AWS Strands SDK와 MCP 서버를 결합해야 하는 이유

AWS Strands로 구축된 AI 에이전트는 기반 LLM의 한계, 특히 실시간 정보 접근 부족을 그대로 계승합니다. 이로 인해 경쟁사 가격, 시장 상황, 고객 감정 등 최신 데이터가 필요한 상황에서 에이전트의 응답이 오래되거나 부정확해질 수 있습니다.

이때 Bright Data의 웹 MCP 서버가 해결책이 됩니다. Node.js 기반으로 구축된 이 MCP 서버는 Bright Data의 AI 지원 데이터 검색 도구 모음과 통합됩니다. 이 도구들은 에이전트가 다음을 수행할 수 있도록 지원합니다:

  • 봇 방지 기능이 적용된 웹사이트를 포함한 모든 웹사이트 콘텐츠 접근
  • 120개 이상의 인기 사이트에서 구조화된 데이터셋 쿼리
  • 여러 검색 엔진에서 동시에 검색
  • 동적 웹 페이지와 실시간 상호작용

현재 MCP 서버에는 웹 스크레이퍼 API를 활용해 Amazon, LinkedIn, TikTok 등 사이트에서 구조화된 데이터를 수집하는 40여 개의 전문 도구가 포함되어 있습니다.

이제 AWS Strands SDK를 사용하여 이러한 MCP 도구를 활용하는 방법을 살펴보겠습니다!

Python에서 AWS Strands SDK를 Bright Data MCP 서버와 통합하는 방법

이 섹션에서는 AWS Strands SDK를 사용하여 웹 MCP 서버에서 실시간 데이터 스크래핑 및 검색 기능을 갖춘 AI 에이전트를 구축하는 방법을 배웁니다.

예를 들어, 시장과 경쟁사를 자율적으로 분석할 수 있는 경쟁 정보 에이전트를 구축해 보겠습니다. 이 에이전트는 목표에 따라 사용할 도구를 결정하여 에이전트 루프의 힘을 보여줄 것입니다.

AWS Strands SDK를 사용하여 Claude + Bright Data MCP 기반 AI 에이전트를 구축하는 단계별 가이드를 따르세요!

필수 조건

코드 예제를 재현하려면 다음이 준비되어 있어야 합니다:

소프트웨어 요구 사항:

  • Python 3.10 이상
  • Node.js (최신 LTS 버전 권장)
  • Python IDE (Python 확장 기능이 설치된 VS Code 또는 PyCharm)

계정 요구 사항:

배경 지식 (유용하지만 필수는 아님):

  • MCP 작동 방식에 대한 기본 이해
  • AI 에이전트 및 그 기능에 대한 이해
  • Python 비동기 프로그래밍 기본 지식

1단계: Python 프로젝트 생성

터미널을 열고 프로젝트용 새 폴더 생성:

mkdir strands-mcp-agent
cd strands-mcp-agent

Python 가상 환경 설정:

python -m venv venv

가상 환경 활성화:

# Linux/macOS에서:
source venv/bin/activate

# Windows에서:
venvScriptsactivate

메인 Python 파일 생성:

touch agent.py

폴더 구조는 다음과 같아야 합니다:

strands-mcp-agent/
├── venv/
└── agent.py

이제 모든 준비가 완료되었습니다! 웹 데이터에 접근할 수 있는 AI 에이전트를 구축할 준비가 된 Python 환경을 갖췄습니다.

2단계: AWS Strands SDK 설치

활성화된 가상 환경에서 필요한 패키지를 설치하세요:

pip install strands-agents python-dotenv

다음 패키지가 설치됩니다:

  • strands-agents: AI 에이전트 구축용 AWS Strands SDK
  • python-dotenv: 안전한 환경 변수 관리를 위한 도구

다음으로 agent.py 파일에 다음 임포트 문장을 추가하세요:

from strands import Agent
from strands.models.anthropic import AnthropicModel
from strands.tools.mcp.mcp_client import MCPClient
from mcp.client.stdio import stdio_client, StdioServerParameters

좋아요! 이제 에이전트 구축을 위해 AWS Strands SDK를 사용할 수 있습니다.

3단계: 환경 변수 설정

안전한 API 키 관리를 위해 프로젝트 폴더에 .env 파일을 생성하세요:

touch .env

.env 파일에 API 키를 추가하세요:

# Claude 모델용 Anthropic API
ANTHROPIC_API_KEY=your_anthropic_key_here

# 웹 스크래핑용 Bright Data 자격 증명
BRIGHT_DATA_API_KEY=your_bright_data_token_here

agent.py 파일에서 환경 변수 로딩 설정:

import os
from dotenv import load_dotenv

load_dotenv()

# API 키 읽기
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")

이제 .env 파일에서 API 키를 안전하게 불러올 수 있도록 설정되었습니다.

4단계: Bright Data MCP 서버 설치 및 테스트

npm을 통해 Bright Data Web MCP를 전역으로 설치하세요:

npm install -g @brightdata/mcp

API 키로 작동하는지 테스트하세요:

# Linux/macOS에서:
API_TOKEN="<YOUR_BRIGHT_DATA_API>" npx -y @brightdata/mcp

# Windows PowerShell에서:
$env:API_TOKEN="<YOUR_BRIGHT_DATA_API>"; npx -y @brightdata/mcp

성공하면 MCP 서버가 시작되는 로그가 표시됩니다. 첫 실행 시 Bright Data 계정에 자동으로 두 개의 영역이 생성됩니다:

  • mcp_unlocker: 웹 언락커용
  • mcp_browser: 브라우저 API용

Bright Data 대시보드의 “프록시 및 스크래핑 인프라“에서 이를 확인할 수 있습니다.

훌륭합니다! 웹 MCP 서버가 완벽하게 작동합니다.

Bright Data's control panel showing the free tier MCP requests

5단계: Strands 모델 초기화

agent.py에서 Anthropic Claude 모델을 구성하세요:

# Anthropic 모델 초기화
model = AnthropicModel(
    model_id="claude-3-opus-20240229",  # 비용 절감을 위해 claude-3-sonnet 사용 가능
    max_tokens=4096,
    params={"temperature": 0.3}
)

# API 키 설정
os.environ["ANTHROPIC_API_KEY"] = ANTHROPIC_API_KEY

이 설정은 Claude를 에이전트의 LLM으로 구성하며, 일관되고 집중된 응답을 위한 적절한 매개변수를 적용합니다.

6단계: 웹 MCP 서버에 연결

Bright Data 도구에 연결하기 위한 MCP 클라이언트 구성을 생성합니다:

import asyncio
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

async def connect_mcp_tools():
    """Bright Data MCP 서버에 연결하고 도구 탐색"""

    logger.info("Bright Data MCP에 연결 중...")

    # Bright Data 호스팅 MCP 연결 구성
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "@brightdata/mcp"],
        env={"API_TOKEN": BRIGHT_DATA_API_KEY, "PRO_MODE": "true"}
    )

    # MCP 클라이언트 생성
    mcp_client = MCPClient(lambda: stdio_client(server_params))

    # 사용 가능한 도구 탐색
    with mcp_client:
        tools = mcp_client.list_tools_sync()
        logger.info(f"📦 {len(tools)}개의 MCP 도구 탐색 완료")

        for tool in tools:
            logger.info(f"  - {tool.tool_name}")

    return mcp_client, tools

이 코드는 Bright Data의 MCP 서버에 연결하고 사용 가능한 모든 웹 스크래핑 도구를 탐색합니다.

7단계: 경쟁 정보 수집 에이전트 정의

경쟁 정보 수집을 위한 특수 프롬프트를 가진 에이전트를 생성합니다:

def create_agent(model, tools):
    """웹 데이터 접근이 가능한 경쟁 정보 에이전트 생성"""

    system_prompt = """당신은 MCP를 통해 강력한 웹 데이터 도구에 접근할 수 있는 전문 경쟁 정보 분석가입니다.

## 임무
실시간 웹 데이터를 활용한 포괄적인 시장 및 경쟁사 분석 수행.

## 사용 가능한 MCP 도구
다음 Bright Data MCP 도구를 사용할 수 있습니다:
- search_engine: Google, Bing 또는 Yandex 검색 결과 스크래핑
- scrape_as_markdown: CAPTCHA 우회 기능으로 모든 웹페이지 콘텐츠 추출
- search_engine_batch: 다중 검색 동시 실행
- scrape_batch: 다중 웹페이지 병렬 스크래핑

## 자율 분석 워크플로
분석 작업이 주어지면 자율적으로:
1. 목표에 따라 사용할 도구를 결정합니다
2. 다양한 출처에서 포괄적인 데이터를 수집합니다
3. 발견 사항을 실행 가능한 통찰력으로 종합합니다
4. 구체적인 전략적 권장 사항을 제공합니다

도구 선택에 적극적이어야 합니다 - 모든 도구를 자유롭게 조합하여 사용할 수 있는 완전한 자율권을 가집니다."""

    return Agent(
        model=model,
        tools=tools,
        system_prompt=system_prompt
    )

이를 통해 자율적 의사결정 능력을 갖춘 경쟁 정보 분석 전문 에이전트가 생성됩니다.

단계 #8: 에이전트 실행

에이전트 실행을 위한 메인 함수 생성:

async def main():
    """경쟁 정보 에이전트 실행"""

    print("🚀 AWS Strands + Bright Data MCP 경쟁 정보 에이전트")
    print("=" * 70)

    try:
        # MCP 도구 연결
        mcp_client, tools = await connect_mcp_tools()

        # 에이전트 생성
        agent = create_agent(model, tools)

        print("n✅ 에이전트 준비 완료, 웹 데이터 접근 가능!")
        print("n📊 분석 시작...")
        print("-" * 40)

        # 예시: 테슬라의 경쟁적 위치 분석
        prompt = """
        전기차 시장에서 테슬라의 경쟁적 위치를 분석하세요.

        조사 항목:
        - 현재 제품 라인업 및 가격 전략
        - 주요 경쟁사 및 그들의 제품/서비스
        - 최근 전략적 발표
        - 시장 점유율 및 포지셔닝

        웹 스크래핑 도구를 사용하여 tesla.com 및 검색 결과에서 실시간 데이터를 수집하세요.
        """

        # MCP 컨텍스트로 분석 실행
        with mcp_client:
            result = await agent.invoke_async(prompt)

        print("n📈 분석 결과:")
        print("=" * 50)
        print(result.content)

        print("n✅ 분석 완료!")

    except Exception as e:
        logger.error(f"오류: {e}")
        print(f"n❌ 오류: {e}")

if __name__ == "__main__":
    asyncio.run(main())

임무 완료! 에이전트가 자율적인 경쟁사 분석을 수행할 준비가 되었습니다.

단계 #9: 모든 것을 통합하기

agent.py의 전체 코드는 다음과 같습니다:

import asyncio
import os
import logging
from dotenv import load_dotenv

from strands import Agent
from strands.models.anthropic import AnthropicModel
from strands.tools.mcp.mcp_client import MCPClient
from mcp.client.stdio import stdio_client, StdioServerParameters

# 환경 변수 로드
load_dotenv()
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# API 키 읽기
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")

# Anthropic 모델 초기화
model = AnthropicModel(
    model_id="claude-3-opus-20240229",
    max_tokens=4096,
    params={"temperature": 0.3}
)

# API 키 설정
os.environ["ANTHROPIC_API_KEY"] = ANTHROPIC_API_KEY

async def connect_mcp_tools():
    """Bright Data MCP 서버에 연결하고 도구 탐색"""

    logger.info("Bright Data MCP에 연결 중...")

    # Bright Data 호스팅 MCP 연결 구성
    server_params = StdioServerParameters(
        command="npx",
        args=["-y", "@brightdata/mcp"],
        env={"API_TOKEN": BRIGHT_DATA_API_KEY, "PRO_MODE": "true"}
    )

    # MCP 클라이언트 생성
    mcp_client = MCPClient(lambda: stdio_client(server_params))

    # 사용 가능한 도구 탐색
    with mcp_client:
        tools = mcp_client.list_tools_sync()
        logger.info(f"📦 {len(tools)}개의 MCP 도구 발견")

        for tool in tools:
            logger.info(f"  - {tool.tool_name}")

    return mcp_client, tools

def create_agent(model, tools):
    """웹 데이터 접근 권한을 가진 경쟁 정보 에이전트 생성"""

    system_prompt = """당신은 MCP를 통해 강력한 웹 데이터 도구에 접근할 수 있는 전문 경쟁 정보 분석가입니다.

## 당신의 임무
실시간 웹 데이터를 활용하여 포괄적인 시장 및 경쟁 분석을 수행하세요.

## 사용 가능한 MCP 도구
다음 Bright Data MCP 도구를 사용할 수 있습니다:
- search_engine: Google, Bing 또는 Yandex의 검색 결과를 스크래핑합니다
- scrape_as_markdown: CAPTCHA 우회 기능으로 모든 웹페이지의 콘텐츠 추출
- search_engine_batch: 다중 검색 동시 실행
- scrape_batch: 병렬로 다중 웹페이지 스크래핑

## 자율 분석 워크플로
분석 작업이 주어지면 자율적으로:
1. 목표에 따라 사용할 도구 결정
2. 다중 출처에서 포괄적 데이터 수집
3. 결과를 실행 가능한 인사이트로 종합
4. 구체적인 전략적 권고안 제공

도구 선택에 적극적이어야 함 - 모든 도구 조합을 자유롭게 사용할 수 있는 완전한 자율성을 가짐."""

    return Agent(
        model=model,
        tools=tools,
        system_prompt=system_prompt
    )

async def main():
    """경쟁 정보 에이전트 실행"""

    print("🚀 AWS Strands + Bright Data MCP 경쟁 정보 에이전트")
    print("=" * 70)

    try:
        # MCP 도구 연결
        mcp_client, tools = await connect_mcp_tools()

        # 에이전트 생성
        agent = create_agent(model, tools)

        print("n✅ 웹 데이터 접근 가능한 에이전트 준비 완료!")
        print("n📊 분석 시작...")
        print("-" * 40)

        # 예시: 테슬라의 경쟁적 위치 분석
        prompt = """
        전기차 시장에서 테슬라의 경쟁적 위치를 분석하세요.

        조사 항목:
        - 현재 제품 라인업 및 가격 전략
        - 주요 경쟁사 및 그들의 제품
        - 최근 전략적 발표
        - 시장 점유율 및 포지셔닝

        웹 스크래핑 도구를 사용하여 tesla.com 및 검색 결과에서 실시간 데이터를 수집하세요.
        """

        # MCP 컨텍스트로 분석 실행
        with mcp_client:
            result = await agent.invoke_async(prompt)

        print("n📈 분석 결과:")
        print("=" * 50)
        print(result)

        print("n✅ 분석 완료!")

    except Exception as e:
        logger.error(f"오류: {e}")
        print(f"n❌ 오류: {e}")

if __name__ == "__main__":
    asyncio.run(main())

AI 에이전트 실행 방법:

python agent.py
The agent demo including the output in the terminal.png

터미널에서 다음과 같은 출력이 표시됩니다:

  1. MCP 연결 설정 중
  2. 사용 가능한 Bright Data 도구 탐색 중
  3. 에이전트가 사용할 도구를 자동으로 선택 중
  4. Tesla.com 및 검색 결과에서 실시간 데이터 수집 중
  5. 최신 데이터를 활용한 포괄적인 경쟁사 분석

에이전트가 자율적으로 결정:

  • search_engine을 사용하여 테슬라 및 경쟁사에 대한 정보 찾기
  • 스크랩_어스_마크다운을 사용하여 tesla.com에서 데이터 추출
  • 종합 분석을 위해 여러 데이터 소스 결합

자, 이제 실시간 웹 데이터에 접근하고 분석할 수 있는 자율적 경쟁 정보 에이전트를 성공적으로 구축했습니다.

다음 단계

여기서 구축한 AI 에이전트는 기능적이지만 시작점일 뿐입니다. 다음 단계로 발전시키려면:

  • 대화 루프 구축: 에이전트와 대화형으로 소통할 수 있는 REPL 인터페이스 추가
  • 전문 에이전트 생성: 가격 모니터링, 시장 조사, 리드 생성용 에이전트 구축
  • 다중 에이전트 워크플로 구현: 복잡한 작업을 위해 여러 전문 에이전트를 조정합니다
  • 메모리 및 상태 추가: 컨텍스트 인식 대화를 위한 AWS Strands 상태 관리 활용
  • 프로덕션 환경 배포: 확장 가능한 에이전트 배포를 위해 AWS 인프라 활용
  • 사용자 정의 도구로 확장: 특수 데이터 소스를 위한 자체 MCP 도구 생성
  • 가시성 추가: 프로덕션 배포를 위한 로깅 및 모니터링 구현

실제 사용 사례

AWS Strands와 Bright Data의 결합은 다양한 비즈니스 애플리케이션 전반에 걸쳐 더 진보된 AI 에이전트를 가능하게 합니다:

  • 경쟁 정보 에이전트: 경쟁사의 가격, 제품 기능 및 마케팅 캠페인을 실시간으로 모니터링
  • 시장 조사 에이전트: 업계 동향, 소비자 심리지수, 신흥 기회를 분석
  • 전자상거래 최적화 에이전트: 동적 가격 전략을 위한 경쟁사 카탈로그 및 가격 추적
  • 리드 생성 에이전트: 웹 소스에서 잠재 고객을 식별하고 검증합니다
  • 브랜드 모니터링 에이전트: 웹 전반의 브랜드 언급, 리뷰, 평판 추적
  • 투자 리서치 에이전트: 투자 결정을 위한 재무 데이터, 뉴스, 시장 신호 수집

결론

본 문서에서는 AWS Strands SDK와 Bright Data의 Web MCP 서버를 통합하여 실시간 웹 데이터에 접근하고 분석할 수 있는 자율 AI 에이전트를 구축하는 방법을 살펴보았습니다. 이 강력한 조합을 통해 실시간 정보로 최신 동향을 파악하면서 전략적으로 사고할 수 있는 에이전트를 생성할 수 있습니다.

이 접근 방식의 주요 장점은 다음과 같습니다:

  • 최소한의 코드: 약 100줄의 Python 코드로 정교한 에이전트 구축
  • 자율적 의사 결정: 에이전트가 목표에 따라 사용할 도구를 결정
  • 실전 적용 가능: 양 플랫폼의 내장 오류 처리 및 확장성 지원
  • 실시간 데이터 접근: 라이브 웹 데이터로 LLM의 한계를 극복

더 정교한 에이전트를 구축하려면 Bright Data AI 인프라에서 제공하는 모든 서비스를 살펴보세요. 이러한 솔루션은 다양한 에이전트 시나리오를 구동할 수 있습니다.

Bright Data 계정을 무료로 생성하고 AI 기반 웹 데이터 도구를 지금 바로 실험해 보세요!