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
- Токены, стоимость, длительность
- Обязательно в продакшене