Strands Agents SDK를 활용하여 AI 에이전트가 스스로 판단하고 도구를 선택하여 영상을 분석하는 에이전틱 비디오 엔진(Agentic Video Engine) 구축
Amazon Bedrock, TwelveLabs AI 모델, Amazon S3 Vectors, DynamoDB, Transcribe 등 다양한 AWS 서비스를 통합하여 비디오 분석 파이프라인(Video Analysis Pipeline) 구현
Strands Agents SDK의 핵심 개념인 에이전트(Agent) = 모델 + 도구 + 프롬프트 구조를 통해 유연하고 확장 가능한 아키텍처 설계
Agents as Tool 패턴을 활용, 각 전문 에이전트(Video Analysis, Search, Transcript)를 구축하여 모듈성(Modularity) 및 유지보수성(Maintainability) 향상
Strands Agents SDK는 AWS가 오픈소스로 공개한 AI 에이전트 개발 프레임워크로, 개발자가 AI 에이전트를 빠르게 구축, 관리, 배포할 수 있도록 설계되었다. 핵심은 에이전트 = 모델 + 도구 + 프롬프트 구조이다.
모델(Model): Amazon Bedrock의 Claude, Nova 등 다양한 LLM을 지원하며 에이전트의 '두뇌' 역할을 수행한다.
도구(Tool): API 호출, 데이터 처리, 외부 서비스 연동 등 Python 함수를 도구로 만들어 에이전트가 실제 작업을 수행하도록 한다.
시스템 프롬프트(System Prompt): 에이전트의 역할과 행동 규칙을 정의하며, 에이전트의 동작을 제어한다. Strands는 에이전트 루프의 각 단계에 콜백 함수를 등록할 수 있는 Hook 시스템(Hook System)을 제공하여 프로덕션 요구사항을 에이전트 코드 수정 없이 구현할 수 있다.
Strands 에이전트는 LLM에 한 번 질문하고 답을 받는 것이 아니라, 반복적인 추론-실행 루프를 수행한다. 이 루프는 다음과 같은 단계를 거친다.
사용자 요청을 LLM에 전달
LLM이 응답 생성 – 이때 도구 호출이 필요하다고 판단하면 도구를 선택
선택된 도구 실행 및 결과 수집
도구 실행 결과를 다시 LLM에 전달
LLM이 추가 도구 호출이 필요한지 판단 – 필요하면 2번으로 돌아감
최종 응답을 사용자에게 반환
이러한 반복적인 추론-실행 루프(Reasoning-Execution Loop) 덕분에 에이전트는 복잡한 작업도 여러 단계에 걸쳐 자율적으로 처리할 수 있다.
본 글에서는 TwelveLabs의 비디오 AI 모델과 다양한 AWS 서비스를 통합하여 에이전틱 비디오 엔진을 구축하는 예시를 제시한다. 사용된 주요 서비스는 다음과 같다.
Amazon Bedrock: Claude Sonnet, Claude Haiku 등 LLM을 활용하여 에이전트의 추론 엔진 역할 수행
TwelveLabs Marengo 3.0: 비디오 임베딩 모델로, 영상을 벡터로 변환하여 의미 기반 검색 지원
TwelveLabs Pegasus 1.2: 비디오 이해 모델로, 영상 내용을 분석하고 텍스트로 요약
Amazon S3 Vectors: 임베딩된 영상 클립의 벡터를 저장하고 유사도 검색 수행
Amazon DynamoDB: 영상 처리 작업의 메타데이터 및 상태 관리
Amazon Transcribe: 영상의 음성을 텍스트로 변환 (STT)
이처럼 다양한 AI 모델과 AWS 서비스의 조합(Combination)을 통해 고도화된 비디오 분석 기능을 구현한다.
단일 에이전트 방식은 간단하지만, 다루는 도메인이 늘어날수록 시스템 프롬프트가 복잡해지고 도구 간 역할 경계가 모호해질 수 있다. Agents as Tool 패턴은 각자 고유한 전문성을 지닌 전문가들을 관리자가 조정하는 인간 팀의 역학을 모방한다.
전문 에이전트 생성: 각 도메인별로 전문 에이전트(Video Analysis, Search, Transcript)를 생성하여 관심사를 명확히 분리
에이전트를 도구로 래핑: 각 전문 에이전트를 @tool 데코레이터로 감싸서 오케스트레이터가 사용할 수 있는 도구로 변환
오케스트레이터 생성: 세 개의 에이전트 도구를 사용하는 최상위 오케스트레이터를 생성하고, 에이전트별 사용 가이드라인을 제공
이러한 멀티 에이전트 아키텍처(Multi-Agent Architecture)를 통해 모듈성과 유지보수성을 향상시킨다.
본문에서는 TwelveLabs Marengo 3.0 모델을 사용하여 비디오 임베딩을 생성하는 과정을 설명하며, 비동기 호출 방식을 사용한다. 비디오 임베딩 생성은 영상 길이에 따라 수 분이 소요될 수 있으므로, start_async_invoke API를 통해 비동기적으로 호출한다.
DynamoDB 작업 기록: 작업 ID, S3 URI, 상태 등을 DynamoDB에 기록하여 작업 상태 관리
Bedrock 비동기 호출: Marengo 모델을 호출하여 비디오 임베딩 생성
S3 Vectors 저장: 생성된 임베딩 벡터를 S3 Vectors에 저장
이러한 비동기 처리(Asynchronous Processing)를 통해 사용자 경험을 개선하고 시스템의 효율성을 높인다.