본문으로 건너뛰기

AiTracking

AI 호출 이력 추적 — RunStatus enum + Duration 계산 + multi-provider TokenUsage 정규화 + Retry policy

상태

항목
Layercore
TierL1
Statusreleased
Version1.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+)

  • 표준 Run Model + Migration (polymorphic owner)
  • Filament Dashboard (호출 통계 / 실패 추적)
  • AiRelay 호출 시 자동 hook (Run 자동 생성/마감)
  • Cost metadata hook (프로젝트 고유 metering/pricing 레이어와 연동)
  • Tenant/User 별 quota 알림

라이선스

MIT

데모


🛒 Plugin Store에서 보기: store.codebase.how/plugins/ai-tracking