실제 서비스로 가는 생성형 AI 에이전트의 안정성 확보 전략: Amazon Bedrock Agents와 Arize Phoenix 통합 가이드
AI 기술, 특히 생성형 AI는 빠르게 발전하고 있으며, 이에 따라 다양한 기업들이 사용자 경험 향상을 위해 AI 기반의 에이전트를 도입하고 있습니다. Amazon Bedrock Agents는 조직의 데이터를 바탕으로 사용자의 요청에 맞는 작업을 수행하고, API 호출 및 지식 기반 연동을 자동화하여 유연한 에이전트를 구현할 수 있도록 돕습니다. 하지만 이러한 에이전트는 전통적인 소프트웨어보다 훨씬 복합적인 추론과 결정을 수행하기에, 이들의 동작 상태를 가시화하고 관찰하는 능력(Observability)이 매우 중요합니다.
이번 블로그에서는 Arize AI의 오픈소스 관찰 도구인 Phoenix와 Amazon Bedrock Agents를 통합하여 에이전트의 실행 경로 추적, 성능 평가 및 자동화된 디버깅이 가능한 구성을 실제 사용 사례와 함께 소개합니다.
Amazon Bedrock Agents란?
Amazon Bedrock Agents는 생성형 AI 기술을 활용해 사용자 요청을 분석하고 자동으로 업무를 처리하는 기능을 제공합니다. 예를 들어 보험 처리부터 여행 예약에 이르기까지 다양한 자동화 업무에 활용되며, 별도의 인프라 설정이나 프로그래밍이 필요 없이 빠르게 배포가 가능합니다.
이 에이전트 기능을 통해 사용자는 보다 지능적인 응답을 얻을 수 있으며, 개발자는 반복적인 작업을 자동화하여 생산성을 높일 수 있습니다.
AI 시스템의 핵심 요소, Observability란?
AI 에이전트는 전통적인 시스템과 달리 결정 과정이 예측 불가능한 경로에서 이뤄집니다. 이로 인해 발생하는 대표적인 문제는 다음과 같습니다:
- 응답 속도 및 지연 시간 분석
- 모델 호출 시 사용된 토큰 수량
- 호출 실패 또는 예외 처리
- 잘못된 함수 호출 또는 도구 선택
이런 문제 해결을 위해 Observability 기능이 필요하며, Phoenix는 이 기능을 구현하는 데 큰 역할을 합니다.
Phoenix와 Amazon Bedrock Agents 통합 가이드
- 필수 조건
- Amazon Bedrock 및 Agent 접근을 위한 AWS 계정
- Phoenix API 키가 포함된 Arize 계정
- Amazon CDK 활용 시 IaC 기반 자동 생성 코드
- 필수 라이브러리 설치 및 설정
Phoenix는/openinference-instrumentation-bedrock
플러그인을 활용해 Amazon Bedrock 호출을 자동 추적할 수 있습니다.
%pip install -r requirements.txt
import os
os.environ["PHOENIX_COLLECTOR_ENDPOINT"] = "https://app.phoenix.arize.com"
트레이싱을 위한 자동 설정은 다음과 같이 간단하게 구성됩니다.
from phoenix.otel import register
project_name = "Amazon Bedrock Agent Example"
tracer_provider = register(project_name=project_name, auto_instrument=True)
- Bedrock Agent 호출 시 트레이스 데이터 수집
에이전트를 호출할 때, Phoenix와 연동되어 트레이스 정보가 자동으로 수집됩니다.
agent_resp = bedrock_agent_runtime.invoke_agent(
agentAliasId=agent_alias_id,
agentId=agent_id,
inputText="Hello!",
sessionId="dummy-session",
)
- Phoenix에서 트레이스 시각화
Phoenix 대시보드에서는 다음 활동을 분석할 수 있습니다:
- 전체 사용자 요청 및 응답 시나리오
- 호출된 도구 목록 및 처리 결과
- 지식 기반 조회 결과
- 에이전트 판단 및 계획 경로
성과 평가 자동화: Function Calling 평가
AI 에이전트가 적절한 도구를 호출하고 있는지 확인하는 것도 매우 중요합니다. Phoenix는 이를 위해 LLM 평가 템플릿과 자동화된 클래스 분류기를 제공합니다.
- 평가 템플릿 구성
TOOL_CALLING_PROMPT_TEMPLATE = """
[Question]: {question}
[Tool Called]: {tool_call}
[Tool Definitions]: {tool_definitions}
"""
- 자연어로부터 함수 호출 정보 추출
import re
def extract_tool_calls(output_value):
tool_calls = []
tool_name_pattern = r"<tool_name>(.*?)</tool_name>"
tool_names = re.findall(tool_name_pattern, output_value)
for name in tool_names:
tool_calls.append(name)
return tool_calls
- 평가 실행 및 결과 저장
from phoenix.evals import llm_classify, BedrockModel
eval_model = BedrockModel(model_id="us.anthropic.claude-3-5-haiku-20241022-v1:0")
result = llm_classify(
data=trace_df,
template=TOOL_CALLING_PROMPT_TEMPLATE,
model=eval_model,
rails=["correct", "incorrect"]
)
- Phoenix로 평가 결과 업로드
px.Client().log_evaluations(
SpanEvaluations(eval_name="Tool Calling Eval", dataframe=result),
)
이 평가를 통해 에이전트가 사용자 요청에 맞는 도구를 정확하게 선택하고 있는지, 그 결과가 유효한지를 검증할 수 있습니다.
결론
Amazon Bedrock Agents와 Arize Phoenix의 통합은 AI 에이전트 배포와 운영의 신뢰성을 확보하기 위한 매우 강력한 전략입니다. 이 기능을 활용하면 성능 최적화는 물론, 보다 정확한 사용자 경험 제공이 가능해지며, 기업은 문제 발생 시 신속하게 원인을 파악하고 개선할 수 있습니다.
AI 에이전트의 관찰, 평가, 자동화된 개선이 궁금하시다면 지금 바로 Arize Phoenix와 Amazon Bedrock Agents의 통합을 체험해보세요. 앞으로도 더 많은 최신 기능과 통합 가이드가 추가될 예정입니다.
https://aws.amazon.com/blogs/machine-learning/amazon-bedrock-agents-observability-using-arize-ai/
AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!
(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기