AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

트레이싱이 Azure AI Foundry 에이전트에서 어떻게 작동하는지

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인프라/DevOps/보안

대상자

Azure AI Foundry 에이전트를 사용하여 복잡한 워크플로우를 디버깅하거나 모니터링하는 개발자 및 DevOps 엔지니어

핵심 요약

  • 트레이싱은 에이전트의 입력/출력, 실행 순서, 도구 호출 흐름을 추적하여 AI 품질위험/안전 메트릭을 분석하는 데 활용됨
  • OpenTelemetryApplication Insights를 통해 고급 트레이싱을 구현 가능 (예: opentelemetry-sdk, azure-core-tracing-opentelemetry 등)
  • @trace_function() 데코레이터를 사용해 에이전트 내 함수 호출을 추적하고, Application Insights에 로그 전송

섹션별 세부 요약

1. 트레이싱의 중요성

  • 에이전트가 복잡한 작업을 수행할 때, 도구 호출 체인결과 분석이 어려움
  • 트레이싱을 통해 에이전트의 실행 로그, 메트릭, 스레드 정보를 확인 가능
  • AI 품질위험/안전 평가에 활용

2. AI Foundry 포털을 통한 기본 트레이싱

  • Thread infoMetrics 메뉴로 스레드 실행 정보, 토큰 사용량, 도구 호출 내역 확인
  • 예시: 날씨 에이전트 실행 시 LLM 토큰 사용량을 추적하여 모델 한계 분석 가능

3. OpenTelemetry 기반 고급 트레이싱 구현

  • Application Insights 연결:
  • AI Foundry 포털에서 Observability > Tracing 메뉴로 App Insights 리소스 연결
  • Bicep 리소스 정의에서 applicationInsights: appInsightsId 설정
  • 필요한 패키지 설치:
  • pip install opentelemetry-sdk, azure-core-tracing-opentelemetry, opentelemetry-exporter-otlp

4. 트레이싱 구현 예제 코드

  • AgentsClient 초기화:

```python

agents_client = AgentsClient(

endpoint=os.getenv("PROJECT_ENDPOINT"),

credential=DefaultAzureCredential(),

application_insights_connection_string=os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING")

)

configure_azure_monitor(connection_string=application_insights_connection_string)

```

  • @trace_function() 데코레이터 사용:

```python

@trace_function()

def fetch_weather(location: str) -> str:

span = trace.get_current_span()

span.set_attribute("requested_location", location)

...

```

  • Application Insights에 로그 전송:

```python

with tracer.start_as_current_span(scenario):

with agents_client:

agent = agents_client.create_agent(...)

...

```

결론

  • OpenTelemetry + Application Insights 사용 시 에이전트 실행 흐름을 실시간으로 모니터링 가능
  • @trace_function() 데코레이터는 함수 호출 추적에 필수적
  • Bicep 리소스 정의requirements.txt 파일을 통해 트레이싱 기능을 구현하는 것이 권장됨