트레이싱이 Azure AI Foundry 에이전트에서 어떻게 작동하는지
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
Azure AI Foundry 에이전트를 사용하여 복잡한 워크플로우를 디버깅하거나 모니터링하는 개발자 및 DevOps 엔지니어
핵심 요약
- 트레이싱은 에이전트의 입력/출력, 실행 순서, 도구 호출 흐름을 추적하여 AI 품질 및 위험/안전 메트릭을 분석하는 데 활용됨
- OpenTelemetry와 Application Insights를 통해 고급 트레이싱을 구현 가능 (예:
opentelemetry-sdk
,azure-core-tracing-opentelemetry
등) @trace_function()
데코레이터를 사용해 에이전트 내 함수 호출을 추적하고, Application Insights에 로그 전송
섹션별 세부 요약
1. 트레이싱의 중요성
- 에이전트가 복잡한 작업을 수행할 때, 도구 호출 체인 및 결과 분석이 어려움
- 트레이싱을 통해 에이전트의 실행 로그, 메트릭, 스레드 정보를 확인 가능
- AI 품질 및 위험/안전 평가에 활용
2. AI Foundry 포털을 통한 기본 트레이싱
- Thread info 및 Metrics 메뉴로 스레드 실행 정보, 토큰 사용량, 도구 호출 내역 확인
- 예시: 날씨 에이전트 실행 시 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
파일을 통해 트레이싱 기능을 구현하는 것이 권장됨