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-вызовов