Articleaws.amazon.com·2026년 7월 7일·0

Build a serverless image editing agent with Amazon Bedrock AgentCore harness

Quick Summary

이 글은 자연어 지시로 이미지를 편집하는 서버리스 에이전트를 Amazon Bedrock AgentCore harness, AgentCore Memory, AgentCore Gateway, Lambda 도구, React 프런트엔드로 구성하고 배포하는 방식을 설명한다.

Build a serverless image editing agent with Amazon Bedrock AgentCore harness 관련 대표 이미지

🖼️ 인포그래픽

Build a serverless image editing agent with Amazon Bedrock AgentCore harness 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Build a serverless image editing agent with Amazon Bedrock AgentCore harness 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 글은 자연어 지시로 이미지를 편집하는 서버리스 에이전트를 Amazon Bedrock AgentCore harness, AgentCore Memory, AgentCore Gateway, Lambda 도구, React 프런트엔드로 구성하고 배포하는 방식을 설명한다.

📌 핵심 요약

  • 글은 자연어 기반 이미지 편집 에이전트를 만들 때 필요한 오케스트레이션 루프, 도구 라우팅, 메모리 관리, 실행 환경을 AgentCore harness 설정으로 처리할 수 있다고 설명한다.
  • 예제 애플리케이션은 사용자가 사진을 업로드하고 평문으로 편집 요청을 입력하면, Claude Sonnet 4.6 기반 에이전트가 작업 단계를 나누고 Stability AI 모델을 호출하는 세 가지 Lambda 도구를 선택해 결과를 생성한다.
  • 아키텍처는 AWS Amplify의 React 프런트엔드, 보안 경계 역할의 Lambda 프록시, AgentCore Memory가 붙은 harness 에이전트, Amazon Bedrock을 통해 이미지 모델을 호출하는 Lambda 도구들로 구성된다.
  • harness는 create_harness API에 모델, 시스템 프롬프트, Gateway 도구, 허용 도구 목록, 반복 제한, 타임아웃, 메모리 ARN 등을 전달하는 방식으로 에이전트를 만들며 별도 Python 오케스트레이션 코드는 필요하지 않다.
  • 글은 호출마다 모델과 페르소나를 바꾸는 방식, AgentCore Memory를 통한 대화 문맥 유지, InvokeAgentRuntimeCommand로 microVM에서 워터마크 같은 후처리를 실행하는 방식, CDK와 deploy.sh를 통한 배포 절차를 함께 다룬다.

🧩 주요 포인트

  1. 글은 자연어 기반 이미지 편집 에이전트를 만들 때 필요한 오케스트레이션 루프, 도구 라우팅, 메모리 관리, 실행 환경을 AgentCore harness 설정으로 처리할 수 있다고 설명한다.
  2. 예제 애플리케이션은 사용자가 사진을 업로드하고 평문으로 편집 요청을 입력하면, Claude Sonnet 4.6 기반 에이전트가 작업 단계를 나누고 Stability AI 모델을 호출하는 세 가지 Lambda 도구를 선택해 결과를 생성한다.
  3. 아키텍처는 AWS Amplify의 React 프런트엔드, 보안 경계 역할의 Lambda 프록시, AgentCore Memory가 붙은 harness 에이전트, Amazon Bedrock을 통해 이미지 모델을 호출하는 Lambda 도구들로 구성된다.
  4. harness는 create_harness API에 모델, 시스템 프롬프트, Gateway 도구, 허용 도구 목록, 반복 제한, 타임아웃, 메모리 ARN 등을 전달하는 방식으로 에이전트를 만들며 별도 Python 오케스트레이션 코드는 필요하지 않다.
  5. 글은 호출마다 모델과 페르소나를 바꾸는 방식, AgentCore Memory를 통한 대화 문맥 유지, InvokeAgentRuntimeCommand로 microVM에서 워터마크 같은 후처리를 실행하는 방식, CDK와 deploy.sh를 통한 배포 절차를 함께 다룬다.

🧠 상세 정리

1. 자연어 이미지 편집 에이전트의 문제 설정

글은 자연어로 이미지를 편집하는 AI 에이전트를 만들려면 단순히 모델을 호출하는 것만으로는 부족하다고 출발한다. 사용자의 요청을 여러 단계로 나누는 오케스트레이션 루프, 어떤 도구를 써야 하는지 판단하는 라우팅, 이전 대화와 편집 맥락을 보존하는 메모리, 전체 실행을 담을 컴퓨팅 환경이 필요하다는 점을 강조한다. Amazon Bedrock AgentCore harness는 이 전체 스택을 설정 중심으로 처리하며, 개발자는 에이전트가 무엇을 하는지만 선언하면 된다고 설명한다. 그 결과 에이전트는 상태를 유지하는 격리된 microVM에서 실행되고, 메모리와 도구 라우팅, 관측 기능을 기본적으로 활용한다.

2. 예제 애플리케이션의 전체 흐름

예제는 사용자가 사진을 업로드하고, 편집 내용을 평문으로 입력한 뒤, 몇 초 안에 결과 이미지를 받는 서버리스 이미지 편집기다. 에이전트는 AgentCore harness 위에서 동작하므로 별도의 사용자 정의 오케스트레이션 코드를 작성하지 않는다. 배포 대상에는 인증, 암호화된 저장소, 세 가지 이미지 편집 도구, React 프런트엔드가 포함되며, 인프라는 AWS CDK로 정의된다. 사용자가 자동차 색상을 파란색으로 바꾸거나 이미지를 오른쪽으로 200픽셀 확장하라고 입력하면, Claude Sonnet 4.6 기반 에이전트가 요구를 단계로 분해하고 적절한 Stability AI 모델과 연결된 도구 호출을 조율한다.

3. AgentCore harness가 제공하는 핵심 기능

이 애플리케이션은 설정 기반 에이전트 생성, 호출 단위 모델 전환, 호출 단위 페르소나 오버라이드, AgentCore Memory, AgentCore Gateway with MCP, InvokeAgentRuntimeCommand를 주요 기능으로 보여준다. 에이전트는 API 파라미터만으로 정의되며 Python 오케스트레이션 코드, 프레임워크, 컨테이너 없이 생성된다. 프런트엔드는 기본 채팅은 Claude Haiku 4.5로, 이미지 편집은 Claude Sonnet 4.6으로 보내며, 에이전트는 모델이 바뀌어도 대화 맥락을 유지한다. 사용자는 Real Estate, Retail, Automotive 같은 산업별 페르소나를 선택해 시스템 프롬프트를 바꿀 수 있고, 이를 위해 재배포할 필요가 없다.

4. 네 계층으로 구성된 솔루션 아키텍처

글은 이미지 편집 애플리케이션의 구조를 네 개의 계층으로 설명한다. 첫 번째 계층은 AWS Amplify에 호스팅되는 React 프런트엔드로, 사용자가 이미지를 업로드하고 마스크를 그리며 편집 지시를 입력하는 인터페이스를 제공한다. 두 번째 계층은 브라우저 자격 증명과 harness API 사이의 보안 경계로 동작하는 AWS Lambda 프록시이며, 허용되는 시스템 프롬프트도 이 계층에서 통제한다. 세 번째 계층은 AgentCore Memory를 붙인 Amazon Bedrock AgentCore harness 에이전트이고, 네 번째 계층은 Amazon Bedrock을 통해 Stability AI 기반 이미지 생성 모델을 호출하는 세 개의 도구 Lambda 함수다.

5. 설정만으로 생성되는 에이전트

에이전트 생성은 create_harness API에 harnessName, 실행 역할 ARN, 모델 설정, 시스템 프롬프트, AgentCore Gateway 도구, 허용 도구 목록, 반복 횟수 제한, 타임아웃 등을 전달하는 방식으로 이루어진다. 글의 예시는 inpaint, outpaint, search and replace에 해당하는 세 도구만 allowedTools에 명시해 에이전트가 Gateway의 모든 도구를 무제한으로 쓰지 않도록 범위를 좁힌다. 여기에 AgentCore Memory ARN을 연결하면 대화 지속성을 위한 메모리 구성이 추가된다. 저자는 이 설정이 에이전트 전체이며, 오케스트레이션 루프, 도구 실행 로직, 스트리밍 핸들러, 오류 재시도 코드를 직접 작성하지 않아도 harness가 처리한다고 설명한다.

6. AgentCore Gateway와 MCP 도구 선언

일반적으로 모델이 도구를 호출하게 하려면 도구 호출을 수신하고, 인자를 파싱하고, 대상 함수를 실행하고, 오류를 처리하고, 결과를 다시 모델 대화에 넣는 코드가 필요하다. 이 글의 방식에서는 AgentCore Gateway에 도구 스키마를 선언하고 Lambda 함수에 연결하면 harness가 나머지를 맡는다. 예시로 search-and-replace 도구는 source_image_key, search_prompt, prompt를 입력으로 받으며, 특정 객체를 설명으로 찾아 마스크 없이 교체할 때 쓰도록 설명된다. 에이전트는 이 도구 설명을 읽고 사용자 프롬프트에 맞는 도구를 선택하며, 선택된 도구 호출과 결과 반영은 Gateway와 harness를 통해 자동으로 이루어진다.

7. 호출 단위 모델 전환과 대화 메모리

harness는 매 호출마다 model 파라미터를 받을 수 있어, 그 턴을 처리할 기반 모델을 바꿀 수 있다. Lambda 프록시는 이를 이용해 짧은 인사나 기능 질문 같은 기본 채팅은 지연 시간이 낮은 Haiku로 보내고, 실제 이미지 편집 요청은 더 높은 품질의 도구 선택을 위해 Sonnet으로 보낸다. 동시에 사용자가 선택한 산업별 페르소나 텍스트가 있으면 systemPrompt를 호출마다 바꾸어 전달한다. AgentCore Memory는 모델이 바뀌어도 전체 대화 기록을 불러와 활성 모델에 맞게 제공하므로, 앞서 Sonnet이 자동차를 검은색으로 바꾼 뒤 Haiku가 파란색은 어떤지라는 후속 질문을 받아도 그 대상이 자동차임을 알 수 있다.

8. microVM 후처리와 배포·사용 절차

이미지가 생성된 뒤에는 InvokeAgentRuntimeCommand로 harness microVM에서 Python 스크립트를 실행해 워터마크를 추가한다. 이 과정은 모델 추론을 거치지 않으므로 토큰을 사용하지 않으며, S3에서 결과 이미지를 읽고 PIL로 처리한 뒤 다시 저장하는 식의 결정적 후처리에 적합하다고 설명한다. 글은 이미지 크기 조정, 출력 검증, 구조화 데이터 추출, 비즈니스 로직 적용 같은 작업에도 이 패턴을 사용할 수 있다고 덧붙인다. 배포에는 IAM, Lambda, S3, Cognito, AgentCore 리소스를 만들 권한과 Node.js, Python, AWS CLI, Claude 및 Stability AI 모델 접근 권한이 필요하며, deploy.sh는 의존성 설치, Lambda 번들링, CDK 배포, 프런트엔드 빌드와 Amplify 업로드, 테스트 사용자 생성을 end-to-end로 처리한다.

🧾 핵심 주장 / 시사점

  • 이 글의 핵심은 이미지 편집 품질보다 에이전트 운영 구조에 있다. 도구 선택, 메모리, 모델 전환, 실행 환경을 설정으로 묶어 코드 부담을 줄이는 방식이 중심 논점이다.
  • 모델 전환과 메모리 유지가 결합되면 비용과 지연 시간, 품질 사이의 균형을 호출 단위로 조정할 수 있다. 단순 채팅과 실제 편집을 같은 모델로 처리하지 않아도 문맥을 유지할 수 있다는 점이 실용적이다.
  • InvokeAgentRuntimeCommand를 통한 후처리는 모델이 할 일과 결정적 코드가 할 일을 분리하는 예시다. 워터마크처럼 추론이 필요 없는 작업을 microVM에서 직접 처리하면 토큰 비용을 쓰지 않고 에이전트 결과물에 추가 처리를 적용할 수 있다.

✅ 액션 아이템

  • 하나의 AgentCore harness 설정에 모델·시스템 프롬프트·Gateway 도구·반복 제한·타임아웃·메모리 ARN을 묶어 오케스트레이션·도구 라우팅·문맥 관리를 통합 정의한다.
  • 사용자 업로드 이미지와 평문 편집 요청 흐름에서 Claude Sonnet 4.6이 작업 단계를 분해해 Stability AI 호출 3개 Lambda를 선택하는 단계 체계를 정리한다.
  • React 프런트엔드, Lambda 프록시, AgentCore Memory 하의 harness, Bedrock 연동 도구, microVM 후처리를 CDK와 deploy.sh 배포 경로로 한 번에 구성한다.

❓ 열린 질문

  • Gateway 허용 도구 목록과 오케스트레이션 반복 제한은 어떤 기준으로 두어 과도한 호출과 보안 위험을 동시에 제어할 것인가?
  • 호출마다 모델·페르소나를 전환할 때 품질 저하와 지연 증가를 판단해 적용할 임계 기준은 무엇인가?
  • microVM에서 InvokeAgentRuntimeCommand로 워터마크 후처리를 실행할 때 실패/재시도 허용 범위를 어떤 조건으로 정할 것인가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.