Junior: питання на співбесіді з теми «AI SDK, MCP і Boost»
Питання з реальних співбесід з відповідями: Laravel і PHP, бази даних, JavaScript і фронтенд, Git, Docker, API, безпека й архітектура. Тими самими темами, що й тести.
2 питання
Laravel AI SDK (laravel/ai) - офіційний пакет для роботи з великими мовними моделями та іншими AI-сервісами через єдиний API: OpenAI, Anthropic, Gemini, Mistral, DeepSeek, xAI, Ollama та інші. Код застосунку не залежить від конкретного провайдера - його можна змінити в конфігурації.
composer require laravel/ai
Ключі провайдерів задаються в .env (OPENAI_API_KEY, ANTHROPIC_API_KEY...), налаштування - у config/ai.php.
Агент - окремий PHP-клас, що інкапсулює все потрібне для однієї задачі: інструкції (системний промпт), контекст розмови, інструменти й схему відповіді.
php artisan make:agent SupportAssistant
namespace App\Ai\Agents;
use Laravel\Ai\Contracts\Agent;
use Laravel\Ai\Promptable;
class SupportAssistant implements Agent
{
use Promptable;
public function instructions(): string
{
return 'Ти асистент підтримки інтернет-магазину. Відповідай коротко й лише про замовлення та доставку.';
}
}
Виклик:
$response = (new SupportAssistant)->prompt('Де моє замовлення №1042?');
return (string) $response;
SupportAssistant::make(...) створює агента через контейнер - з автоматичним впровадженням залежностей.
Налаштування через атрибути:
#[Provider(Lab::Anthropic)]
#[MaxTokens(1024)]
#[Temperature(0.2)]
#[Timeout(60)]
class SupportAssistant implements Agent
Що ще вміє SDK, крім текстових агентів:
- структурована відповідь за JSON-схемою;
- інструменти - функції застосунку, які модель може викликати;
- стримінг відповіді й обробка в черзі;
- збереження розмов у базі (
RemembersConversations); - ембединги для семантичного пошуку (
Str::of($text)->toEmbeddings(),whereVectorSimilarToу Query Builder); - генерація зображень, аудіо, транскрибування;
- резервні провайдери:
provider: [Lab::OpenAI, Lab::Anthropic]- якщо перший недоступний чи вичерпав ліміт.
Чому агент - клас, а не просто виклик API: інструкції, інструменти й налаштування зібрані в одному місці, агента можна підробити в тестах (SupportAssistant::fake()) і перевикористати в контролері, команді чи черзі.
MCP (Model Context Protocol) - відкритий протокол, через який AI-клієнт (Claude Code, Cursor, Codex, Copilot, Junie) отримує доступ до інструментів, ресурсів і промптів зовнішньої системи. Сервер MCP описує, що він уміє, а модель вирішує, коли цим скористатися.
Laravel Boost (laravel/boost) - пакет для розробки, що робить AI-асистента обізнаним саме про ваш застосунок і версії пакетів.
composer require laravel/boost --dev
php artisan boost:install
boost:install питає, якими агентами ви користуєтеся, і генерує для них файли:
- конфігурацію MCP (
.mcp.jsonтощо) - агент запускаєphp artisan boost:mcp; - настанови (guidelines) - файли на кшталт
CLAUDE.md,AGENTS.mdз правилами для вашої версії Laravel і встановлених пакетів (Livewire 4, Filament 5, Pest...); - навички (skills) - детальні інструкції, що завантажуються на вимогу під конкретну задачу.
Інструменти MCP-сервера Boost:
| Інструмент | Навіщо агенту |
|---|---|
| Application Info | версії PHP, Laravel, пакетів, список моделей |
| Database Schema / Query | структура таблиць і запити до бази |
| Search Docs | документація саме для встановлених версій пакетів |
| Last Error / Read Log Entries | останні помилки з логів |
| Browser Logs | помилки з консолі браузера |
| Get Absolute URL | правильна адреса сторінки застосунку |
Чому це важливо: модель навчена на коді різних версій. Без контексту вона охоче напише код для Livewire 2 чи старий синтаксис маршрутів. Boost дає їй документацію й правила для того, що реально встановлено, і можливість перевірити схему бази замість вгадування.
Власні правила проєкту:
.ai/guidelines/*.md(чи.blade.php) - додаткові настанови, що потрапляють у згенеровані файли;.ai/skills/{назва}/SKILL.md- власні навички.
Оновлення: php artisan boost:update - перегенерувати настанови й навички після оновлення пакетів (зручно додати в post-update-cmd Composer).
Безпека: Boost - залежність лише для розробки (--dev). Інструмент запитів до бази виконується з правами застосунку, тож підключати агента варто до локальної бази, а не до продакшену.