Laravel AI SDK 1.1.0 was published on October 7, 2026. It is the first minor release since 1.0. The update adds new agent capabilities and another text provider. It also changes provider failover behavior.
composer require laravel/ai:^1.1The SDK now supports Agent Skills, a folder-based standard that lets coding agents load task instructions only when they need them. A skill lives under resources/skills and contains a SKILL.md file. Its front matter must include description. The name is optional and defaults to the directory name. A refund-policy example also includes references/EDGE-CASES.md and tells the agent to check the order date before handling refunds or partial credits for orders older than 30 days. Pushpak Chhajed said the team had previously rejected support twice. The format has since become common across many tools. The related pull requests are #1054 and #1102.
Agents expose skills by implementing Laravel\Ai\Contracts\HasSkills alongside Laravel\Ai\Contracts\Agent and Laravel\Ai\Promptable. The SDK provides one LoadSkill tool. It first presents skill names and descriptions, then lets the model request the full instructions or a file inside the skill directory. Skill sources can be a directory, a PHP Skill object, or a closure. A closure runs when the tool first reads the skills, which allows per-user database loading. The path .agents/skills can share skills with a coding agent.
An agent may also receive LoadSkill([...]) directly from tools(). If both configuration paths are used, the SDK combines them into one tool and logs a warning because providers reject duplicate tool names. Reads stay inside the selected skill directory. Files above 256 KB and binary files are rejected.
Cohere now provides text generation through its v2 Chat API. The provider already supported embeddings and reranking. Mojtaba Sayari added streaming, tool calls, structured output, and reasoning. The default model is command-a-03-2025, and an agent can select the provider with prompt('Hello', provider: 'cohere'). Cohere cannot force a particular tool. ToolChoice::tool('X') sends only X and marks that call as required. Document attachments and citations are not implemented yet, although provider options can pass values such as documents and safety_mode. The change is tracked in PR #1078.
MCP, agent, similarity search, and filesystem tools now implement Approvable. Applications can call requireApproval() on these built-in tools. A GitHub MCP setup can inspect annotations()['readOnlyHint'] and require approval for every tool that is not marked read-only. Approval remains disabled by default, so existing agents keep their previous behavior. PR #1097 adds the feature.
Failover no longer stops when the next provider lacks one of the agent’s provider tools. A run using WebFetch and WebSearch could previously fail after a rate-limited Anthropic request moved to OpenAI, because OpenAI rejected WebFetch with RuntimeException: Provider [openai] does not support the [WebFetch] tool. Each attempt now removes tools unsupported by the active provider, allowing the run to continue with WebSearch. On providers without hosted tool search, the SDK unwraps ToolSearch and sends the contained tools normally. Multiple ToolSearch wrappers still fail on every provider. This change is in PR #1080.
Classification can now use a self-hosted Laya server from NandhaKishorM/laya through the existing typesafe driver. The laya connection uses driver typesafe, key from LAYA_API_KEY, url from LAYA_URL with http://localhost:8000/v1 as the default, and classification.default set to auto. Applications call Classification::of($ticket)->questions($questions)->classify(provider: 'laya'). Response metadata identifies the Laya checkpoint that handled the request. PR #1081 covers the integration.
ToolSearch now works with Azure OpenAI. On Groq, WebSearch maps to browser_search and CodeExecution maps to code_interpreter. Groq exposes both capabilities only on its GPT-OSS models and ignores max(), allow(), and location() for WebSearch. WebSearch now forwards location to OpenRouter. These provider changes are covered by PRs #1098 and #1099.
Agents gain MoveFile, which can rename or move a file in one tool call. PR #1092 removes the need for a copy followed by a delete. Fallback models changed for most providers. Anthropic now uses claude-sonnet-5-5 by default, and Gemini uses gemini-3.8-flash. Applications that leave model values unset in config/ai.php will receive the newer defaults after upgrading. PR #1095 contains those changes.
The release also fixes stateless OpenAI file search replay in PR #1089, replacement of an edited useChat user message by the assistant reply in PR #1076, and misplaced ElevenLabs query parameters in PR #1103. The 1.0 upgrade guide now requires laravel/boost 2.10.0 or newer for the Boost upgrade command. It also records a conflict with laravel/mcp versions below 1.0. That documentation change is PR #1087.
Existing applications can upgrade with Composer by requiring laravel/ai:^1.1.




Comments
No comments yet — be the first.
Open the discussion
No account or password needed — just enter your e-mail and we’ll send you a one-time sign-in link. First time here? You’re set up automatically.
Your rating will be applied automatically after you sign in.
Check your inbox
We’ve sent a sign-in link to …. Open it on this device — this tab will sign you in automatically.
Nothing arrived? Check your spam folder — and mark the mail as "Not spam" so it lands in your inbox next time.