# Laravel:ai Sdk

> Build AI features with the first-party Laravel AI SDK (Laravel 13+); agents, embeddings, images, audio, and tool calling with provider-agnostic APIs

- Skill: `jpcaparas/laravel-ai-sdk` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jpcaparas/laravel-ai-sdk`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jpcaparas/laravel-ai-sdk/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jpcaparas (https://skillmd.com/u/jpcaparas)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jpcaparas/laravel-ai-sdk

---


# Laravel AI SDK Essentials (Laravel 13+)

Use the first-party AI SDK for provider-agnostic text generation, agents, embeddings, images, and audio. Keep provider details in config; keep app code portable across OpenAI, Anthropic, Gemini, Bedrock, Ollama, and others.

## Commands

```
# Install the SDK
sail composer require laravel/ai        # or: composer require laravel/ai

# Basic agent prompt
use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('Analyze this sales transcript...');
return (string) $response;

# Image generation
use Laravel\Ai\Image;
$image = Image::of('A donut sitting on the kitchen counter')->generate();

# Audio synthesis
use Laravel\Ai\Audio;
$audio = Audio::of('I love coding with Laravel.')->generate();

# Embeddings (also see laravel:vector-search)
use Illuminate\Support\Str;
$embeddings = Str::of('Napa Valley has great wine.')->toEmbeddings();
```

## Patterns

- Keep API keys in `.env`; never hardcode provider credentials
- Define agents as dedicated classes with focused instructions; one responsibility per agent
- Use structured output with validation when the response feeds business logic
- Give agents the fewest tools needed; treat tool calling like any other authorization surface
- Configure provider/model failover for production resilience
- Queue long-running generations (images, audio, batch embeddings) instead of blocking requests
- Cache embeddings for stable inputs; regenerating them costs money and time

## Testing

- Fake AI responses in tests; never call real providers from the test suite
- Assert on prompts/inputs sent to the SDK, not just outputs
- Feature test the surrounding flow (queueing, persistence, authorization) with the AI layer faked

