소개 지난 1부에서는 VoD 환경에서의 비디오 분석 파이프라인 구축을, 2부에서는 AWS 미디어 서비스를 활용한 준실시간 분석 파이프라인을 다루었습니다. 이번 3부에서는 한 단계 더 나아가, AI 에이전트가 스스로 판단하고 도구를 선택하여 영상을 분석하는 에이전틱(Agentic) 비디오 엔진을 구축하는 방법을 소개합니다. 기존 1부와 2부의 파이프라인은 미리 정해진 순서대로 영상을 임베딩하고 검색하는 고정된 워크플로 방식이었습니다. 하지만 실제 영상 분석 […] || 소개
지난 1부에서는 VoD 환경에서의 비디오 분석 파이프라인 구축을, 2부에서는 AWS 미디어 서비스를 활용한 준실시간 분석 파이프라인을 다루었습니다. 이번 3부에서는 한 단계 더 나아가, AI 에이전트가 스스로 판단하고 도구를 선택하여 영상을 분석하는 에이전틱(Agentic) 비디오 엔진을 구축하는 방법을 소개합니다.
기존 1부와 2부의 파이프라인은 미리 정해진 순서대로 영상을 임베딩하고 검색하는 고정된 워크플로 방식이었습니다. 하지만 실제 영상 분석 요구사항은 이보다 훨씬 다양합니다. “이 축구 영상을 요약하고 골 장면을 찾아주고 자막은 VTT포맷을 유지한채 인도네시아어로 번역해줘”라는 요청에는 영상 임베딩, 영상 검색, 영상 요약, 자막 추출 등 여러 기능이 상황에 맞게 조합돼야 합니다.
물론 고정된 워크플로 방식을 활용할 수 있지만 개인별 영상을 처리하고자 하는 방식은 다양함으로 신규 영상 시나리오별 워크플로를 구성하고 자주 사용하지 않는 워크플로는 삭제해야 합니다. 이때, AI 에이전트를 활용하면 사용자의 자연어 요청을 이해하고, 원하는 결과를 도출하기 위해 어떤 도구를 어떤 순서로 사용할지 결정하고 어떤 에이전트와 협업할지 스스로 판단하게 할 수 있습니다. 이 글에서는 AWS가 오픈소스로 공개한 Strands Agents SDK를 사용하여, TwelveLabs의 비디오 AI 모델과 다양한 AWS 서비스를 통합한 에이전틱 비디오 엔진을 구축하는 예시를 단계별로 설명합니다.
Strands Agents SDK란?
Strands Agents SDK는 AWS가 오픈소스로 공개한 AI 에이전트 개발 프레임워크입니다. 개발자가 AI 에이전트를 빠르게 구축하고, 관리하고, 배포할 수 있도록 설계되었습니다.
핵심 개념: 에이전트 = 모델 + 도구 + 프롬프트
Strands에서 에이전트는 세 가지 요소로 구성됩니다.
모델(Model): 에이전트의 “두뇌” 역할을 합니다. Amazon Bedrock의 Claude, Nova 등 다양한 LLM을 지원합니다.
도구(Tool): 에이전트가 실제 작업을 수행할 때 사용하는 함수입니다. API 호출, 데이터 처리, 외부 서비스 연동 등 어떤 Python 함수든 도구로 만들 수 있습니다.
시스템 프롬프트(System Prompt): 에이전트의 역할과 행동 규칙을 정의합니다.
가장 간단한 에이전트는 단 3줄로 만들 수 있습니다.
from strands import Agent
agent = Agent()
response = agent("Amazon Bedrock에 대해 알려줘")
이 코드만으로도 Amazon Bedrock의 Claude 모델을 기본으로 사용하는 에이전트가 생성됩니다.
* BedrockModel을 명시적으로 선언하면 모델 ID와 리전을 원하는 대로 지정할 수 있습니다. 모델을 지정하지 않고 Agent()만 호출하면 기본값으로 us-west-2` 리전의 Claude Sonnet 4 모델이 사용됩니다. (참조)
에이전트 루프(Agent Loop)
Strands 에이전트의 동작 방식을 이해하는 것이 중요합니다. 에이전트는 단순히 LLM에 한 번 질문하고 답을 받는 것이 아닙니다. Agent Loop을 사용하면 다음과 같은 반복적인 추론-실행 루프를 수행합니다.
사용자 요청을 LLM에 전달
LLM이 응답 생성 – 이때 도구 호출이 필요하다고 판단하면 도구를 선택
선택된 도구 실행 및 결과 수집
도구 실행 결과를 다시 LLM에 전달
LLM이 추가 도구 호출이 필요한지 판단 –