Amazon SageMaker 기반 생성형 AI 에이전트

Generative AI-powered Agents for Automated Workflows

모든 규모의 기업이 직면하는 과제는 운영 효율성을 유지해야 한다는 끊임없는 압박입니다. 이러한 과제는 계속 증가하는 데이터 볼륨, 복잡한 시스템, 그리고 관리해야 할 수많은 고객 상호 작용으로 인해 더욱 증폭됩니다. 기존의 수동 프로세스와 정보 소스의 분산된 특성은 심각한 병목 현상을 초래할 수 있습니다. 이러한 장애물은 의사 결정을 늦추고 팀이 진정으로 중요한 고부가가치 업무에 시간과 에너지를 쏟는 것을 방해합니다. 생성형 AI 에이전트는 혁신적인 솔루션을 제시합니다. 이러한 에이전트는 회사의 기존 시스템과 자동으로 인터페이스하고, 광범위한 작업을 실행하며, 즉각적인 통찰력을 제공할 수 있습니다. 이를 통해 조직은 복잡성을 증가시키지 않고도 운영을 효과적으로 확장할 수 있습니다.

Amazon Bedrock in SageMaker Unified Studio는 이러한 만연한 문제를 직접적으로 해결합니다. AI 기반 솔루션 구축을 위해 설계된 통합 서비스를 제공합니다. 이 플랫폼은 고객 데이터를 중앙 집중화하고 자연어 상호 작용을 가능하게 하여 직관적이고 사용자 친화적입니다. 주요 이점은 기존 애플리케이션과의 원활한 통합입니다. 또한 다양한 파운데이션 모델(FM), 프롬프트 엔지니어링 기능, 컨텍스트 이해를 위한 지식 베이스, 작업 실행을 위한 에이전트, 워크플로우 오케스트레이션을 위한 흐름, 성능 모니터링을 위한 평가 도구, 책임감 있는 AI 개발을 위한 가드레일 등 필수적인 Amazon Bedrock 기능을 통합합니다. 사용자는 조직의 SSO(Single Sign-On) 시스템을 통해 이 포괄적인 AI 기능 제품군에 편리하게 액세스할 수 있습니다. 이를 통해 팀원 간의 협업을 촉진하고 AWS Management Console에 직접 액세스하지 않고도 AI 애플리케이션을 개선할 수 있습니다.

Amazon Bedrock in SageMaker Unified Studio를 사용하면 정교한 생성형 AI 에이전트를 만들고 배포할 수 있습니다. 이러한 에이전트는 조직의 애플리케이션, 데이터베이스, 심지어 타사 시스템과도 원활하게 통합될 수 있습니다. 이러한 수준의 통합은 전체 기술 스택에서 자연어 상호 작용을 가능하게 합니다. 채팅 에이전트는 복잡한 정보 시스템과 사용자 친화적인 커뮤니케이션을 연결하는 중요한 다리 역할을 합니다. Amazon Bedrock 함수 및 Amazon Bedrock Knowledge Bases를 활용하여 에이전트는 다양한 데이터 소스에 연결할 수 있는 기능을 얻습니다. 이러한 소스는 실시간 프로젝트 상태 추적을 위한 JIRA API에서 고객 정보 검색을 위한 CRM(고객 관계 관리) 시스템에 이르기까지 다양합니다. 에이전트는 또한 프로젝트 작업을 업데이트하고, 사용자 기본 설정을 관리하는 등 다양한 작업을 수행할 수 있습니다.

이 포괄적인 기능은 조직 내 다양한 팀에 상당한 이점을 제공합니다. 영업 및 마케팅 팀은 고객 정보와 선호하는 회의 시간에 빠르게 액세스할 수 있습니다. 프로젝트 관리자는 JIRA 작업 및 타임라인을 효율적으로 관리하여 프로젝트 워크플로우를 최적화할 수 있습니다. AI 에이전트가 지원하는 이 간소화된 프로세스는 전체 조직에서 생산성을 향상시키고 고객 상호 작용을 개선합니다.

Solution Overview

Amazon Bedrock은 SageMaker Unified Studio 내에서 생성형 AI 애플리케이션을 구축하고 공유할 수 있는 관리되고 협업적인 환경을 제공합니다. 고객 관리 에이전트 구현을 보여주는 실용적인 예제 솔루션을 살펴보겠습니다.

  • Agentic Chat: Amazon Bedrock의 채팅 애플리케이션 기능을 사용하여 정교한 에이전트 채팅 애플리케이션을 구축할 수 있습니다. 이 채팅 애플리케이션은 서버리스 컴퓨팅을 위한 AWS Lambda, API 생성 및 관리를 위한 Amazon API Gateway와 같은 다른 AWS 서비스를 사용하여 쉽게 구축할 수 있는 기능과 원활하게 통합될 수 있습니다.
  • Data Management: SageMaker Unified Studio는 Amazon DataZone과 함께 통합 서비스를 통해 포괄적인 데이터 관리 솔루션을 제공합니다. 조직 관리자는 Amazon Bedrock 모델 및 기능에 대한 구성원 액세스를 세밀하게 제어할 수 있습니다. 이를 통해 안전한 ID 관리 및 세분화된 액세스 제어를 보장하여 데이터 보안 및 규정 준수를 유지합니다.

AI 에이전트 배포를 자세히 살펴보기 전에 아키텍처의 주요 단계를 살펴보는 것이 좋습니다.

워크플로우는 다음과 같이 진행됩니다.

  1. User Authentication and Interaction: 사용자는 AWS IAM Identity Center에서 조직의 SSO 자격 증명을 사용하여 SageMaker Unified Studio에 로그인하여 프로세스를 시작합니다. 인증되면 사용자는 자연어를 사용하여 채팅 애플리케이션과 상호 작용하여 질문하거나 요청합니다.
  2. Function Invocation: Amazon Bedrock 채팅 애플리케이션은 미리 정의된 함수를 지능적으로 활용하여 관련 정보를 검색합니다. 이 함수는 JIRA 상태 업데이트 또는 데이터베이스에서 고객 정보를 가져오도록 설계될 수 있습니다. 검색은 API Gateway를 사용하는 보안 엔드포인트를 통해 수행됩니다.
  3. Secure Access and Lambda Trigger: 채팅 애플리케이션은 API Gateway를 사용하여 자신을 인증하여 지정된 엔드포인트에 안전하게 액세스합니다. 이 인증은 AWS Secrets Manager에 안전하게 저장된 임의로 생성된 API 키를 사용하여 수행됩니다. 사용자의 요청에 따라 적절한 Lambda 함수가 트리거됩니다.
  4. Action Execution: 이제 활성화된 Lambda 함수는 사용자가 요청한 특정 작업을 수행합니다. 여기에는 에이전트가 제공한 필요한 매개변수를 사용하여 JIRA API를 호출하거나 데이터베이스를 쿼리하는 것이 포함됩니다. 에이전트는 다음을 포함한 다양한 작업을 처리하도록 설계되었습니다.
    1. 특정 고객에 대한 간략한 개요 제공.
    2. 특정 고객과의 최근 상호 작용 나열.
    3. 지정된 고객의 회의 기본 설정 검색.
    4. 특정 프로젝트와 관련된 열린 JIRA 티켓 목록 검색.
    5. 특정 JIRA 티켓의 마감일 업데이트.

Prerequisites

이 솔루션 구현을 따라하고 자체 고객 관리 에이전트를 구축하려면 다음과 같은 사전 요구 사항이 필요합니다.

  • AWS Account: 필요한 서비스에 액세스하려면 활성 AWS 계정이 필수적입니다.
  • SageMaker Unified Studio Access: SageMaker Unified Studio 내에서 Amazon Bedrock에 대한 사용자 액세스가 필요합니다.
  • Model Access: Amazon Bedrock에서 Amazon Nova Pro에 대한 모델 액세스가 필요합니다. 이 모델이 지원되는 AWS 리전에서 사용 가능한지 확인합니다.
  • JIRA Setup: JIRA 애플리케이션, 해당 JIRA URL 및 계정과 연결된 JIRA API 토큰은 JIRA와 통합하는 데 필요합니다.

API Gateway, Lambda 함수 및 IAM Identity Center를 포함하여 AWS의 기본 서버리스 개념에 대한 기본적인 이해가 있다고 가정합니다. 이 게시물에서는 이러한 서비스에 대한 심층적인 정의를 제공하지 않지만 SageMaker Unified Studio 내에서 사용 가능한 새로운 Amazon Bedrock 기능의 컨텍스트에서 사용 사례를 보여줍니다.

Deploying the Solution

고객 관리 에이전트 솔루션을 배포하려면 다음 단계를 따르세요.

  1. Download Code: 제공된 GitHub 리포지토리에서 필요한 코드를 다운로드하여 시작합니다.
  2. Retrieve JIRA Credentials: Lambda 함수에 대한 JIRA_API_KEY_ARN, JIRA_URLJIRA_USER_NAME 값을 가져옵니다. 이러한 자격 증명은 JIRA 인스턴스를 인증하는 데 사용됩니다.
  3. Launch CloudFormation Stack: 제공된 AWS CloudFormation 템플릿을 활용합니다. 선호하는 AWS 리전에서 스택을 시작하는 방법에 대한 자세한 지침은 “CloudFormation 콘솔에서 스택 생성”에 대한 설명서를 참조하십시오.
  4. API Gateway URL: CloudFormation 스택이 성공적으로 배포된 후 Outputs 탭으로 이동합니다. ApiInvokeURL 값을 찾아 기록해 둡니다. 이 URL은 API Gateway의 엔드포인트를 나타냅니다.
  5. Secrets Manager Configuration: Secrets Manager 콘솔에 액세스합니다. JIRA_API_KEY_ARN, JIRA_URLJIRA_USER_NAME에 해당하는 비밀을 찾습니다.
  6. Update Secret Values: 각 비밀에 대해 Retrieve secret 옵션을 선택합니다. 2단계에서 얻은 해당 변수를 비밀 일반 텍스트 문자열에 복사합니다. 이렇게 하면 JIRA 자격 증명이 안전하게 저장됩니다.
  7. Sign in to SageMaker Unified Studio: 조직의 SSO 자격 증명을 사용하여 SageMaker Unified Studio에 로그인합니다.

Creating a New Project

인프라가 준비되었으므로 SageMaker Unified Studio 내에 새 프로젝트를 만들어 보겠습니다.

  1. Project Creation: SageMaker Unified Studio 랜딩 페이지에서 새 프로젝트 생성을 시작합니다.
  2. Project Naming: 프로젝트에 설명적인 이름(예: crm-agent)을 할당합니다.
  3. Profile Selection: Generative AI application development profile을 선택하고 계속 진행합니다.
  4. Default Settings: 기본 설정을 수락하고 계속 진행합니다.
  5. Confirmation: 프로젝트 구성을 검토하고 Create project를 선택하여 확인합니다.

Building the Chat Agent Application

이제 솔루션의 핵심인 채팅 에이전트 애플리케이션을 구성해 보겠습니다.

  1. Chat Agent Initiation: crm-agent 프로젝트 랜딩 페이지에서 오른쪽에 있는 New 섹션을 찾습니다. Chat agent를 선택하여 애플리케이션 구축을 시작합니다.
    그러면 에이전트 애플리케이션에 대한 구성 목록이 표시됩니다.

  2. Model Selection: 모델 섹션에서 Amazon Bedrock에서 지원하는 원하는 파운데이션 모델(FM)을 선택합니다. 이 crm-agent의 경우 Amazon Nova Pro를 선택합니다.

  3. System Prompt Definition: 시스템 프롬프트 섹션에 다음 프롬프트를 제공합니다. 이 프롬프트는 에이전트의 동작과 응답을 안내합니다. 선택적으로 사용자 입력 및 모델 응답 예시를 포함하여 성능을 더욱 개선할 수 있습니다.

    You are a customer relationship management agent tasked with helping a sales person plan their work with customers. You are provided with an API endpoint. This endpoint can provide information like company overview, company interaction history (meeting times and notes), company meeting preferences (meeting type, day of week, and time of day). You can also query Jira tasks and update their timeline. After receiving a response, clean it up into a readable format. If the output is a numbered list, format it as such with newline characters and numbers.

  4. Function Creation: Functions 섹션에서 Create a new function을 선택합니다. 이 함수는 에이전트가 수행할 수 있는 작업을 정의합니다.

  5. Function Naming: 함수에 crm_agent_calling과 같이 설명적인 이름을 지정합니다.

  6. Function Schema: Function schema의 경우 GitHub 리포지토리에 제공된 OpenAPI 정의를 사용합니다. 이 스키마는 함수에 대한 입력 및 출력 매개변수를 정의합니다.

  7. Authentication Configuration: Authentication method에서 **API Keys (Max. 2 Keys)**를 선택하고 다음 세부 정보를 입력합니다.

    1. Key sent in에서 Header를 선택합니다.
    2. Key namex-api-key를 입력합니다.
    3. Key value에 Secrets Manager API 키를 입력합니다.
  8. API Server Endpoint: API servers 섹션에 CloudFormation Outputs에서 얻은 엔드포인트 URL(ApiInvokeURL)을 입력합니다.

  9. Function Finalization: Create를 선택하여 함수 생성을 완료합니다.

  10. Application Saving: 채팅 에이전트 애플리케이션의 Functions 섹션에서 방금 생성한 함수를 선택하고 Save를 선택하여 애플리케이션 생성을 완료합니다.

Example Interactions

이 채팅 에이전트를 사용하는 방법에 대한 몇 가지 실용적인 예를 살펴보겠습니다.

Use Case 1: CRM Analyst Retrieving Customer Details

CRM 분석가는 자연어를 사용하여 데이터베이스에 저장된 고객 세부 정보를 검색할 수 있습니다. 다음은 그들이 물을 수 있는 몇 가지 예시 질문입니다.

  • “Give me a brief overview of customer C-jkl101112.”
  • “List the last 2 recent interactions for customer C-def456.”
  • “What communication method does customer C-mno131415 prefer?”
  • “Recommend optimal time and contact channel to reach out to C-ghi789 based on their preferences and our last interaction.”

에이전트는 이러한 요청을 받으면 지능적으로 데이터베이스를 쿼리하고 해당 답변을 명확하고 간결한 형식으로 제공합니다.

Use Case 2: Project Manager Managing JIRA Tickets

프로젝트 관리자는 에이전트를 사용하여 JIRA 티켓을 나열하고 업데이트할 수 있습니다. 다음은 몇 가지 예시 상호 작용입니다.

  • “What are the open JIRA Tasks for project id CRM?”
  • “Please update JIRA Task CRM-3 to 1 weeks out.”

에이전트는 JIRA 보드에 액세스하고 관련 프로젝트 정보를 가져와 열린 JIRA 작업 목록을 제공합니다. 또한 사용자가 요청한 대로 특정 작업의 타임라인을 업데이트합니다.

Clean Up

불필요한 비용이 발생하는 것을 방지하려면 다음 정리 단계를 수행합니다.

  1. Delete CloudFormation Stack: 이전에 배포한 CloudFormation 스택을 삭제합니다.
  2. Delete Function Component: Amazon Bedrock에서 생성한 함수 구성 요소를 제거합니다.
  3. Delete Chat Agent Application: Amazon Bedrock 내에서 채팅 에이전트 애플리케이션을 삭제합니다.
  4. Delete Domains: SageMaker Unified Studio에서 도메인을 삭제합니다.

Cost

SageMaker Unified Studio 내에서 Amazon Bedrock을 사용하는 데는 별도의 요금이 부과되지 않습니다. 그러나 서비스 내에서 사용된 개별 AWS 서비스 및 리소스에 대한 요금이 청구됩니다. Amazon Bedrock은 종량제 모델로 운영되므로 사용한 리소스에 대해서만 비용을 지불하며 최소 요금이나 사전 약정은 없습니다.

가격 계산에 대한 추가 지원이 필요하거나 특정 사용 사례에 대한 비용 최적화에 대한 질문이 있는 경우 AWS Support에 문의하거나 계정 관리자와 상담하는 것이 좋습니다. 그들은 귀하의 필요에 따라 맞춤형 지침을 제공할 수 있습니다.