DAP (Duo Agentic Platform) 계측 가이드
이 가이드는 Internal Events Tracking을 사용하여 GitLab Duo Agentic Platform (DAP) 이벤트를 계측하기 위한 포괄적인 지침을 제공합니다. Duo Agentic Platform (DAP)은 AI 기반 워크플로우를 구축하고 실행하기 위한 프레임워크입니다.
이 가이드는 Internal Events Tracking을 사용하여 GitLab Duo Agentic Platform (DAP) 이벤트를 계측하기 위한 포괄적인 지침을 제공합니다. DAP 이벤트는 완전한 추적 정보를 캡처하기 위해 Standard Context와 AI Context 모두를 필요로 합니다.
개요#
Duo Agentic Platform (DAP)은 AI 기반 워크플로우를 구축하고 실행하기 위한 프레임워크입니다. DAP 이벤트의 적절한 계측은 다음을 위해 필수적입니다:
- AI 기능의 사용량 및 채택률 추적
- 성능 및 신뢰성 모니터링
- 청구 및 리소스 할당
- 사용자 행동 및 워크플로우 패턴 이해
- 토큰 소비 및 비용 측정
DAP 계측 요구 사항#
모든 DAP 이벤트에는 다음이 포함되어야 합니다:
- 이벤트 정의 에
classification: duo - Standard Context - 표준 추적 필드 (사용자, 프로젝트, 네임스페이스)
- AI Context - AI 특정 필드 (세션, 워크플로우, 토큰, 모델)
- 세션 수준 이벤트 - 워크플로우 라이프사이클을 위한 표준화된 이벤트
필수 컨텍스트#
Standard Context#
Standard Context는 일반 추적 정보를 제공하며 다음을 포함해야 합니다:
user- 워크플로우를 실행하는 사용자project- 워크플로우와 관련된 프로젝트 (해당하는 경우)namespace- 워크플로우와 관련된 네임스페이스
완전한 필드 설명은 Standard Context 필드를 참조하세요.
AI Context#
AI Context는 DAP 이벤트를 위한 AI 특정 속성을 캡처합니다. 필수 및 권장 필드:
필수 필드:
session_id- 인스턴스의 로컬 세션 식별자
권장 필드:
flow_type- DAP 플로우 유형 (예:chat,software_development,code_review)agent_name- 액션을 실행하는 에이전트 이름agent_type- 액션을 실행하는 에이전트 유형flow_version- 플로우 구현의 버전input_tokens- AI 모델에 전송된 입력 토큰 수output_tokens- AI 모델에서 받은 출력 토큰 수total_tokens- 사용된 총 토큰 (입력 + 출력)ephemeral_5m_input_tokens- 5분 캐시된 입력 토큰ephemeral_1h_input_tokens- 1시간 캐시된 입력 토큰cache_read- 캐시 읽기 작업
모델 정보 (Standard Context):
모델 정보는 AI Context가 아닌 Standard Context에서 추적해야 합니다:
model_provider- AI 모델 제공업체 (예:anthropic,openai)model_engine- 모델 엔진 또는 계열 (예:claude-3-5,gpt-4)model_name- 특정 모델 이름 (예:claude-3-5-sonnet-20241022)
완전한 필드 설명 및 예시는 AI 이벤트 계측 가이드를 참조하세요.
세션 수준 이벤트#
DAP 워크플로우는 완전한 워크플로우 라이프사이클을 추적하기 위해 다음과 같은 표준화된 세션 수준 이벤트를 계측해야 합니다:
워크플로우 라이프사이클 이벤트#
| 이벤트 이름 | 설명 | 추적 시점 |
|---|---|---|
receive_start_duo_workflow |
사용자가 Duo 워크플로우를 시작함 | 워크플로우 시작 요청이 수신될 때 |
request_duo_workflow |
워크플로우 실행 요청이 전송됨 | 워크플로우 실행이 시작될 때 |
request_duo_workflow_success |
워크플로우 실행이 성공적으로 완료됨 | 워크플로우가 오류 없이 완료될 때 |
request_duo_workflow_failure |
워크플로우 실행이 실패함 | 워크플로우가 오류를 만날 때 |
pause_duo_workflow |
사용자가 활성 워크플로우를 일시 중지함 | 사용자 액션으로 워크플로우가 일시 중지될 때 |
resume_duo_workflow |
사용자가 일시 중지된 워크플로우를 재개함 | 일시 중지된 워크플로우가 재개될 때 |
도구 실행 이벤트#
| 이벤트 이름 | 설명 | 추적 시점 |
|---|---|---|
duo_workflow_tool_success |
워크플로우 내의 도구가 성공적으로 실행됨 | 워크플로우 도구가 성공적으로 완료될 때 |
duo_workflow_tool_failure |
워크플로우 내의 도구가 실패함 | 워크플로우 도구가 오류를 만날 때 |
유지 관리 이벤트#
| 이벤트 이름 | 설명 | 추적 시점 |
|---|---|---|
cleanup_stuck_agent_platform_session |
멈추거나 고아 세션 정리 | 멈춘 세션이 감지되고 정리될 때 |
토큰 추적 모범 사례#
항상 토큰 사용량 추적#
모든 AI 모델 상호작용에서 AI Context의 토큰 사용량과 Standard Context의 모델 정보를 추적합니다:
track_internal_event(
"token_usage_duo_workflow",
user: user,
project: project,
additional_properties: {
model_provider: "anthropic",
model_engine: "claude-3-5",
model_name: "claude-3-5-sonnet-20241022"
},
ai_context: {
session_id: session.id,
input_tokens: response.usage.input_tokens,
output_tokens: response.usage.output_tokens,
total_tokens: response.usage.total_tokens
}
)
캐시 메트릭 포함#
캐시된 프롬프트를 사용할 때 AI Context에서 캐시 사용량을 추적합니다:
ai_context: {
session_id: session.id,
input_tokens: response.usage.input_tokens,
output_tokens: response.usage.output_tokens,
total_tokens: response.usage.total_tokens,
ephemeral_5m_input_tokens: response.usage.cache_creation_input_tokens,
ephemeral_1h_input_tokens: response.usage.cache_creation_1h_input_tokens,
cache_read: response.usage.cache_read_input_tokens
}
모델 정보#
Standard Context에 항상 완전한 모델 정보를 포함합니다:
additional_properties: {
model_provider: "anthropic", # or "openai", "vertex", etc.
model_engine: "claude-3-5", # or "gpt-4", etc.
model_name: "claude-3-5-sonnet-20241022" # specific model version
}
