AWS Strands Agent란 무엇인가?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
AI 앱 개발자, AWS 서비스 사용자, DevOps 엔지니어
난이도: 중급 (AWS 인프라 설정 및 Python 코드 작성 기초 필요)
핵심 요약
- AWS Strands Agent는
open-source framework
로, VSCode, Docker, AWS Lambda, ECS, EKS 등 다양한 환경에서 실행 가능 - Agent Loop 기반의
구조화된 워크플로우
로 도구 사용, 세션 기억, 다중 모델 사용 등 AI 에이전트 기능 제공 BedrockModel
과FastAPI
,Streamlit UI
를 활용한 실제 앱 구현 예시 제공
섹션별 세부 요약
1. AWS Strands Agent 개요
- 구조화된 워크플로우 지원: 의사결정, 도구 사용, 응답 생성을 명확한 루프로 자동화
- 세션 및 메모리 기능: 사용자 상호작용 간 맥락 유지로 개인화된 행동 가능
- 다중 에이전트 협업: 복잡한 작업 수행을 위한 전문 에이전트 간 협력 가능
- 도구 통합: MCP 도구, API, 함수의 유연한 연결 지원
2. Agent Loop 메커니즘
- 사용자 입력 수신 → LLM 처리 → 도구 사용 결정 → 도구 실행 및 결과 수신 → 새로운 정보 기반 추론 → 최종 응답 생성
- 단일 상호작용 내 다중 단계 추론 가능, 자율적인 행동 수행 지원
3. AWS Bedrock 모델 접근 설정
- AWS Bedrock 서비스 사용을 위해
AWS Nova-Pro
,Claude 3.7 Sonnet
,Llama 4
등 모델 선택 - IAM 권한
AmazonBedrockFullAccess
부여 필요 - 환경 설정 방법:
- aws configure
사용으로 config
및 credentials
파일 생성
- .env
파일을 통해 AWS_ACCESS_KEY_ID
및 AWS_SECRET_ACCESS_KEY
설정
4. 코드 구현 예시
- FastAPI 앱 구현:
```python
from fastapi import FastAPI
from strands.models import BedrockModel
MODEL = "us.amazon.nova-pro-v1:0"
bedrock_model = BedrockModel(model_id=MODEL, temperature=0.3, top_p=0.8)
```
- Streamlit UI 구현:
```python
import streamlit as st
import requests
st.set_page_config(page_title="AWS Strands Agent Chat")
user_query = st.chat_input("질문 입력")
if user_query:
response = requests.post("http://localhost:8000/ask", json={"query": user_query})
st.session_state.messages.append({"role": "assistant", "content": response.json()["response"]})
```
5. 실행 및 디모
- FastAPI 서버 실행:
```bash
uvicorn agent:app --host 0.0.0.0 --port 8000
```
- Streamlit UI 실행:
```bash
streamlit run app.py
```
- GitHub 예제 프로젝트: Fast-LLM-Agent-MCP
결론
- AWS Strands Agent는 BedrockModel, FastAPI, Streamlit을 통합한 AI 앱 개발을 위한 실용적인 프레임워크
- IAM 권한 설정, Bedrock 모델 선택, 도구 통합이 핵심 구현 단계
- GitHub 예제를 참고하여 지금 바로 구현해보세요!