AWS Strands 에이전트를 활용한 로컬/리모트 MCP 도구 사용 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
- AI/ML 엔지니어, 백엔드 개발자, 프레임워크 사용자
- 난이도: 중급 이상 (AWS 인프라, FastAPI, MCP 도구 사용 경험 필요)
핵심 요약
- AWS Strands Agents는
로컬/리모트 MCP(모델 컨텍스트 프로토콜)
도구와Bedrock, Nova
모델을 활용하여 엔드투엔드 애플리케이션을 구축할 수 있는 오픈소스 프레임워크 - 에이전트 루프(Agent Loop)는 사용자 입력을 처리하고 도구를 실행하여 복잡한 다단계 추론을 수행
- MCP는 LLM과 외부 도구 간의 표준화된 통신 프로토콜로,
FileOps
,Serper
등 다양한 도구와 호환 가능
섹션별 세부 요약
1. AWS Strands Agents 개요
- AWS Strands Agents: VSCode, Docker, AWS Lambda, ECS/EKS 등에서 실행 가능한 AI 에이전트 개발 프레임워크
- 주요 기능:
- 구조화된 워크플로우 자동화
- 세션/메모리 지원 (인터랙션 간 컨텍스트 유지)
- 다중 에이전트 협업
- MCP 도구 및 LLM(예: GPT, Claude, Nova) 유연한 사용
- 실무용 로깅/모니터링 기능 포함
2. 에이전트 루프(Agent Loop) 메커니즘
- 6단계 구성:
- 사용자 입력 및 컨텍스트 수신
- LLM을 사용한 입력 처리
- 도구 사용 여부 결정
- 도구 실행 및 결과 수신
- 새로운 정보 기반으로 추론 계속
- 최종 응답 생성 또는 루프 재실행
- 특징: 복잡한 다단계 추론 및 자율적 행동 가능
3. Model Context Protocol (MCP)
- MCP: LLM과 외부 애플리케이션, 데이터원, 도구 간의 표준화된 커뮤니케이션 프로토콜
- 사용 예시:
- FileOps
: Linux(WSL)에서 파일 시스템 작업
- Serper
: 웹 검색 및 스크래핑 도구 (API 키 필요)
- GitHub 예제:
4. 구현 단계 및 코드 예시
- 프론트엔드 (Streamlit UI):
```python
import streamlit as st
st.set_page_config(page_title="AWS Strands Agent Chat")
user_query = st.chat_input("Ask for system file tool commands or anything...")
```
- 백엔드 (FastAPI + Strands Agents):
```python
from strands.models import BedrockModel
from strands.tools.mcp import MCPClient
bedrock_model = BedrockModel(model_id="us.amazon.nova-pro-v1:0")
mcp_client = MCPClient(...)
agent = Agent(model=bedrock_model, tools=mcp_client.list_tools_sync())
```
- 실행 명령:
- 프론트엔드: streamlit run app.py
- 백엔드: uvicorn agent:app --host 0.0.0.0 --port 8000
결론
- 핵심 팁:
- MCP 도구(예: FileOps
, Serper
)는 npx
기반으로 실행 (Node.js, npm 설치 필요)
- AWS Bedrock 모델 사용 시 AmazonBedrockFullAccess
IAM 권한 필요
- BedrockModel
및 MCPClient
클래스는 LLM과 MCP 도구 통합에 필수
- 실무에서는 로컬/리모트 MCP 혼합 사용을 통해 유연한 시스템 구축 가능