AgentCore로 AI Agent 운영, 보안, 품질, 가시성 모두 잡았다!
Amazon Bedrock AgentCore는 Policy, Evaluation, Observability를 통해 기업 환경에서 AI Agent의 보안, 품질, 가시성을 확보하도록 지원함
Policy Engine은 Cedar 정책 언어를 사용하여 Tool 호출 권한을 결정적으로 제어하며, Lambda Interceptor는 JWT 디코딩 및 외부 시스템 연동을 통해 유연한 접근 제어 제공
Evaluation은 Agent 응답 품질을 평가하고, 온라인 연속 평가를 통해 Agent 품질의 변화를 감지하여 지속적인 품질 관리를 가능하게 함
Observability는 OpenTelemetry 기반으로 Agent 워크플로우를 추적하고, CloudWatch GenAI Observability 대시보드를 통해 실시간 모니터링을 제공함
세 가지 서비스의 결합을 통해 AI Agent 플랫폼의 End-to-End 운영 체계를 구축하고, 지속적인 품질 개선을 위한 피드백 루프를 형성함
Policy Engine: Cedar 정책 언어와 접근 제어
AgentCore Policy Engine은 Cedar(Cedar) 정책 언어를 사용하여 Tool 호출에 대한 결정적 접근 제어(Deterministic Access Control)를 수행한다. Cedar는 누가(Principal), 무엇을(Action), 어디에(Resource), 어떤 조건(Condition)에서 접근을 허용할지 선언적으로 정의하며, 기본적으로 모든 요청을 거부하는 Default Deny 방식을 사용한다.
JWT 토큰 클레임(JWT Claims) 기반 접근 제어: JWT 토큰의 정보를 기반으로 사용자, 부서, 역할 등 다양한 속성을 활용하여 세밀한 권한 설정을 지원
자연어 정책 작성: Cedar 문법에 익숙하지 않은 경우, 자연어로 정책을 작성하면 AgentCore가 이를 Cedar로 변환하고 검증
LOG_ONLY 및 ENFORCE 모드: 정책 적용 전 LOG_ONLY 모드로 테스트하여 영향 분석 후 ENFORCE 모드로 전환하여 안정적인 운영(Stable Operation)을 보장
Lambda Interceptor: 유연한 접근 제어 및 요청 변환
Policy Engine이 JWT 클레임에 포함된 정보만으로 접근 제어가 어려운 경우, Lambda Interceptor(Lambda Interceptor)를 활용하여 유연성을 확보한다. Interceptor는 AgentCore Gateway가 Tool 요청을 Target으로 전달하기 전에 실행되는 Lambda 함수로, JWT 디코딩, 외부 시스템 조회 등을 통해 추가 정보를 확보하고 요청에 주입한다.
Header Propagation vs. Interceptor Lambda: Header Propagation은 지정된 헤더를 Target으로 직접 전달하지만, Interceptor Lambda는 헤더를 가공하거나 Body Injection을 통해 모든 타겟 유형에서 일관된 처리를 지원
Body Injection: Interceptor Lambda는 Body Injection을 통해 모든 타겟 유형(API Gateway, Lambda, Runtime)에서 일관되게 데이터를 전달하여 유연한 데이터 처리(Flexible Data Handling)를 가능하게 함
Interceptor의 역할: Interceptor는 Policy Engine의 한계를 보완하며, 외부 시스템 연동, 사용자 정보 주입, 요청 변환 등 다양한 커스터마이징(Customization)을 지원
Evaluation: Agent 응답 품질 평가 및 지속적인 개선
AgentCore Evaluation은 Agent의 세션, 트레이스, Tool 호출을 대상으로 자동화된 품질 평가를 수행하며, 빌트인 평가자(Built-in Evaluators), 커스텀 평가자, 온라인 연속 평가를 지원한다. Observability가 수집한 트레이스 데이터를 기반으로 동작하며, Agent의 응답 품질을 다각도로 평가한다.
13개 빌트인 평가자: Helpfulness, Correctness, Faithfulness 등 다양한 지표를 통해 Agent 응답의 품질을 평가하며, 세션(Session), 트레이스(Trace), Tool 호출(Tool Call) 레벨로 구분
LLM-as-a-Judge: 빌트인 평가자로 충분하지 않은 경우, LLM을 활용한 커스텀 평가자를 생성하여 기업 고유의 품질 기준을 적용
온라인 연속 평가: 프로덕션 환경에서 모든 Agent 세션을 자동으로 샘플링하여 지속적으로 평가하며, Agent 품질 드리프트(Drift)를 조기에 감지하여 대응
Observability: 분산 추적 및 실시간 모니터링
AgentCore Observability는 OpenTelemetry 표준 기반의 분산 추적, 메트릭 수집, 로그 관리를 제공하여 AI Agent의 동작을 실시간으로 추적하고 모니터링한다. AgentCore Runtime에 호스팅된 Agent뿐 아니라, 자체 인프라에서 실행되는 Agent도 동일한 방식으로 모니터링할 수 있다.
OpenTelemetry 표준: 분산 추적(Distributed Tracing), 메트릭 수집, 로그 관리를 통해 Agent의 각 단계(LLM 호출, Tool 선택, Tool 실행)를 시각화
CloudWatch GenAI Observability 대시보드: 세션 수, 레이턴시, 토큰 사용량, 에러율 등 핵심 메트릭을 실시간으로 제공하며, 세션(Session) 단위 추적 지원
자동 계측: aws-opentelemetry-distro를 의존성에 추가하고, ENTRYPOINT를 opentelemetry-instrument로 감싸는 것만으로 HTTP 요청, LLM 호출, Tool 실행, 데이터베이스 접근 등을 자동 계측
세 서비스의 결합: 기업 운영 체계 구축
Policy, Evaluation, Observability는 결합하여 시너지를 극대화하며, AI Agent 플랫폼의 End-to-End 운영 체계를 완성한다. 각 서비스는 상호 보완적인 역할을 수행하며, 지속적인 품질 개선을 위한 피드백 루프를 형성한다.
Policy와 Evaluation의 상호 작용: Policy는 사전 제어, Evaluation은 사후 평가를 담당하며, Evaluation 결과는 Policy 정책 개선의 근거로 활용
Lambda Interceptor와 Policy Engine의 협력: Policy Engine은 선언적 정책 관리, Interceptor는 코드 기반 유연성을 제공하여 다양한 접근 제어 요구사항(Diverse Access Control Requirements) 충족
온라인 연속 평가의 중요성: LLM 기반 Agent의 품질 변화를 조기에 감지하고 대응하여, Agent 품질 드리프트(Drift)를 방지하고 지속적인 품질 관리