Урок 11

Production: тестирование

AI-логика должна быть покрыта тестами. Fake-агенты не тратят деньги и работают быстро.

Fake агентов

use App\Ai\Agents\SupportAgent;

SupportAgent::fake([
    'Ответ на первый запрос',
    'Ответ на второй запрос',
]);

$response = (new SupportAgent)->prompt('Привет');

$this->assertSame('Ответ на первый запрос', (string) $response);

Fake structured output

SalesCoach::fake([
    ['feedback' => 'Хорошо', 'score' => 8],
]);

$response = (new SalesCoach)->prompt('Анализ...');

$this->assertSame(8, $response['score']);

Fake tools

LookupOrder::fake([
    'Заказ #1: доставлен',
]);

Fake embeddings

use Laravel\Ai\Embeddings;

Embeddings::fake();

$response = Embeddings::for(['Текст'])->generate();

$this->assertCount(1536, $response->embeddings[0]);

Assertions

SupportAgent::assertPrompted('Привет');
SupportAgent::assertNotPrompted('Пока');

Что тестировать

  • Ответы агентов
  • Structured output
  • Tools
  • RAG-поиск
  • Failover
  • Middleware

Итоги

  • Agent::fake() для ответов
  • Fake structured, tools, embeddings
  • Assertions для проверки
  • Тесты без API-вызовов