개요
오프더셸 AI 어시스턴트는 개별 질문에 정확하게 답변하지만, 대화 간 연속성을 유지하지 못합니다. 사용자가 이전에 언급한 정원 상태, 비료 종류, 날씨 조건 등을 기억하지 못해 매번 맥락을 다시 설명해야 하는 부담이 사용자에게 전가됩니다. 본 보고서는 Amazon Bedrock AgentCore의 AgentCore 런타임과 AgentCore 메모리, 그리고 오픈소스 에이전트 프레임워크인 OpenClaw를 조합하여 이러한 문제를 해결하는 컨텍스트 인식 AI 어시스턴트 아키텍처를 상세히 살펴봅니다.
아키텍처 개요
제시된 예시인 Sprout은 정원 관리 보조로, 사용자의 과거 발언을 메모리에 저장하고 구조화된 메타데이터로 태그하여 관련 정보를 신속히 검색합니다. 이 아키텍처는 도메인에 구애받지 않으며, 페르소나와 스킬 매니페스트만 교체하면 지원 봇, 피트니스 코치, 내부 헬프데스크 등으로 재사용할 수 있습니다. 전체 시스템은 단일 AWS CloudFormation 템플릿에 정의되어 있으며, 한 줄 명령으로 배포 가능합니다.
AgentCore 런타임과 과금 모델
AgentCore 런타임은 컨테이너 기반으로 실행되며, 소비 기반 과금 모델을 적용합니다. 즉, 에이전트가 실제로 계산을 수행하는 시간에만 비용이 청구되고, 유휴 시간이나 I/O 대기 시간에는 과금되지 않습니다. 문서에 명시된 바에 따르면, 경량 개인 사용 시 월 약 1~2달러 수준의 baseline 비용이 발생하며, 항상 켜져 있는 Amazon EC2 인스턴스와 비교 시 월 약 35달러의 비용 차이가 있습니다. 이 수치는 2026년 7월 기준 추정치이며, 현재 요금은 AgentCore pricing 페이지에서 확인할 수 있습니다. 런타임은 최소한의 컨테이너 계약을 강제합니다: 포트 8080에서 수신 대기하고, 건강 상태 확인을 위한 GET /ping 엔드포인트와 실제 호출을 위한 POST /invocations 엔드포인트를 노출해야 합니다.
비용 비교 표
| 구성 항목 | 월 예상 비용 (경량 개인 사용) |
|---|---|
| AgentCore 런타임 (소비 기반) | 1~2 USD |
| 항상 온 EC2 인스턴스 (t3.medium) | 약 35 USD |
OpenClaw 에이전트 서브스트레이트
OpenClaw는 에이전트 루프, 툴 사용, 스킬 시스템을 제공하는 오픈소스 프레임워크입니다. AgentCore 런타임 내에서 실행되는 thin wrapper인 server.py가 OpenClaw 게이트웨이를 서브프로세스로 실행하고, AgentCore HTTP 프로토콜에 맞게 адапт합니다. 컨테이너 시작 시 server.py는 openclaw gateway 를 실행하고 헬스 체크를 수행합니다. GET /ping 은 빠르게 healthy 를 반환하여 AgentCore 레디니스 프로브를 통과시킵니다. 실제 작업은 POST /invocations 에서 이루어집니다: 페이로드를 파싱하고, AgentCore 메모리에서 관련 컨텍스트를 검색하여 조합한 뒤, 이를 OpenClaw 게이트웨이에 전달하고 결과를 지속 저장합니다. 게이트웨이가 예기치 않게 종료된 경우에도 server.py 는 ensure_openclaw_ready() 헬퍼를 통해 서브프로세스의 상태를 재확인하고 필요 시 재시작함으로써 호출 경로를 안정적으로 유지합니다. 이 래퍼 패턴은 어떤 로컬 프로세스 기반 에이전트 프레임워크라도 AgentCore 런타임에 그대로 적용할 수 있게 하며, 프레임워크 자체를 수정할 필요가 없습니다.
모델 라우팅 및 멀티모달 처리
텍스트 기반 대화와 이미지 이해 작업은 서로 다른 비용 및 품질 트레이드오프를 가지므로, Assistant 는 두 가지 Claude 모델을 작업 유형에 따라 라우팅합니다.
- 텍스트 턴: Claude Haiku 4.5 (빠르고 저렴, 높은 볼륨의 일상 대화에 적합)
- 이미지 턴: Claude Sonnet 4.5 (강한 멀티모달 추론, 사진으로부터 식물 진단 등 어려운 작업에 사용)
이미지 처리 경로는 OpenClaw 게이트웨이를 우회합니다. 컨테이너 내 OpenClaw 빌드에서 이미지 URL 콘텐츠 파트가 제거되어 Bedrock에 전달되지 않기 때문에, server.py 에서는 이미지 바이트를 멀티모달 콘텐츠 블록으로 직접 Amazon Bedrock Converse API 에 전달합니다. 두 경로는 동일한 시스템 프롬프트(페르소나 + 메모리)를 공유하여 사용자 경험의 일관성을 유지합니다. 모델 ID는 환경 변수(MODEL_ID, VISION_MODEL_ID)로 설정되어 있어, 이미지를 rebuild 하지 않고도 배포 시 모델을 교체할 수 있습니다.
스킬 기반 재사용 가능성
에이전트의 기능은 스킬이라는 재사용 가능한 단위로 선언됩니다. 스킬 정의는 community-skills.json 매니페스트에 기술되며, 배포 시 스크립트가 이를 컨테이너에 matérialize 하고 OpenClaw 설정에 등록합니다. 게시 시점의 Sprout은 날씨, 알림, 식물 메모 세 가지 스킬을 탑재하고 있습니다. 매니페스트만 교체하면 동일한 파이프라인으로 다른 영역의 봇을 신속히 구축할 수 있어, 이 아키텍처는 일회성 봇이 아닌 재사용 가능한 패턴으로 자리매김합니다.
Sprout에 내장된 스킬 목록
- 날씨 정보 제공
- 아침 물주기 알림 등 반복 작업 스케줄링
- 식물 성장 메모 및 진단 기록
배포 및 운영 인프라
전체 시스템은 단일 CloudFormation 템플릿에 정의되어 있으며, 별도의 빌드 툴 없이 Launch Stack 버튼이나 scripts/deploy.sh 를 통해 한 명령으로 배포 가능합니다. 배포를 위해서는 다음 조건이 충족되어야 합니다.
- Amazon Bedrock AgentCore 접근 권한 (런타임 및 메모리 포함)
- 사용하려는 모델에 대한 액세스 권한: Claude Haiku 4.5 (텍스트) 및 Claude Sonnet 4.5 (시각) 혹은 해당 계정에서 사용 가능한 동등 모델
- linux/arm64 빌드를 지원하는 Docker 및 AWS CLI (자신만의 이미지를 빌드하고 푸시할 경우에만 필요)
- Telegram 봇 토큰 (BotFather로부터 발급)
- 에이전트 오케스트레이션 개념과 CloudFormation에 대한 기본 이해
배포 후 구성 요소는 다음과 같이 작동합니다.
- Amazon S3: 작업 공간 스토리지 제공
- AWS KMS: 데이터 암호화 키 관리
- AWS Secrets Manager: 봇 토큰 등 시크릿 보관
- Amazon CloudWatch: 로그 및 메트릭 수집
- Amazon API Gateway 및 Lambda: Telegram 웹훅 수신
- Amazon EventBridge Scheduler 및 Lambda: 아침 물주기 알림과 같은 예약 작업 트리거
요청 흐름도
- Amazon API Gateway
- Lambda 함수
- InvokeAgentRuntime API
- server.py
- OpenClaw 게이트웨이
- AgentCore 메모리
- Bedrock Converse API
- 응답 반환
위 흐름도는 Telegram 메시지가 들어오는 경로와, EventBridge에서 발생하는 예약 작업이 동일한 AgentCore 런타임을 호출하는 과정을 보여줍니다. 두 진입점은 모두 InvokeAgentRuntime 을 통해 동일한 에이전트 인스턴스에 도달하며, server.py 가 메모리 검색, 컨텍스트 조합, 모델 호출 및 결과 저장을 조율합니다.
보안 및 관측성
모든 데이터 전송은 TLS 로 보호되며, 정적 데이터는 S3에 저장될 때 AWS KMS 로 암호화됩니다. 시크릿은 Secrets Manager 에서 관리되어 누출 위험을 최소화합니다. AgentCore 런타임은 자동으로 로그와 메트릭을 CloudWatch 로 전송하여 운영팀이 성능 및 오류를 실시간으로 모니터링할 수 있게 합니다.
설계 지침 및 활용 시나리오
글에서는 이 스택을 기반으로 어시스턴트를 구축하고자 하는 개발자를 위해 다음과 같은 설계 지침을 제시합니다. 1. 상태가 필요한 모든 상호작용은 AgentCore 메모리를 통해 저장하고, 검색 시 구조화된 메타데이터를 활용하여 관련성 높은 기록만 가져옵니다. 2. 텍스트와 이미지 작업은 서로 다른 모델에 라우팅하여 비용 효율성을 높이며, 이미지 경로는 게이트웨이를 우회하여 원본 픽셀을 모델에 전달합니다. 3. 스킬은 독립적으로 개발하고 커뮤니티 매니페스트에 추가함으로써 플러그인처럼 활용할 수 있습니다. 4. 배포 인프라는 코드형 인프라(IaC)로 관리하여 재현 가능성을 높이고, 환경 변수로 모델 교체 및 구성 변경을 용이하게 합니다.
이러한 지침을 따라 지원 봇은 티켓 내역을 메모리에 저장하여 반복 문의 시 맥락을 빠르게 제공하고, 피트니스 코치는 사용자의 운동 기록과 목표를 연동하여 맞춤형 피드백을 생성할 수 있습니다.
결론
AgentCore 런타임의 소비 기반 과금 모델과 OpenClaw의 유연한 에이전트 프레임워크를 결합함으로써, 개발자는 상대적으로 낮은 운영 비용으로 상태를 유지하는 컨텍스트 인식 AI 어시스턴트를 신속히 구축할 수 있습니다. 단일 CloudFormation 템플릿으로 배포 가능하고, 텍스트·이미지 작업에 최적화된 모델 라우팅, 구조화된 메타데이터를 활용한 메모리 관리, 플러그인 형태의 스킬 시스템이 조합되어 다양한 도메인에 재사용 가능한 아키텍처를 제공합니다. 이는 상태 없는 전통적인 챗봇의 한계를 극복하고, 사용자 중심의 지속 가능한 대화 경험을 실현하는 구체적인 구현 사례로 평가할 수 있습니다.