AiTracking
AI 호출 이력 추적 — RunStatus enum + Duration 계산 + multi-provider TokenUsage 정규화 + Retry policy
상태
| 항목 | 값 |
|---|---|
| Layer | core |
| Tier | L1 |
| Status | released |
| Version | 1.0.0 |
| 가격 | Free (free) |
| **카� | |
| �고리** | AI / LLM |
개요
개요
AiTracking 은 multi-saas-kit 의 Layer 1 Core Plugin �
니다. scout.how 와 academy.how 의 AiRun / AiTask 모델 통합 분석 결과를 기반으로 LLM 호출 이력 추적의 표준 enum + 계산기를 제공합니다.
AiRelay (호출) + ApiUsageAnalytics (비용) + AiTracking (이력) 3� 으로 LLM 운영 추적 stack 완성.
핵심 컴포넌트
RunStatus (enum)
scout + academy 의 STATUS_* 통합:
PENDING/QUEUED/RUNNING(active)COMPLETED/FAILED/CANCELLED(terminal)
메서드: isTerminal(), isActive(), isSuccess(), isFailure().
RunDurationCalculator (Pure)
- terminal status 면
started_at → completed_at(frozen) - 진행 중이면
started_at → now(live duration) - start 없으면 0, end < start 면 0 으로 clamp
TokenUsageNormalizer (Pure)
4� provider shape 자동 정규화:
- OpenAI:
prompt_tokens/completion_tokens/total_tokens - Claude:
input_tokens/output_tokens - LiteLLM: 둘 중 하나
- Gemini:
promptTokenCount/candidatesTokenCount/totalTokenCount
표준 출력: {prompt_tokens, completion_tokens, total_tokens}. total 누락 시 자동 합산.
RetryPolicy (Pure)
Exponential backoff: base × multiplier^(attempt-1). config 으로 max_attempts / base / multiplier 변경.
설정 (config/ai-tracking.php)
return [
'enabled' => env('PLG_AI_TRACKING_ENABLED', true),
'terminal_statuses' => ['completed', 'failed', 'cancelled'],
'retry' => ['max_attempts' => 3, 'base_delay_seconds' => 5, 'multiplier' => 2],
];
출처
scout.how App\Models\AiRun / AiTask + academy.how App\Modules\Content\Models\AiRun / AiRunBatch 통합. 2 프로젝트의 status enum + provider 별 token usage shape 차이를 표준화.
다음 단계 (Phase 3+)
- 표준
RunModel + Migration (polymorphic owner) - Filament Dashboard (호출 통계 / 실패 추적)
- AiRelay 호출 시 자동 hook (Run 자동 생성/마감)
- Cost metadata hook (프로젝트 고유 metering/pricing 레이어와 연동)
- Tenant/User 별 quota 알림
라이선스
MIT
데모
- Platform 관리자 패널에서 메타 확인 🔒 로그인 필요
- 사용 예시 (PHP)
🛒 Plugin Store에서 보기: store.codebase.how/plugins/ai-tracking