AWS

에이전트 개발, 이렇게 쉬워도 되나? - AWS가 공개한 오픈소스 AI 에이전트 SDK, Strands Agents 완전 분석

파파누보 2025. 5. 17. 23:00
728x90
반응형

 

복잡한 AI 에이전트 개발, 더 이상 그럴 필요 없습니다

AI 에이전트를 만들어보려다 프레임워크 설정만 며칠 걸린 경험, 한 번쯤 있으셨을 겁니다. 툴 호출 로직, 상태 관리, 멀티에이전트 구성, 온갖 설정 파일까지. 개발은 복잡하고, 유지보수는 더 복잡하죠.

AWS는 이 복잡함을 근본적으로 줄이기 위해 Strands Agents라는 오픈소스 SDK를 공개했습니다. 단 몇 줄의 코드만으로 강력한 AI 에이전트를 만들고, 테스트하고, 실제 서비스에 배포할 수 있도록 돕는 도구입니다.

Strands는 최신 LLM의 추론 능력과 도구 호출 능력을 최대한 활용하는 **모델 중심 설계(model-driven approach)**로 설계되어, 이전보다 훨씬 간단하게 AI 에이전트를 구축할 수 있도록 지원합니다.

이 글에서는 Strands Agents가 등장하게 된 배경부터 핵심 구조, 주요 기능, 실제 사용 예제와 프로덕션 배포 방식까지 모두 살펴보겠습니다.

반응형

https://aws.amazon.com/ko/blogs/opensource/introducing-strands-agents-an-open-source-ai-agents-sdk/?fbclid=IwY2xjawKVcV5leHRuA2FlbQIxMQBicmlkETFEUTFwTjBJVWhjNHM0Q0NXAR4pJbk8giS2YeSDWl11Tzf8tGwfrSlgO-RqgykY_bi9jY5b0NTevaYb3iyprA_aem_V5BB1uAMyg1Wj7KUdz37Nw

Strands Agents란 무엇인가?

Strands Agents는 AWS에서 개발한 오픈소스 AI 에이전트 SDK입니다. 기존의 복잡한 워크플로우 기반 프레임워크와 달리, 단순한 코드 기반으로 에이전트를 정의할 수 있도록 만들어졌습니다. 이미 Amazon Q Developer, AWS Glue, VPC Reachability Analyzer 같은 AWS의 주요 서비스에서도 실사용 중입니다.

Strands의 가장 큰 특징은 모델이 중심이 되어 에이전트를 스스로 계획하고, 툴을 호출하고, 결과를 바탕으로 반복적으로 추론하는 구조입니다. 이 덕분에 에이전트 로직의 복잡성을 크게 줄이면서도 유연하고 강력한 성능을 구현할 수 있습니다.

Strands라는 이름은 DNA의 두 가닥처럼, 모델과 툴이라는 두 핵심 요소를 연결해 작동한다는 의미에서 유래했습니다.


Strands의 핵심 개념

Strands 에이전트는 다음 세 가지 구성 요소로 정의됩니다:

  1. 모델 (Model)
    Amazon Bedrock, Anthropic Claude, Meta Llama, Ollama, OpenAI 등 다양한 모델을 사용할 수 있으며, 직접 모델 제공자를 정의할 수도 있습니다.
  2. 툴 (Tools)
    API 호출, 문서 검색, 파일 처리 등 다양한 작업을 수행할 수 있는 툴을 사용할 수 있습니다. 기존 MCP 서버를 툴로 사용할 수도 있고, Python 함수에 @tool 데코레이터를 붙여 손쉽게 툴을 만들 수 있습니다.
  3. 프롬프트 (Prompt)
    에이전트의 기본 동작을 지시하는 자연어 입력입니다. 사용자 입력뿐 아니라 시스템 프롬프트로 동작 규칙도 정의할 수 있습니다.

이 세 가지 요소를 코드로 정의하면, Strands가 자동으로 에이전트의 동작을 계획하고 반복적으로 실행해 결과를 도출합니다. 이 과정은 Agentic Loop라 불리며, 모델이 매 단계에서 할 일을 스스로 결정하고 툴을 호출하며 작업을 진행합니다.


Strands가 제공하는 고급 기능들

Strands는 단순한 구조를 기반으로 하면서도 복잡한 작업도 수행할 수 있도록 다양한 기능을 제공합니다.

1. Retrieve Tool

문서 검색이나 툴 검색에 사용되는 툴입니다. 수천 개의 툴 중 모델이 필요한 것만 선택할 수 있도록 도와줍니다. 예를 들어 6,000개 툴 중에서 의미 기반 검색으로 관련 툴만 추려낼 수 있습니다.

2. Thinking Tool

깊은 분석이나 복잡한 사고가 필요한 경우, 모델이 자가 반성(self-reflection)을 하면서 생각을 정리할 수 있도록 돕는 툴입니다.

3. Multi-Agent Tool (Workflow, Graph, Swarm)

여러 에이전트를 동시에 운영하거나 협업이 필요한 작업에 사용됩니다. 모델이 작업의 복잡성에 따라 자동으로 다중 에이전트 전략을 사용할 수 있도록 지원합니다.


사용 예제: 오픈소스 프로젝트 네이밍 에이전트 만들기

Strands를 이용하면 단순한 아이디어도 바로 에이전트로 구현할 수 있습니다. 아래는 오픈소스 프로젝트의 이름을 추천해주는 에이전트를 만든 예입니다.

from strands import Agent
from strands.tools.mcp import MCPClient
from strands_tools import http_request
from mcp import stdio_client, StdioServerParameters

NAMING_SYSTEM_PROMPT = """
You are an assistant that helps to name open source projects.
When providing suggestions, check domain and GitHub availability.
"""

domain_name_tools = MCPClient(lambda: stdio_client(
    StdioServerParameters(command="uvx", args=["fastdomaincheck-mcp-server"])
))

github_tools = [http_request]

with domain_name_tools:
    tools = domain_name_tools.list_tools_sync() + github_tools
    naming_agent = Agent(system_prompt=NAMING_SYSTEM_PROMPT, tools=tools)
    naming_agent("I need to name an open source project for building AI agents.")

위 코드에서 도메인 등록 여부와 GitHub 조직 이름 사용 가능 여부를 확인한 뒤, 프로젝트 이름을 추천해주는 에이전트를 정의했습니다.


프로덕션 배포도 간단하게

Strands는 실제 서비스 환경에 배포하기 위한 다양한 아키텍처를 지원합니다. 예를 들어 다음과 같은 방식으로 운영할 수 있습니다:

  1. 로컬 실행형 CLI 에이전트
    개발자 로컬에서 전체 로직과 툴을 실행하는 간단한 구조.
  2. API 백엔드 배포형
    Lambda, Fargate, EC2 등을 활용해 API 형태로 에이전트를 배포.
  3. 툴과 에이전트 분리형
    에이전트는 한 환경에서 실행되고, 툴은 별도의 백엔드에서 실행.
  4. 클라이언트-툴 혼합 실행형
    일부 툴은 로컬 클라이언트에서 실행하고, 나머지는 백엔드에서 실행.

또한 Strands는 OpenTelemetry를 통한 모니터링 기능도 제공합니다. 이를 통해 각 단계의 실행 흐름, 툴 사용 내역, 성능 메트릭 등을 시각화하고 분석할 수 있습니다.


728x90

Strands Agents가 만드는 새로운 가능성

Strands Agents는 단순한 사용성과 강력한 기능을 동시에 제공하는, 매우 실용적인 AI 에이전트 SDK입니다. 특히 최근 대형 언어 모델들이 스스로 추론하고 도구를 선택할 수 있는 능력을 갖추면서, 이전의 복잡한 프레임워크들은 오히려 걸림돌이 되고 있었습니다.

이제 Strands를 통해 에이전트 개발은 더 이상 전문가만의 영역이 아닙니다. 누구든지 단순한 코드만으로 강력한 AI 도우미를 만들고, 원하는 환경에서 테스트하고, 배포까지 할 수 있습니다.

앞으로 더 많은 기업과 개발자들이 Strands Agents를 활용해, 다양한 분야에서 혁신적인 AI 에이전트를 만들 것으로 기대됩니다. 복잡한 설정보다 중요한 건, 좋은 아이디어와 명확한 목적입니다. 나머지는 Strands가 해결해줄 수 있습니다.

https://aws.amazon.com/ko/blogs/opensource/introducing-strands-agents-an-open-source-ai-agents-sdk/?fbclid=IwY2xjawKVcV5leHRuA2FlbQIxMQBicmlkETFEUTFwTjBJVWhjNHM0Q0NXAR4pJbk8giS2YeSDWl11Tzf8tGwfrSlgO-RqgykY_bi9jY5b0NTevaYb3iyprA_aem_V5BB1uAMyg1Wj7KUdz37Nw

 

Introducing Strands Agents, an Open Source AI Agents SDK | Amazon Web Services

Today I am happy to announce we are releasing Strands Agents. Strands Agents is an open source SDK that takes a model-driven approach to building and running AI agents in just a few lines of code. Strands scales from simple to complex agent use cases, and

aws.amazon.com

728x90
반응형