Урок 08

Production: observability

Без наблюдаемости AI — чёрный ящик. Нужны трассировка, стоимость, ошибки.

Lifecycle Events

AI SDK v0.11+ отправляет события на каждом шаге:

use Laravel\Ai\Events\StartingStep;
use Laravel\Ai\Events\StepCompleted;

Event::listen(StepCompleted::class, function (StepCompleted $event) {
    Log::info('AI step completed', [
        'invocation' => $event->invocationId,
        'step' => $event->stepNumber,
        'ms' => $event->time,
        'prompt_tokens' => $event->response->usage->promptTokens,
        'finish' => $event->response->finishReason->value,
    ]);
});

Laravel AI Observatory

composer require kanary/laravel-ai-observatory --dev

Дашборд с трассировкой:

  • Список операций
  • Parent-child timeline
  • Токены, стоимость, длительность
  • Ошибки
AI_OBSERVATORY_ENABLED=true
AI_OBSERVATORY_SAMPLE_RATE=0.1
AI_OBSERVATORY_ALWAYS_RECORD_FAILURES=true

Laravel AI Trace

Альтернатива с waterfall-видом:

composer require ryderasking/laravel-ai-trace

Что отслеживать

  • Токены и стоимость
  • Длительность каждого шага
  • Tool calls
  • Failover события
  • Ошибки
  • User/tenant контекст

Итоги

  • Lifecycle events для логирования
  • Observatory для дашборда
  • Trace для waterfall
  • Токены, стоимость, длительность
  • Обязательно в продакшене