laravel/ai
The official AI SDK for Laravel.
v0.11.0
6.0M downloads/mo
#512 most downloaded on Packagist
laravel/ai
What this package is like to depend on
Last release 5 days ago
19 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 46 of 47 stable releases
Nothing withdrawn
no release was ever pulled
6 months old
47 releases · first in 2026
46 releases in the last 12 months
see the full history below
Release timeline
46 releases · Feb 2026 to Aug 2026Releases
latest 47-
v0.11.019 Aug 2026Release notes
Open source →What's Changed
- Add coverage for persisting provider content blocks on paused turns by @dfinchenko in #861
- Add coverage for storing generated audio on a filesystem disk by @dfinchenko in #863
- Add coverage for storing a generated image on a filesystem disk by @dfinchenko in #862
- Trigger failover when a provider connection fails by @JVillator0 in #781
- Fail over on transient gateway and Cloudflare upstream errors, not only 503 by @sulimanbenhalim in #810
- Execute
then(...)callback when faking the queued generation of transcription/image/audio/embeddings by @gdebrauwer in #797 - Add web search support to the xAI provider by @sulimanbenhalim in #857
- Add transcription support to the OpenAI-compatible provider by @sulimanbenhalim in #858
- Add transcription support to the Groq provider by @sulimanbenhalim in #868
- Fail over when Anthropic rejects a request for hitting a usage limit by @oddvalue in #864
- Reconstruct S3 document attachments in File::fromArray by @sulimanbenhalim in #878
- Handle Mistral responses that return content as a list of blocks by @lazerg in #866
- Reset text part state after TextEnd in Responses API streams by @chrisnetonline in #854
- Fix OpenAI gateway dropping cache write tokens from usage by @aqu1les in #846
- Add hosted tool search via ToolSearch tool and stateless output replay (OpenAI + Anthropic) by @behzadsp in #697
- Repair unknown local tool calls by @pushpak1300 in #859
- Make stream errors throw instead of silently ending the run by @pushpak1300 in #870
- Thread one invocation id through an entire agent run by @pushpak1300 in #871
- Report tool invocations through a run context by @pushpak1300 in #872
- Report each generation step through the run context by @pushpak1300 in #873
- Report tool failures and how long a tool ran by @pushpak1300 in #874
- Link an agent invoked as a tool back to its parent by @pushpak1300 in #875
- Report a run's terminal failure by @pushpak1300 in #876
- Filter partially-orphaned tool calls when replaying conversation history by @filipposallemi in #758
- [BUG] [0.x] Sum streamed usage across tool-call steps in all provider gateways by @mo-inkhan in #698
- Map Anthropic refusal and model_context_window_exceeded stop reasons by @egantz in #881
- Update Gemini default text model to gemini-3.7-flash by @pushpak1300 in #887
- Keep the MCP request bound while converting generator results by @pushpak1300 in #888
- Add support for the OpenRouter web fetch server tool by @CamilleScholtz in #889
- Send text/plain for all text document sources on Anthropic by @calrloco in #886
- Fail over on Anthropic transient gateway and Cloudflare errors by @sulimanbenhalim in #884
- Strip markdown code fences from OpenAI-compatible structured output by @sulimanbenhalim in #879
- Add file search support to the xAI provider by @timmcleod in #894
- Added assertPromptedTimes test method by @F1nnG in #891
- Surface Anthropic web fetch citations on the response by @sulimanbenhalim in #892
- Exclude DeepSeek cache-hit tokens from the reported prompt token count by @sulimanbenhalim in #896
New Contributors
- @gdebrauwer made their first contribution in #797
- @oddvalue made their first contribution in #864
- @lazerg made their first contribution in #866
- @chrisnetonline made their first contribution in #854
- @aqu1les made their first contribution in #846
- @behzadsp made their first contribution in #697
- @filipposallemi made their first contribution in #758
- @mo-inkhan made their first contribution in #698
- @egantz made their first contribution in #881
- @CamilleScholtz made their first contribution in #889
- @calrloco made their first contribution in #886
- @F1nnG made their first contribution in #891
Full Changelog: v0.10.3...v0.11.0
Release notes
Open source →What's Changed
- Add coverage for persisting provider content blocks on paused turns by @dfinchenko in https://github.com/laravel/ai/pull/861
- Add coverage for storing generated audio on a filesystem disk by @dfinchenko in https://github.com/laravel/ai/pull/863
- Add coverage for storing a generated image on a filesystem disk by @dfinchenko in https://github.com/laravel/ai/pull/862
- Trigger failover when a provider connection fails by @JVillator0 in https://github.com/laravel/ai/pull/781
- Fail over on transient gateway and Cloudflare upstream errors, not only 503 by @sulimanbenhalim in https://github.com/laravel/ai/pull/810
- Execute
then(...)callback when faking the queued generation of transcription/image/audio/embeddings by @gdebrauwer in https://github.com/laravel/ai/pull/797 - Add web search support to the xAI provider by @sulimanbenhalim in https://github.com/laravel/ai/pull/857
- Add transcription support to the OpenAI-compatible provider by @sulimanbenhalim in https://github.com/laravel/ai/pull/858
- Add transcription support to the Groq provider by @sulimanbenhalim in https://github.com/laravel/ai/pull/868
- Fail over when Anthropic rejects a request for hitting a usage limit by @oddvalue in https://github.com/laravel/ai/pull/864
- Reconstruct S3 document attachments in File::fromArray by @sulimanbenhalim in https://github.com/laravel/ai/pull/878
- Handle Mistral responses that return content as a list of blocks by @lazerg in https://github.com/laravel/ai/pull/866
- Reset text part state after TextEnd in Responses API streams by @chrisnetonline in https://github.com/laravel/ai/pull/854
- Fix OpenAI gateway dropping cache write tokens from usage by @aqu1les in https://github.com/laravel/ai/pull/846
- Add hosted tool search via ToolSearch tool and stateless output replay (OpenAI + Anthropic) by @behzadsp in https://github.com/laravel/ai/pull/697
- Repair unknown local tool calls by @pushpak1300 in https://github.com/laravel/ai/pull/859
- Make stream errors throw instead of silently ending the run by @pushpak1300 in https://github.com/laravel/ai/pull/870
- Thread one invocation id through an entire agent run by @pushpak1300 in https://github.com/laravel/ai/pull/871
- Report tool invocations through a run context by @pushpak1300 in https://github.com/laravel/ai/pull/872
- Report each generation step through the run context by @pushpak1300 in https://github.com/laravel/ai/pull/873
- Report tool failures and how long a tool ran by @pushpak1300 in https://github.com/laravel/ai/pull/874
- Link an agent invoked as a tool back to its parent by @pushpak1300 in https://github.com/laravel/ai/pull/875
- Report a run's terminal failure by @pushpak1300 in https://github.com/laravel/ai/pull/876
- Filter partially-orphaned tool calls when replaying conversation history by @filipposallemi in https://github.com/laravel/ai/pull/758
- [BUG] [0.x] Sum streamed usage across tool-call steps in all provider gateways by @mo-inkhan in https://github.com/laravel/ai/pull/698
- Map Anthropic refusal and model_context_window_exceeded stop reasons by @egantz in https://github.com/laravel/ai/pull/881
- Update Gemini default text model to gemini-3.7-flash by @pushpak1300 in https://github.com/laravel/ai/pull/887
- Keep the MCP request bound while converting generator results by @pushpak1300 in https://github.com/laravel/ai/pull/888
- Add support for the OpenRouter web fetch server tool by @CamilleScholtz in https://github.com/laravel/ai/pull/889
- Send text/plain for all text document sources on Anthropic by @calrloco in https://github.com/laravel/ai/pull/886
- Fail over on Anthropic transient gateway and Cloudflare errors by @sulimanbenhalim in https://github.com/laravel/ai/pull/884
- Strip markdown code fences from OpenAI-compatible structured output by @sulimanbenhalim in https://github.com/laravel/ai/pull/879
- Add file search support to the xAI provider by @timmcleod in https://github.com/laravel/ai/pull/894
- Added assertPromptedTimes test method by @F1nnG in https://github.com/laravel/ai/pull/891
- Surface Anthropic web fetch citations on the response by @sulimanbenhalim in https://github.com/laravel/ai/pull/892
- Exclude DeepSeek cache-hit tokens from the reported prompt token count by @sulimanbenhalim in https://github.com/laravel/ai/pull/896
New Contributors
- @gdebrauwer made their first contribution in https://github.com/laravel/ai/pull/797
- @oddvalue made their first contribution in https://github.com/laravel/ai/pull/864
- @lazerg made their first contribution in https://github.com/laravel/ai/pull/866
- @chrisnetonline made their first contribution in https://github.com/laravel/ai/pull/854
- @aqu1les made their first contribution in https://github.com/laravel/ai/pull/846
- @behzadsp made their first contribution in https://github.com/laravel/ai/pull/697
- @filipposallemi made their first contribution in https://github.com/laravel/ai/pull/758
- @mo-inkhan made their first contribution in https://github.com/laravel/ai/pull/698
- @egantz made their first contribution in https://github.com/laravel/ai/pull/881
- @CamilleScholtz made their first contribution in https://github.com/laravel/ai/pull/889
- @calrloco made their first contribution in https://github.com/laravel/ai/pull/886
- @F1nnG made their first contribution in https://github.com/laravel/ai/pull/891
Full Changelog: https://github.com/laravel/ai/compare/v0.10.3...v0.11.0
-
v0.10.306 Aug 2026Release notes
Open source →What's Changed
- Change minimum required AWS SDK version by @stevencsimpson in #808
- Add Vercel protocol coverage for text and reasoning stream events by @dfinchenko in #845
- Add Gemini tool-loop coverage for thought signature preservation by @sulimanbenhalim in #834
- Azure OpenAI - Add web search support by @jesse-bos in #843
- Parse Cohere Embed v4's type-keyed embeddings shape on Bedrock by @serpentblade in #725
- Expose raw http response in model API response by @dumbbellcode in #714
- Add embeddings support to the OpenAI-compatible provider by @ademola-emmanuel in #841
- Add Vercel protocol coverage for citation, error, and default tool error parts by @dfinchenko in #849
- Support custom HTTP headers via provider connection config by @AngadSethi in #838
- Run the test suite in parallel by @pushpak1300 in #851
- Preserve header casing when merging configured headers by @pushpak1300 in #852
New Contributors
- @stevencsimpson made their first contribution in #808
- @jesse-bos made their first contribution in #843
- @serpentblade made their first contribution in #725
- @AngadSethi made their first contribution in #838
Full Changelog: v0.10.2...v0.10.3
Release notes
Open source →What's Changed
- Change minimum required AWS SDK version by @stevencsimpson in https://github.com/laravel/ai/pull/808
- Add Vercel protocol coverage for text and reasoning stream events by @dfinchenko in https://github.com/laravel/ai/pull/845
- Add Gemini tool-loop coverage for thought signature preservation by @sulimanbenhalim in https://github.com/laravel/ai/pull/834
- Azure OpenAI - Add web search support by @jesse-bos in https://github.com/laravel/ai/pull/843
- Parse Cohere Embed v4's type-keyed embeddings shape on Bedrock by @serpentblade in https://github.com/laravel/ai/pull/725
- Expose raw http response in model API response by @dumbbellcode in https://github.com/laravel/ai/pull/714
- Add embeddings support to the OpenAI-compatible provider by @ademola-emmanuel in https://github.com/laravel/ai/pull/841
- Add Vercel protocol coverage for citation, error, and default tool error parts by @dfinchenko in https://github.com/laravel/ai/pull/849
- Support custom HTTP headers via provider connection config by @AngadSethi in https://github.com/laravel/ai/pull/838
- Run the test suite in parallel by @pushpak1300 in https://github.com/laravel/ai/pull/851
- Preserve header casing when merging configured headers by @pushpak1300 in https://github.com/laravel/ai/pull/852
New Contributors
- @stevencsimpson made their first contribution in https://github.com/laravel/ai/pull/808
- @jesse-bos made their first contribution in https://github.com/laravel/ai/pull/843
- @serpentblade made their first contribution in https://github.com/laravel/ai/pull/725
- @AngadSethi made their first contribution in https://github.com/laravel/ai/pull/838
Full Changelog: https://github.com/laravel/ai/compare/v0.10.2...v0.10.3
-
v0.10.228 Jul 2026Release notes
Open source →What's Changed
- Preserve conversation title language by @yuters in #814
- Bump actions/checkout from 7.0.0 to 7.0.1 in the github-actions group by @dependabot[bot] in #830
- Fix Anthropic structured output rejecting JSON Schema constraints by @sulimanbenhalim in #718
- Bump postcss from 8.5.16 to 8.5.23 in /workbench by @dependabot[bot] in #831
- Fix colliding embeddings cache keys for distinct string batches by @ademola-emmanuel in #832
- Replace deprected DeepSeek model name with deepseek-v4-flash by @peter-nassef in #829
- Fix: SimilaritySearch tool output with additional JSON flags (for other languages) by @yuters in #820
New Contributors
- @yuters made their first contribution in #814
- @ademola-emmanuel made their first contribution in #832
- @peter-nassef made their first contribution in #829
Full Changelog: v0.10.1...v0.10.2
Release notes
Open source →What's Changed
- Preserve conversation title language by @yuters in https://github.com/laravel/ai/pull/814
- Bump actions/checkout from 7.0.0 to 7.0.1 in the github-actions group by @dependabot[bot] in https://github.com/laravel/ai/pull/830
- Fix Anthropic structured output rejecting JSON Schema constraints by @sulimanbenhalim in https://github.com/laravel/ai/pull/718
- Bump postcss from 8.5.16 to 8.5.23 in /workbench by @dependabot[bot] in https://github.com/laravel/ai/pull/831
- Fix colliding embeddings cache keys for distinct string batches by @ademola-emmanuel in https://github.com/laravel/ai/pull/832
- Replace deprected DeepSeek model name with deepseek-v4-flash by @peter-nassef in https://github.com/laravel/ai/pull/829
- Fix: SimilaritySearch tool output with additional JSON flags (for other languages) by @yuters in https://github.com/laravel/ai/pull/820
New Contributors
- @yuters made their first contribution in https://github.com/laravel/ai/pull/814
- @ademola-emmanuel made their first contribution in https://github.com/laravel/ai/pull/832
- @peter-nassef made their first contribution in https://github.com/laravel/ai/pull/829
Full Changelog: https://github.com/laravel/ai/compare/v0.10.1...v0.10.2
-
v0.10.121 Jul 2026Release notes
Open source →- [0.x] Update .gitattributes by @jackbayliss in #806
- Update Gemini default models by @pushpak1300 in #807
Release notes
Open source →- [0.x] Update .gitattributes by @jackbayliss in https://github.com/laravel/ai/pull/806
- Update Gemini default models by @pushpak1300 in https://github.com/laravel/ai/pull/807
-
v0.10.021 Jul 2026Release notes
Open source →- Add Rector and Laravel Rector, apply automated refactors by @pushpak1300 in #784
- Support multimodal for Gemini and VoyageAI by @paulinevos in #798
- Bedrock: support cross-account AssumeRole credential provider by @amjosuesanchez in #566
- Add summarize macro for text summarization by @pushpak1300 in #800
- Add human-in-the-loop by @pushpak1300 in #773
- Store conversation participants polymorphically by @pushpak1300 in #795
Release notes
Open source →- Add Rector and Laravel Rector, apply automated refactors by @pushpak1300 in https://github.com/laravel/ai/pull/784
- Support multimodal for Gemini and VoyageAI by @paulinevos in https://github.com/laravel/ai/pull/798
- Bedrock: support cross-account AssumeRole credential provider by @amjosuesanchez in https://github.com/laravel/ai/pull/566
- Add summarize macro for text summarization by @pushpak1300 in https://github.com/laravel/ai/pull/800
- Add human-in-the-loop by @pushpak1300 in https://github.com/laravel/ai/pull/773
- Store conversation participants polymorphically by @pushpak1300 in https://github.com/laravel/ai/pull/795
-
v0.9.114 Jul 2026Release notes
Open source →What's Changed
- Remove dead dall-e-3 image integration dataset by @mrdzen in #779
- Forward attachment provider options to OpenAI text generation requests by @mrdzen in #768
- Add tool choice support for Gemini, OpenAI, and Anthropic by @JVillator0 in #780
- Add tests for the image portrait and custom size helpers by @dfinchenko in #783
- Add interactive agent console command for the workbench by @pushpak1300 in #786
- Add web fetch tool coverage for the Anthropic provider by @dfinchenko in #792
- [0.x] Validate blank base64 input consistently across file classes by @Button99 in #788
- Add coverage for iterating the embeddings response by @dfinchenko in #790
- Add web search user location coverage for the Anthropic provider by @dfinchenko in #791
- Fix
TextDelta::combineglues multi-step streamed text together mid-sentence by @crishoj in #789 - Fix empty Bedrock stream content blocks by @iAmKevinMcKee in #785
New Contributors
- @crishoj made their first contribution in #789
- @iAmKevinMcKee made their first contribution in #785
Full Changelog: v0.9.0...v0.9.1
Release notes
Open source →What's Changed
- Remove dead dall-e-3 image integration dataset by @mrdzen in https://github.com/laravel/ai/pull/779
- Forward attachment provider options to OpenAI text generation requests by @mrdzen in https://github.com/laravel/ai/pull/768
- Add tool choice support for Gemini, OpenAI, and Anthropic by @JVillator0 in https://github.com/laravel/ai/pull/780
- Add tests for the image portrait and custom size helpers by @dfinchenko in https://github.com/laravel/ai/pull/783
- Add interactive agent console command for the workbench by @pushpak1300 in https://github.com/laravel/ai/pull/786
- Add web fetch tool coverage for the Anthropic provider by @dfinchenko in https://github.com/laravel/ai/pull/792
- [0.x] Validate blank base64 input consistently across file classes by @Button99 in https://github.com/laravel/ai/pull/788
- Add coverage for iterating the embeddings response by @dfinchenko in https://github.com/laravel/ai/pull/790
- Add web search user location coverage for the Anthropic provider by @dfinchenko in https://github.com/laravel/ai/pull/791
- Fix
TextDelta::combineglues multi-step streamed text together mid-sentence by @crishoj in https://github.com/laravel/ai/pull/789 - Fix empty Bedrock stream content blocks by @iAmKevinMcKee in https://github.com/laravel/ai/pull/785
New Contributors
- @crishoj made their first contribution in https://github.com/laravel/ai/pull/789
- @iAmKevinMcKee made their first contribution in https://github.com/laravel/ai/pull/785
Full Changelog: https://github.com/laravel/ai/compare/v0.9.0...v0.9.1
-
v0.9.007 Jul 2026Release notes
Open source →Upgrade guide: https://github.com/laravel/ai/blob/0.x/UPGRADE.md
- Add missing return type generics to embeddings and reranking responses by @dfinchenko in #701
- Allow disabling the embeddings cache per request by @pushpak1300 in #706
- Bump shivammathur/setup-php from 2.37.1 to 2.37.2 in the github-actions group by @dependabot[bot] in #708
- Use native Anthropic structured outputs by default by @paix26875 in #707
- Add collection generics to TextResponse properties by @dfinchenko in #709
- Merge all plain-object anyOf branches instead of keeping only the first by @pushpak1300 in #703
- Add file and store support for Azure OpenAI by @markusjwetzel in #676
- Add collection generics to AssistantMessage toolCalls by @dfinchenko in #720
- Extract recursive tool loop into TextGenerationLoop and convert OpenAI by @vinitkadam03 in #652
- Add collection generics to ToolResultMessage toolResults by @dfinchenko in #735
- Migrate Anthropic gateway to StepTextGateway via TextGenerationLoop by @vinitkadam03 in #726
- Migrate xAI gateway to StepTextGateway via TextGenerationLoop by @vinitkadam03 in #728
- Migrate Groq gateway to StepTextGateway via TextGenerationLoop by @pushpak1300 in #729
- Convert Ollama text gateway to TextGenerationLoop by @pushpak1300 in #730
- Convert DeepSeek to TextGenerationLoop and StepTextGateway by @pushpak1300 in #731
- Convert Gemini gateway to the shared TextGenerationLoop by @pushpak1300 in #732
- Convert OpenRouter text gateway to TextGenerationLoop by @pushpak1300 in #733
- Convert Mistral to TextGenerationLoop by @pushpak1300 in #736
- Migrate Bedrock text gateway onto TextGenerationLoop by @pushpak1300 in #734
- Support native anyOf schemas by @dbpolito in #710
- Inline single-use step traits into Gemini and OpenRouter gateways by @pushpak1300 in #741
- Add collection generics to streamed agent response events by @dfinchenko in #744
- Add collection generics to image, transcription, and meta responses by @dfinchenko in #745
- Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group by @dependabot[bot] in #747
- Route top-level Ollama provider options out of the options object by @cjmcintyre in #722
- Remove redundant global use statements in OpenRouter transcription test by @pushpak1300 in #751
- Add withProviderOptions() to storable files by @mohali-id in #717
- Add filesystem tools for AI agents by @pushpak1300 in #651
- Fix stored tool conversation replay order by @gracjankubicki in #621
- fix: strip markdown code fences from structured output before decoding by @vaishnavyogesh in #754
- Add web search and citation support to OpenRouterProvider by @pietervanleuven in #738
- Default Anthropic text model to Claude Sonnet 5 by @pushpak1300 in #756
- Standardize withProviderOptions across the provider option API by @pushpak1300 in #753
- Add Workbench setup with a chat example for manual testing by @pushpak1300 in #762
- Fix OpenRouter test for new provider options API by @mrdzen in #766
- Add configurable OpenAI-compatible provider by @pushpak1300 in #742
- Add WithoutBroadcasting attribute to skip oversized stream events by @pushpak1300 in #752
- Support PHPStan static analysis at level 2 by @pushpak1300 in #755
- Remove TextGateway contract in favor of StepTextGateway by @pushpak1300 in #743
Full Changelog: v0.8.1...v0.9.0
Release notes
Open source →- Add missing return type generics to embeddings and reranking responses by @dfinchenko in https://github.com/laravel/ai/pull/701
- Allow disabling the embeddings cache per request by @pushpak1300 in https://github.com/laravel/ai/pull/706
- Bump shivammathur/setup-php from 2.37.1 to 2.37.2 in the github-actions group by @dependabot[bot] in https://github.com/laravel/ai/pull/708
- Use native Anthropic structured outputs by default by @paix26875 in https://github.com/laravel/ai/pull/707
- Add collection generics to TextResponse properties by @dfinchenko in https://github.com/laravel/ai/pull/709
- Merge all plain-object anyOf branches instead of keeping only the first by @pushpak1300 in https://github.com/laravel/ai/pull/703
- Add file and store support for Azure OpenAI by @markusjwetzel in https://github.com/laravel/ai/pull/676
- Add collection generics to AssistantMessage toolCalls by @dfinchenko in https://github.com/laravel/ai/pull/720
- Extract recursive tool loop into TextGenerationLoop and convert OpenAI by @vinitkadam03 in https://github.com/laravel/ai/pull/652
- Add collection generics to ToolResultMessage toolResults by @dfinchenko in https://github.com/laravel/ai/pull/735
- Migrate Anthropic gateway to StepTextGateway via TextGenerationLoop by @vinitkadam03 in https://github.com/laravel/ai/pull/726
- Migrate xAI gateway to StepTextGateway via TextGenerationLoop by @vinitkadam03 in https://github.com/laravel/ai/pull/728
- Migrate Groq gateway to StepTextGateway via TextGenerationLoop by @pushpak1300 in https://github.com/laravel/ai/pull/729
- Convert Ollama text gateway to TextGenerationLoop by @pushpak1300 in https://github.com/laravel/ai/pull/730
- Convert DeepSeek to TextGenerationLoop and StepTextGateway by @pushpak1300 in https://github.com/laravel/ai/pull/731
- Convert Gemini gateway to the shared TextGenerationLoop by @pushpak1300 in https://github.com/laravel/ai/pull/732
- Convert OpenRouter text gateway to TextGenerationLoop by @pushpak1300 in https://github.com/laravel/ai/pull/733
- Convert Mistral to TextGenerationLoop by @pushpak1300 in https://github.com/laravel/ai/pull/736
- Migrate Bedrock text gateway onto TextGenerationLoop by @pushpak1300 in https://github.com/laravel/ai/pull/734
- Support native anyOf schemas by @dbpolito in https://github.com/laravel/ai/pull/710
- Inline single-use step traits into Gemini and OpenRouter gateways by @pushpak1300 in https://github.com/laravel/ai/pull/741
- Add collection generics to streamed agent response events by @dfinchenko in https://github.com/laravel/ai/pull/744
- Add collection generics to image, transcription, and meta responses by @dfinchenko in https://github.com/laravel/ai/pull/745
- Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group by @dependabot[bot] in https://github.com/laravel/ai/pull/747
- Route top-level Ollama provider options out of the options object by @cjmcintyre in https://github.com/laravel/ai/pull/722
- Remove redundant global use statements in OpenRouter transcription test by @pushpak1300 in https://github.com/laravel/ai/pull/751
- Add withProviderOptions() to storable files by @mohali-id in https://github.com/laravel/ai/pull/717
- Add filesystem tools for AI agents by @pushpak1300 in https://github.com/laravel/ai/pull/651
- Fix stored tool conversation replay order by @gracjankubicki in https://github.com/laravel/ai/pull/621
- fix: strip markdown code fences from structured output before decoding by @vaishnavyogesh in https://github.com/laravel/ai/pull/754
- Add web search and citation support to OpenRouterProvider by @pietervanleuven in https://github.com/laravel/ai/pull/738
- Default Anthropic text model to Claude Sonnet 5 by @pushpak1300 in https://github.com/laravel/ai/pull/756
- Standardize withProviderOptions across the provider option API by @pushpak1300 in https://github.com/laravel/ai/pull/753
- Add Workbench setup with a chat example for manual testing by @pushpak1300 in https://github.com/laravel/ai/pull/762
- Fix OpenRouter test for new provider options API by @mrdzen in https://github.com/laravel/ai/pull/766
- Add configurable OpenAI-compatible provider by @pushpak1300 in https://github.com/laravel/ai/pull/742
- Add WithoutBroadcasting attribute to skip oversized stream events by @pushpak1300 in https://github.com/laravel/ai/pull/752
- Support PHPStan static analysis at level 2 by @pushpak1300 in https://github.com/laravel/ai/pull/755
- Remove TextGateway contract in favor of StepTextGateway by @pushpak1300 in https://github.com/laravel/ai/pull/743
Full Changelog: https://github.com/laravel/ai/compare/v0.8.1...v0.9.0
-
v0.8.110 Jun 2026Release notes
Open source →What's Changed
- Normalize MCP tool schemas into the deserializable JSON Schema subset by @pushpak1300 in #696
Full Changelog: v0.8.0...v0.8.1
Release notes
Open source →What's Changed
- Normalize MCP tool schemas into the deserializable JSON Schema subset by @pushpak1300 in https://github.com/laravel/ai/pull/696
Full Changelog: https://github.com/laravel/ai/compare/v0.8.0...v0.8.1
-
v0.8.008 Jun 2026Release notes
Open source →What's Changed
- Fix Mistral transcription requests by @NoelDeMartin in #671
- Bedrock support for remote s3 document by @dumbbellcode in #476
- Migrate OpenAI web_search_preview to web_search with provider options by @SergiiKhrystenko in #662
- Add Dependabot cooldown of 5 days by @nunomaduro in #685
- Enable Dependabot auto-merge by @nunomaduro in #687
- Add
containsmethod toQueuedAgentPromptby @balboacodes in #678 - Recursively remove additionalProperties for Gemini tools by @Edward144 in #682
- Fix transcription usage mapping for output tokens by @Anoop-Kadachi in #637
- Fix ImageResponse::toHtml() data URI when image mime is null by @Anoop-Kadachi in #677
- Pass the original prompt to AgentStreamed when a stream is short-circuited by @FayazK in #684
- Omit null header and multipart values for Laravel 13 compatibility by @pushpak1300 in #688
- Add MCP client and server tool support by @pushpak1300 in #655
- Bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions group by @dependabot[bot] in #692
- Support OpenAI Zero Data Retention via encrypted reasoning by @Junveloper in #622
New Contributors
- @SergiiKhrystenko made their first contribution in #662
- @balboacodes made their first contribution in #678
- @Edward144 made their first contribution in #682
- @FayazK made their first contribution in #684
Full Changelog: v0.7.2...v0.8.0
Release notes
Open source →What's Changed
- Fix Mistral transcription requests by @NoelDeMartin in https://github.com/laravel/ai/pull/671
- Bedrock support for remote s3 document by @dumbbellcode in https://github.com/laravel/ai/pull/476
- Migrate OpenAI web_search_preview to web_search with provider options by @SergiiKhrystenko in https://github.com/laravel/ai/pull/662
- Add Dependabot cooldown of 5 days by @nunomaduro in https://github.com/laravel/ai/pull/685
- Enable Dependabot auto-merge by @nunomaduro in https://github.com/laravel/ai/pull/687
- Add
containsmethod toQueuedAgentPromptby @balboacodes in https://github.com/laravel/ai/pull/678 - Recursively remove additionalProperties for Gemini tools by @Edward144 in https://github.com/laravel/ai/pull/682
- Fix transcription usage mapping for output tokens by @Anoop-Kadachi in https://github.com/laravel/ai/pull/637
- Fix ImageResponse::toHtml() data URI when image mime is null by @Anoop-Kadachi in https://github.com/laravel/ai/pull/677
- Pass the original prompt to AgentStreamed when a stream is short-circuited by @FayazK in https://github.com/laravel/ai/pull/684
- Omit null header and multipart values for Laravel 13 compatibility by @pushpak1300 in https://github.com/laravel/ai/pull/688
- Add MCP client and server tool support by @pushpak1300 in https://github.com/laravel/ai/pull/655
- Bump actions/checkout from 6.0.2 to 6.0.3 in the github-actions group by @dependabot[bot] in https://github.com/laravel/ai/pull/692
- Support OpenAI Zero Data Retention via encrypted reasoning by @Junveloper in https://github.com/laravel/ai/pull/622
New Contributors
- @SergiiKhrystenko made their first contribution in https://github.com/laravel/ai/pull/662
- @balboacodes made their first contribution in https://github.com/laravel/ai/pull/678
- @Edward144 made their first contribution in https://github.com/laravel/ai/pull/682
- @FayazK made their first contribution in https://github.com/laravel/ai/pull/684
Full Changelog: https://github.com/laravel/ai/compare/v0.7.2...v0.8.0
-
v0.7.228 May 2026Release notes
Open source →What's Changed
- Revert "Apply model attribute and explicit model to all providers in a failover list" by @taylorotwell in #667
- Set claude-opus-4-8 as Anthropic's smartest text model by @pushpak1300 in #670
Full Changelog: v0.7.1...v0.7.2
Release notes
Open source →What's Changed
- Revert "Apply model attribute and explicit model to all providers in a failover list" by @taylorotwell in https://github.com/laravel/ai/pull/667
- Set claude-opus-4-8 as Anthropic's smartest text model by @pushpak1300 in https://github.com/laravel/ai/pull/670
Full Changelog: https://github.com/laravel/ai/compare/v0.7.1...v0.7.2
-
v0.7.126 May 2026Release notes
Open source →What's Changed
- Set gemini-3.5-flash as Gemini's smartest text model by @pushpak1300 in https://github.com/laravel/ai/pull/640
- BedrockTextGateway: Add cache usage by @liambenson in https://github.com/laravel/ai/pull/642
- Set invocation id on fake stream events by @Anoop-Kadachi in https://github.com/laravel/ai/pull/635
- Apply model attribute and explicit model to all providers in a failover list by @sumaiazaman in https://github.com/laravel/ai/pull/633
- Add JSON_UNESCAPED_UNICODE to schema instruction encoding by @sumaiazaman in https://github.com/laravel/ai/pull/644
- Updates deprecated gemini model to successor by @nicolasbuch in https://github.com/laravel/ai/pull/657
- Fix Gemini image generation when text part precedes image data by @pushpak1300 in https://github.com/laravel/ai/pull/658
- Update deprecated Gemini default to gemini-3.5-flash by @pushpak1300 in https://github.com/laravel/ai/pull/661
New Contributors
- @liambenson made their first contribution in https://github.com/laravel/ai/pull/642
- @nicolasbuch made their first contribution in https://github.com/laravel/ai/pull/657
Full Changelog: https://github.com/laravel/ai/compare/v0.7.0...v0.7.1
-
v0.7.019 May 2026Release notes
Open source →- Reject empty reranking document lists by @Anoop-Kadachi in https://github.com/laravel/ai/pull/563
- Support closure provider options in queued embeddings by @Anoop-Kadachi in https://github.com/laravel/ai/pull/562
- Add PHPStan by @pushpak1300 in https://github.com/laravel/ai/pull/554
- Make OpenAI strict mode opt-in via Strict attribute by @pushpak1300 in https://github.com/laravel/ai/pull/530
- Add providerOptions to Transcription API by @ihxnnxs in https://github.com/laravel/ai/pull/31
- Validate empty inputs across generation entry points by @Anoop-Kadachi in https://github.com/laravel/ai/pull/564
- Add CHANGELOG and update-changelog workflow by @pushpak1300 in https://github.com/laravel/ai/pull/567
- Add unit test for Strict attribute by @mosabbirrakib in https://github.com/laravel/ai/pull/570
- Add test for Anthropic 529 overloaded response by @mosabbirrakib in https://github.com/laravel/ai/pull/574
- Document @throws on Image::of() and Embeddings::for() by @mosabbirrakib in https://github.com/laravel/ai/pull/576
- Add test for structured agent without Strict sends strict false by @mosabbirrakib in https://github.com/laravel/ai/pull/573
- Add unit test for HandlesFailoverErrors trait by @mosabbirrakib in https://github.com/laravel/ai/pull/572
- Add tests for Anthropic insufficient credits patterns by @mosabbirrakib in https://github.com/laravel/ai/pull/575
- Retrieve conversation list from ConversationStore and agent trait by @barryvdh in https://github.com/laravel/ai/pull/236
- Pin GitHub Actions to commit SHAs and add Dependabot config by @joetannenbaum in https://github.com/laravel/ai/pull/579
- Add generic types to conversation model relationships by @mosabbirrakib in https://github.com/laravel/ai/pull/582
- Document @throws on AzureOpenAiGateway::generateImage() by @mosabbirrakib in https://github.com/laravel/ai/pull/585
- Respect configured database connection in Conversation and ConversationMessage models by @sumaiazaman in https://github.com/laravel/ai/pull/589
- Reject blank or non-string embeddings inputs by @Anoop-Kadachi in https://github.com/laravel/ai/pull/590
- Consistent provider key resolution in provider options by @dumbbellcode in https://github.com/laravel/ai/pull/586
- Use consistent X generation wording by @mosabbirrakib in https://github.com/laravel/ai/pull/584
- Reject blank or non-string reranking documents by @Anoop-Kadachi in https://github.com/laravel/ai/pull/591
- Rehydrate attachments when loading conversation history by @sumaiazaman in https://github.com/laravel/ai/pull/587
- Reject blank model or column in SimilaritySearch::usingModel by @Anoop-Kadachi in https://github.com/laravel/ai/pull/592
- Reject blank image size and quality by @Anoop-Kadachi in https://github.com/laravel/ai/pull/593
- Document @throws RuntimeException on file content() methods by @mosabbirrakib in https://github.com/laravel/ai/pull/601
- Revert "Reject blank image size and quality" by @pushpak1300 in https://github.com/laravel/ai/pull/603
- Reject blank path in LocalDocument and StoredDocument constructors by @mosabbirrakib in https://github.com/laravel/ai/pull/600
- Add tests for blank file path constructor validation by @Anoop-Kadachi in https://github.com/laravel/ai/pull/604
- Bump PHPStan to level 1 and fix type errors by @pushpak1300 in https://github.com/laravel/ai/pull/608
- Throw InsufficientCreditsException for OpenRouter and DeepSeek credit errors by @sumaiazaman in https://github.com/laravel/ai/pull/606
- Capture missing usage details across OpenAI-shaped providers by @sumaiazaman in https://github.com/laravel/ai/pull/610
- Bump shivammathur/setup-php from 2.37.0 to 2.37.1 in the github-actions group by @dependabot[bot] in https://github.com/laravel/ai/pull/615
- Reject blank URL in RemoteDocument, RemoteImage, and RemoteAudio constructors by @sumaiazaman in https://github.com/laravel/ai/pull/613
- Pass
providerOptionsthrough to Bedrock Converse and capture reasoning content by @Junveloper in https://github.com/laravel/ai/pull/611 - Remove image+text restriction on openrouter image generation by @Themodem in https://github.com/laravel/ai/pull/595
- Document @throws LogicException on OpenAiGateway::generateTranscription by @mosabbirrakib in https://github.com/laravel/ai/pull/626
-
v0.6.811 May 2026Release notes
Open source →- Delete update-changelog.yml by @pushpak1300 in https://github.com/laravel/ai/pull/525
- Add error handling tests for VoyageAI reranking by @mosabbirrakib in https://github.com/laravel/ai/pull/527
- Add error handling tests for OpenAI image generation by @mosabbirrakib in https://github.com/laravel/ai/pull/528
- Add error handling tests for VoyageAI embeddings by @mosabbirrakib in https://github.com/laravel/ai/pull/526
- Handle Anthropic pause_turn server-tool continuations by @CodeWrap in https://github.com/laravel/ai/pull/493
- Add sub-agent support as tools by @JVillator0 in https://github.com/laravel/ai/pull/348
- Make conversation/message table names configurable by @timmcleod in https://github.com/laravel/ai/pull/484
- Add error handling tests for image generation (Gemini, AzureOpenAI, OpenRouter) by @mdalikadar in https://github.com/laravel/ai/pull/545
- Add rate limit and overloaded error tests for ElevenLabs audio by @mosabbirrakib in https://github.com/laravel/ai/pull/542
- Add rate limit and overloaded error tests for Cohere reranking by @mosabbirrakib in https://github.com/laravel/ai/pull/540
- Add rate limit and overloaded error tests for Jina reranking by @mosabbirrakib in https://github.com/laravel/ai/pull/541
- Add tests for Gemini image generation safety blocks by @mosabbirrakib in https://github.com/laravel/ai/pull/547
- Add error handling tests for embeddings (OpenAI, Gemini) by @mdalikadar in https://github.com/laravel/ai/pull/546
- Fix parameter name in GeneratesEmbeddings PHPDoc by @mosabbirrakib in https://github.com/laravel/ai/pull/549
- Remove stale @param and unused Request import in Vercel protocol trait by @mosabbirrakib in https://github.com/laravel/ai/pull/551
- Fix nonexistent ImageAttachment type in image-related PHPDoc by @mosabbirrakib in https://github.com/laravel/ai/pull/550
- Add error handling tests for AzureOpenAI image generation by @mosabbirrakib in https://github.com/laravel/ai/pull/537
- Mark nullable size and quality docblocks across image gateways by @mosabbirrakib in https://github.com/laravel/ai/pull/552
- Broadcast stream_failed event when BroadcastAgent job fails by @sumaiazaman in https://github.com/laravel/ai/pull/536
- Gemini context cache support via cachedContent param in agent provider options by @dumbbellcode in https://github.com/laravel/ai/pull/556
- Fix: DeepSeek 400 Bad Request on multi-turn tool-calls by preserving
reasoning_contentby @k1rana in https://github.com/laravel/ai/pull/534 - OpenRouter TTS and STT support by @ondrejehrlich in https://github.com/laravel/ai/pull/559
- Support provider options in embeddings by @dumbbellcode in https://github.com/laravel/ai/pull/555
- Enable failover during stream iteration by @kachelle in https://github.com/laravel/ai/pull/279
-
v0.6.707 May 2026Release notes
Open source →What's Changed
- Add coding standards workflow by @pushpak1300 in https://github.com/laravel/ai/pull/487
- Bind AiManager as singleton to preserve driver extensions across jobs by @ejtmicroventures in https://github.com/laravel/ai/pull/411
- fix(anthropic): preserve provider content blocks on assistant replay (refs #298) by @CodeWrap in https://github.com/laravel/ai/pull/392
- Drop redundant tool_config from Gemini text requests by @pushpak1300 in https://github.com/laravel/ai/pull/490
- Update AssistantMessage.php by @pushpak1300 in https://github.com/laravel/ai/pull/491
- Add GitHub community health files and workflows by @pushpak1300 in https://github.com/laravel/ai/pull/488
- Add error handling tests for Mistral embeddings by @sumaiazaman in https://github.com/laravel/ai/pull/495
- Add error handling tests for Ollama embeddings by @sumaiazaman in https://github.com/laravel/ai/pull/496
- Add diarize and error handling tests for Mistral transcription by @sumaiazaman in https://github.com/laravel/ai/pull/494
- Add error handling tests for Azure OpenAI embeddings by @sumaiazaman in https://github.com/laravel/ai/pull/497
- Add error handling tests for OpenAI transcription by @sumaiazaman in https://github.com/laravel/ai/pull/501
- Add error handling tests for OpenRouter embeddings by @sumaiazaman in https://github.com/laravel/ai/pull/498
- Add error handling tests for xAI image generation by @sumaiazaman in https://github.com/laravel/ai/pull/502
- Add toArray and jsonSerialize to StructuredStep by @plusemon in https://github.com/laravel/ai/pull/504
- Bedrock : support Base64 image for BedrockTextGateway by @DenneulinThomas in https://github.com/laravel/ai/pull/500
- [0.x] Add image generation support to AzureOpenAiProvider by @maherelgamil in https://github.com/laravel/ai/pull/505
- Fix OpenAI citation deduplication by URL by @Anoop-Kadachi in https://github.com/laravel/ai/pull/509
- Remove URL overrides from providers that rarely need them by @pushpak1300 in https://github.com/laravel/ai/pull/492
- Preserve OpenAI url citation span indices and stop deduping by @pushpak1300 in https://github.com/laravel/ai/pull/510
- Add Gemini TTS and STT support by @allurco in https://github.com/laravel/ai/pull/81
- Allow configuring the database connection for DatabaseConversationStore by @sumaiazaman in https://github.com/laravel/ai/pull/469
- Align xAI URL citations with OpenAI response parsing by @Anoop-Kadachi in https://github.com/laravel/ai/pull/513
- Add missing type declaration to ToolResult $result property by @mahfuz-rahman007 in https://github.com/laravel/ai/pull/518
- Test Anthropic streaming tool_use finish reason without tool blocks by @Anoop-Kadachi in https://github.com/laravel/ai/pull/515
- Add missing type hint to $quality parameter in defaultImageOptions by @mahfuz-rahman007 in https://github.com/laravel/ai/pull/516
- Add missing parameter name in EmbeddingsResponse PHPDoc by @mahfuz-rahman007 in https://github.com/laravel/ai/pull/517
- Add config option to disable LLM-generated conversation titles by @sumaiazaman in https://github.com/laravel/ai/pull/474
- Sync conversation metadata after streamed responses by @dhrupo in https://github.com/laravel/ai/pull/434
- Expand streaming finish-reason parity coverage across providers by @Anoop-Kadachi in https://github.com/laravel/ai/pull/521
- Expand OpenAI-family streaming finish reason parity tests by @Anoop-Kadachi in https://github.com/laravel/ai/pull/523
New Contributors
- @ejtmicroventures made their first contribution in https://github.com/laravel/ai/pull/411
- @plusemon made their first contribution in https://github.com/laravel/ai/pull/504
- @DenneulinThomas made their first contribution in https://github.com/laravel/ai/pull/500
- @Anoop-Kadachi made their first contribution in https://github.com/laravel/ai/pull/509
- @allurco made their first contribution in https://github.com/laravel/ai/pull/81
- @mahfuz-rahman007 made their first contribution in https://github.com/laravel/ai/pull/518
- @dhrupo made their first contribution in https://github.com/laravel/ai/pull/434
Full Changelog: https://github.com/laravel/ai/compare/v0.6.6...v0.6.7
-
v0.6.602 May 2026Release notes
Open source →What's Changed
- Add transcription feature tests for OpenAI provider by @sumaiazaman in https://github.com/laravel/ai/pull/468
- Add audio feature tests for OpenAI provider by @sumaiazaman in https://github.com/laravel/ai/pull/471
- Fix reasoning data lost when restoring conversation history by @Cbrad24 in https://github.com/laravel/ai/pull/301
- Add top_p configuration option for text generation requests by @Duetro in https://github.com/laravel/ai/pull/306
- Allow tools to declare their name dynamically by @seankndy in https://github.com/laravel/ai/pull/420
- feat: enhance assistant message mapping and extend tool call attributes by @mohali-id in https://github.com/laravel/ai/pull/461
- Pass through provider specific Gemini image aspect ratios by @morcken in https://github.com/laravel/ai/pull/282
- Add image generation support to OpenRouterProvider by @billyfranklim1 in https://github.com/laravel/ai/pull/333
- Throw helpful error when ai.default config is an array by @JoshSalway in https://github.com/laravel/ai/pull/327
- [0.x] Fix conversational message iterable handling in text generation by @Button99 in https://github.com/laravel/ai/pull/345
- Surface usage tokens in OpenAI and Gemini image responses by @maherelgamil in https://github.com/laravel/ai/pull/482
- Reindex tool calls and results before persisting to prevent JSON object encoding by @sumaiazaman in https://github.com/laravel/ai/pull/473
New Contributors
- @Cbrad24 made their first contribution in https://github.com/laravel/ai/pull/301
- @Duetro made their first contribution in https://github.com/laravel/ai/pull/306
- @seankndy made their first contribution in https://github.com/laravel/ai/pull/420
- @mohali-id made their first contribution in https://github.com/laravel/ai/pull/461
- @morcken made their first contribution in https://github.com/laravel/ai/pull/282
- @billyfranklim1 made their first contribution in https://github.com/laravel/ai/pull/333
- @JoshSalway made their first contribution in https://github.com/laravel/ai/pull/327
Full Changelog: https://github.com/laravel/ai/compare/v0.6.5...v0.6.6
-
v0.6.529 Apr 2026Release notes
Open source →What's Changed
- fix(bedrock): bedrock converse API parameter edge cases by @dumbbellcode in https://github.com/laravel/ai/pull/463
- fix(bedrock): incorrect name format in user attachments for bedrock provider by @dumbbellcode in https://github.com/laravel/ai/pull/465
- fix(bedrock): silent tool call failures by @dumbbellcode in https://github.com/laravel/ai/pull/464
- Support configurable base URL for Jina provider by @sumaiazaman in https://github.com/laravel/ai/pull/470
- Support configurable base URL for ElevenLabs provider by @sumaiazaman in https://github.com/laravel/ai/pull/472
- Add embedding feature tests for OpenAI provider by @sumaiazaman in https://github.com/laravel/ai/pull/467
- fix(openai, anthropic): cast empty tool args to object by @CodeWrap in https://github.com/laravel/ai/pull/419
Full Changelog: https://github.com/laravel/ai/compare/v0.6.4...v0.6.5
-
v0.6.428 Apr 2026Release notes
Open source →What's Changed
- Add tool mapping test suite for DeepSeek provider by @sumaiazaman in https://github.com/laravel/ai/pull/440
- Add provider options test suite for DeepSeek provider by @sumaiazaman in https://github.com/laravel/ai/pull/439
- Add message mapping test suite for DeepSeek provider by @sumaiazaman in https://github.com/laravel/ai/pull/438
- Fix duplicate helper function causing fatal test bootstrap error by @pushpak1300 in https://github.com/laravel/ai/pull/443
- use getter functions in toArray method of file classes by @GigaGiorgadze in https://github.com/laravel/ai/pull/436
- fix: detect LocalImage MIME type across native gateways by @maherelgamil in https://github.com/laravel/ai/pull/430
- fix: only send explicitly set image options in OpenAI provider by @navneetkumar-pim-webkul in https://github.com/laravel/ai/pull/415
- Add toAudio macro to Stringable by @nhedger in https://github.com/laravel/ai/pull/264
- Adding agent methods for text generation options by @MaestroError in https://github.com/laravel/ai/pull/198
- Add configurable URL support and base URL tests for Cohere provider by @sumaiazaman in https://github.com/laravel/ai/pull/452
- Add error handling feature tests for ElevenLabs, Cohere, Jina, and VoyageAi by @sumaiazaman in https://github.com/laravel/ai/pull/448
- Add image generation feature tests for xAI provider by @sumaiazaman in https://github.com/laravel/ai/pull/447
- Add embedding feature tests for Gemini provider by @sumaiazaman in https://github.com/laravel/ai/pull/450
- Add base URL feature tests for VoyageAi provider by @sumaiazaman in https://github.com/laravel/ai/pull/451
- Align Bedrock image and error handling with AWS API by @pushpak1300 in https://github.com/laravel/ai/pull/442
- Add image generation feature tests for Gemini provider by @sumaiazaman in https://github.com/laravel/ai/pull/449
- fix(bedrock): bedrock text gateway response messages and steps by @dumbbellcode in https://github.com/laravel/ai/pull/458
- fix(bedrock): correct default model IDs by @catatsumuri in https://github.com/laravel/ai/pull/460
New Contributors
- @GigaGiorgadze made their first contribution in https://github.com/laravel/ai/pull/436
- @navneetkumar-pim-webkul made their first contribution in https://github.com/laravel/ai/pull/415
- @MaestroError made their first contribution in https://github.com/laravel/ai/pull/198
- @dumbbellcode made their first contribution in https://github.com/laravel/ai/pull/458
- @catatsumuri made their first contribution in https://github.com/laravel/ai/pull/460
Full Changelog: https://github.com/laravel/ai/compare/v0.6.3...v0.6.4
-
v0.6.322 Apr 2026Release notes
Open source →- fix(gateway): fix DeepSeek usage stats by @aaronlei in https://github.com/laravel/ai/pull/435
- Add agent fake test suite for DeepSeek provider by @sumaiazaman in https://github.com/laravel/ai/pull/437
- Bedrock provider by @tott in https://github.com/laravel/ai/pull/270
-
v0.6.221 Apr 2026 -
v0.6.121 Apr 2026Release notes
Open source →- Add HandlesFailoverErrors to VoyageAiGateway by @sumaiazaman in https://github.com/laravel/ai/pull/424
- Add HandlesFailoverErrors to CohereGateway and JinaGateway by @sumaiazaman in https://github.com/laravel/ai/pull/423
- Add test suite for CohereProvider (embeddings and reranking) by @maherelgamil in https://github.com/laravel/ai/pull/425
- Add test suite for ElevenLabsProvider (audio and transcription) by @maherelgamil in https://github.com/laravel/ai/pull/426
- Memoize ElevenLabs gateway instances by @maherelgamil in https://github.com/laravel/ai/pull/427
- Add test suite for JinaProvider (embeddings and reranking) by @maherelgamil in https://github.com/laravel/ai/pull/418
- Remove redundant match expressions in ElevenLabsGateway by @sumaiazaman in https://github.com/laravel/ai/pull/422
- Apply Files::put(name:) override to StorableFile inputs by @maherelgamil in https://github.com/laravel/ai/pull/428
- Remove unused prism-php/prism dependency by @pushpak1300 in https://github.com/laravel/ai/pull/414
- [0.x] Add timeout parameter to Agent contract by @Tiagospem in https://github.com/laravel/ai/pull/412
-
v0.6.016 Apr 2026Release notes
Open source →What's Changed
- fix(anthropic): cast server_tool_use.input to object by @CodeWrap in https://github.com/laravel/ai/pull/389
- Fix Mistral transcription with diarize() by @NoelDeMartin in https://github.com/laravel/ai/pull/385
- [0.x] Add feature tests into CI by @jackbayliss in https://github.com/laravel/ai/pull/384
- Update StoreTest.php by @pushpak1300 in https://github.com/laravel/ai/pull/394
- Handle nullable tool parameter types for Gemini gateway by @pushpak1300 in https://github.com/laravel/ai/pull/386
- Fix HasStructuredOutput agents crashing with empty schema by @pushpak1300 in https://github.com/laravel/ai/pull/391
- Move test fixture classes and files into tests/Fixtures/ by @pushpak1300 in https://github.com/laravel/ai/pull/397
- [0.x] Fix actions deprecation warnings by @jackbayliss in https://github.com/laravel/ai/pull/401
- Add OpenRouter gateway for direct API integration by @pushpak1300 in https://github.com/laravel/ai/pull/395
- Migrate VoyageAi off Prism to native HTTP gateway by @pushpak1300 in https://github.com/laravel/ai/pull/398
- Add Ollama gateway for direct API integration by @pushpak1300 in https://github.com/laravel/ai/pull/396
- Migrate DeepSeek provider to a native gateway by @pushpak1300 in https://github.com/laravel/ai/pull/399
- Add correct finish reason to Gemini streaming text responses by @dash8x in https://github.com/laravel/ai/pull/403
- Refine document attachment mapping and parameterize agent tests by @pushpak1300 in https://github.com/laravel/ai/pull/408
- [0.x] Fix HasTools::tools() return type to accept ProviderTool by @sumaiazaman in https://github.com/laravel/ai/pull/353
- Fix structured output and tool-call handling in native gateways by @pushpak1300 in https://github.com/laravel/ai/pull/409
- Migrate AzureOpenAiProvider from Prism to dedicated gateway by @pushpak1300 in https://github.com/laravel/ai/pull/404
- Update Anthropic smartest model default to Claude Opus 4.7 by @pushpak1300 in https://github.com/laravel/ai/pull/413
New Contributors
- @CodeWrap made their first contribution in https://github.com/laravel/ai/pull/389
- @dash8x made their first contribution in https://github.com/laravel/ai/pull/403
- @sumaiazaman made their first contribution in https://github.com/laravel/ai/pull/353
Full Changelog: https://github.com/laravel/ai/compare/v0.5.1...v0.6.0
-
v0.5.110 Apr 2026Release notes
Open source →What's Changed
- Handle provider overload errors in native gateways for failover by @pushpak1300 in https://github.com/laravel/ai/pull/378
- Fix MistralProvider ignoring injected fake gateways by @pushpak1300 in https://github.com/laravel/ai/pull/375
- Migrate test suite from PHPUnit to Pest PHP by @pushpak1300 in https://github.com/laravel/ai/pull/366
- Move Gemini file and store gateways into Gemini namespace by @pushpak1300 in https://github.com/laravel/ai/pull/382
Full Changelog: https://github.com/laravel/ai/compare/v0.5.0...v0.5.1
-
v0.5.009 Apr 2026Release notes
Open source →- Fix Mistral default transcription model by @NoelDeMartin in https://github.com/laravel/ai/pull/325
- Update prism-php/prism dependency version by @rspahni in https://github.com/laravel/ai/pull/322
- Switch Gemini structured output to response_json_schema by @ipalaus in https://github.com/laravel/ai/pull/364
- Preserve configured options in tool loop follow-up requests by @pushpak1300 in https://github.com/laravel/ai/pull/363
- Add Mistral gateway for direct API integration by @pushpak1300 in https://github.com/laravel/ai/pull/368
- Add xAI gateway for Responses API by @pushpak1300 in https://github.com/laravel/ai/pull/310
- Add missing gateway tests for Groq and OpenAI providers by @pushpak1300 in https://github.com/laravel/ai/pull/370
-
v0.4.508 Apr 2026Release notes
Open source →- Fix ProviderDocument OpenAI attachment mapping by @qwertyquest in https://github.com/laravel/ai/pull/360
- Add Gemini gateway for direct API integration by @pushpak1300 in https://github.com/laravel/ai/pull/312
-
v0.4.406 Apr 2026Release notes
Open source →- Add Groq gateway for Chat Completions API by @pushpak1300 in https://github.com/laravel/ai/pull/311
- Add direct Anthropic gateway for Messages API by @pushpak1300 in https://github.com/laravel/ai/pull/309
- Fix OpenAI strict tool parameters and persist providerOptions in tool loops by @pushpak1300 in https://github.com/laravel/ai/pull/340
- Fix missing additionalProperties on nested objects in strict schemas by @pushpak1300 in https://github.com/laravel/ai/pull/357
-
v0.4.301 Apr 2026Release notes
Open source →- Apply missing providerOptions and align maxSteps in OpenAI gateway by @pushpak1300 in https://github.com/laravel/ai/pull/338
- Add missing filename to OpenAI input_file attachment mappings by @pushpak1300 in https://github.com/laravel/ai/pull/324
-
v0.4.227 Mar 2026Release notes
Open source →- fix: use correct file extension for audio transcription uploads by @radumetes in https://github.com/laravel/ai/pull/316
- [0.x] Fix type error in fileMatchingCallback when fileId is null by @Button99 in https://github.com/laravel/ai/pull/295
-
v0.4.126 Mar 2026Release notes
Open source →- Respect configured OpenAI base URL and fixes #314 by @AnnoyingTechnology in https://github.com/laravel/ai/pull/315
-
v0.4.025 Mar 2026Release notes
Open source →- Add OpenAI gateway for Responses API by @pushpak1300 in https://github.com/laravel/ai/pull/275
- Update skill Content by @pushpak1300 in https://github.com/laravel/ai/pull/287
-
v0.3.218 Mar 2026 -
v0.3.116 Mar 2026Release notes
Open source →- Update default OpenRouter text models to Anthropics 4.6 versions by @fosron in https://github.com/laravel/ai/pull/268
- [0.x] Remove redundant Collection wrapping in StreamEnd::combineUsage(). by @Button99 in https://github.com/laravel/ai/pull/272
- Add configurable timeout for audio requests by @nhedger in https://github.com/laravel/ai/pull/263
- [0.x] Fix file_get_contents() return value not handled if the file does not exist in Local file classes by @Button99 in https://github.com/laravel/ai/pull/267
-
v0.3.012 Mar 2026Release notes
Open source →- [0.x] Adjust AddsToolsToPrismRequestsTest by @jackbayliss in https://github.com/laravel/ai/pull/256
- Add configurable timeout for embedding requests by @nhedger in https://github.com/laravel/ai/pull/262
- Fix conversation leakage in RemembersConversations::forUser() by @Button99 in https://github.com/laravel/ai/pull/260
- [0.x] Create a CI test workflow by @jackbayliss in https://github.com/laravel/ai/pull/258
- [0.x] rename anonymous class helper methods to avoid Pint renaming by @jackbayliss in https://github.com/laravel/ai/pull/257
- Add failover support for insufficient credits and quota errors by @meirdick in https://github.com/laravel/ai/pull/249
- Fix missing audio file types in PrismMessages attachment conversion by @sulimanbenhalim in https://github.com/laravel/ai/pull/247
- Add embedding support for OpenRouter provider by @remcom in https://github.com/laravel/ai/pull/237
- Fix ErrorEvent property access in PrismStreamEvent by @Husseinadq in https://github.com/laravel/ai/pull/217
- fix: structured output schema definition by @ralphjsmit in https://github.com/laravel/ai/pull/252
- Add Ollama dimensions option to embeddings by @WoutervdBrink in https://github.com/laravel/ai/pull/190
- Fix tool call history not round-tripped in conversation context by @nicodevs in https://github.com/laravel/ai/pull/203
- [0.x] Add support for configuring provider options on agents by @shafimsp in https://github.com/laravel/ai/pull/166
-
v0.2.810 Mar 2026Release notes
Open source →- [0.x] Makes imports consistent by @nunomaduro in https://github.com/laravel/ai/pull/253
-
v0.2.705 Mar 2026Release notes
Open source →- refactor: add
Labenum as a type to the$providerparameter in agent methods in Agent contract. by @delabon in https://github.com/laravel/ai/pull/245 - refactor: remove the
$optionsparameter fromaddProviderToolsmethod calls by @delabon in https://github.com/laravel/ai/pull/244 - Fix StreamableAgentResponse signature to accept conversation user by @Button99 in https://github.com/laravel/ai/pull/246
- fix: pass outputDimension for VoyageAI embeddings by @markritterman in https://github.com/laravel/ai/pull/243
- Fix BroadcastAgent passing wrong response type to then() callbacks by @sulimanbenhalim in https://github.com/laravel/ai/pull/248
- refactor: add
-
v0.2.604 Mar 2026Release notes
Open source →- Rename Skill by @pushpak1300 in https://github.com/laravel/ai/pull/227
- [0.x] Allow for arrays and enum for providers in the macros by @josephkerkhof in https://github.com/laravel/ai/pull/242
- [0.x] Add Message import and @return docblock to agent stubs by @josephkerkhof in https://github.com/laravel/ai/pull/240
- Renamed image to image_size in geminiprovider according to gemini api by @Jeroen-chu in https://github.com/laravel/ai/pull/235
- [0.x] Fix middleware stub naming conflict by @mt-shihab26 in https://github.com/laravel/ai/pull/234
- Improve base URL logic to prevent double path segments by @Danni2901 in https://github.com/laravel/ai/pull/226
- Fix undefined variable $e in withModelFailover when providers array is empty by @sulimanbenhalim in https://github.com/laravel/ai/pull/221
- Fix undefined variable $e in PendingResponse failover loops by @sulimanbenhalim in https://github.com/laravel/ai/pull/225
-
v0.2.526 Feb 2026Release notes
Open source →- Revert "Fix streaming generators under Octane" by @taylorotwell in https://github.com/laravel/ai/pull/220
-
v0.2.426 Feb 2026Release notes
Open source →- [0.x] Fix missing Base64Document import in Store. by @Button99 in https://github.com/laravel/ai/pull/207
- Chore: Fix Pint issues by @delabon in https://github.com/laravel/ai/pull/196
- Fix ReasoningDelta Vercel serialization to match Prism delta events by @christopherarter in https://github.com/laravel/ai/pull/202
-
v0.2.325 Feb 2026Release notes
Open source →- Add PHP 8.3 support by @pushpak1300 in https://github.com/laravel/ai/pull/212
-
v0.2.2no dateRelease notes
Open source →- Add PHP 8.3 support by @pushpak1300 in https://github.com/laravel/ai/pull/212
-
v0.2.119 Feb 2026Release notes
Open source →- Make provider default models configurable via ai config by @pfrug in https://github.com/laravel/ai/pull/183
- Fix typo in comment for tool calls storagefix: correct typo in CanStr… by @wuwx in https://github.com/laravel/ai/pull/181
- Add support for timeouts in transcription by @NietThijmen in https://github.com/laravel/ai/pull/176
- [0.x] Add make:agent-middleware command by @mt-shihab26 in https://github.com/laravel/ai/pull/177
- [0.x] Allow nullable user IDs in conversation tables by @Button99 in https://github.com/laravel/ai/pull/175
- Update parameter name in EmbeddingProvider contract for consistency by @josephkerkhof in https://github.com/laravel/ai/pull/168
- [0.x] Add return type annotations to interfaces by @josephkerkhof in https://github.com/laravel/ai/pull/167
- Allow Lab enum for Provider attribute by @olavocneto in https://github.com/laravel/ai/pull/169
- Fix missing exception handling by @mubbi in https://github.com/laravel/ai/pull/161
- chore: document thrown exceptions by @mubbi in https://github.com/laravel/ai/pull/160
- Fix invalid Message role and null response in HandlesRateLimiting by @monayemislam in https://github.com/laravel/ai/pull/150
- chore: add return/parameter types by @mubbi in https://github.com/laravel/ai/pull/157
- [0.x] Ensure StreamEvent broadcast doesn't double prefix private channels by @jackbayliss in https://github.com/laravel/ai/pull/148
-
v0.2.018 Feb 2026 -
v0.1.512 Feb 2026 -
v0.1.412 Feb 2026Release notes
Open source →- [0.x] Fix ThinkingComplete stream event passing undefined $delta property by @jkbennemann in https://github.com/laravel/ai/pull/88
- Add missing chunking_strategy provider option for diarized transcriptions by @kachelle in https://github.com/laravel/ai/pull/87
- Return $this when calling location method in WebSearch by @lcorbett89 in https://github.com/laravel/ai/pull/84
- [0.x] Sort arguments by @lucasmichot in https://github.com/laravel/ai/pull/74
- [0x] Use new
Collectionand newStringableby @lucasmichot in https://github.com/laravel/ai/pull/73 - [0.x] Use
containsanddoesntCountainfor all assertions by @lucasmichot in https://github.com/laravel/ai/pull/70 - [0.x] Prefer
::classnotation by @lucasmichot in https://github.com/laravel/ai/pull/69 - Support user string IDs by @bensherred in https://github.com/laravel/ai/pull/66
- [0.x] Normalize
composer.jsonby @lucasmichot in https://github.com/laravel/ai/pull/68 - Add support for anonymous users by @bensherred in https://github.com/laravel/ai/pull/122
- chore(config): remove unused import from config by @monurakkaya in https://github.com/laravel/ai/pull/116
- fix: fall back to raw arguments when schema_definition key is missing by @MaximeWillinger in https://github.com/laravel/ai/pull/115
- fix: handle nullable usage in stream end events by @MaximeWillinger in https://github.com/laravel/ai/pull/114
- Add API key to provider configuration in image and audio generation by @Claudio-Emmolo in https://github.com/laravel/ai/pull/110
- Fix fromUpload() ignoring $mime parameter by @mubbi in https://github.com/laravel/ai/pull/108
- Fix PrismException::toAiException() crash by @mubbi in https://github.com/laravel/ai/pull/106
- Adds missing Tool import to stubs by @florianraith in https://github.com/laravel/ai/pull/103
- [0.x] Prefer specific PHPUnit assertions by @jackbayliss in https://github.com/laravel/ai/pull/96
- [0.x] Forward dimensions to Prism embedding requests by @alaminfirdows in https://github.com/laravel/ai/pull/97
- [0.0.x] Add array return type to
toArrayby @jackbayliss in https://github.com/laravel/ai/pull/95 - Fix AgentPrompted event null prompt when middleware short-circuits by @SanderMuller in https://github.com/laravel/ai/pull/100
- [0.x] Adjust assertEquals order by @jackbayliss in https://github.com/laravel/ai/pull/94
- Fix streaming generators under Octane by @csfh in https://github.com/laravel/ai/pull/118
- Add Reranking to Voyage AI by @eznix86 in https://github.com/laravel/ai/pull/63
- Add string representation to Provider to prevent fatal error in unsupported provider path by @boynet in https://github.com/laravel/ai/pull/142
- fix: add missing arguments fallback in PrismTool object code paths by @anilcancakir in https://github.com/laravel/ai/pull/140
- Fix docblock for transcribe() in GeneratesTranscriptions by @monayemislam in https://github.com/laravel/ai/pull/136
- Fix typos in AiManager DocBlocks by @jasim-k in https://github.com/laravel/ai/pull/129
- Fix undefined array key error in queued agent assertions by @mubbi in https://github.com/laravel/ai/pull/126
- Chore: Add unit test suite to phpunit.xml.dist by @delabon in https://github.com/laravel/ai/pull/124
- Add Azure OpenAI support by @imYashGupta in https://github.com/laravel/ai/pull/60
- Allow stream provider failover by @Button99 in https://github.com/laravel/ai/pull/135
- Add
AiProviderenum for provider identifiers by @pushpak1300 in https://github.com/laravel/ai/pull/24 - feat: add custom base URL support for AI providers by @sadhakbj in https://github.com/laravel/ai/pull/52
-
v0.1.306 Feb 2026Release notes
Open source →- Feature/deepseek integration by @ihxnnxs in https://github.com/laravel/ai/pull/29
- [0.x] Update .gitignore by @jackbayliss in https://github.com/laravel/ai/pull/43
- Fix ToolCall arguments passed as JSON string instead of array by @nickgerrer in https://github.com/laravel/ai/pull/37
- Fix/typos param order by @CaReS0107 in https://github.com/laravel/ai/pull/35
- Allow passing connection config parameters in provider configuration (#32) by @ihxnnxs in https://github.com/laravel/ai/pull/34
- Add Model attribute by @dwightwatson in https://github.com/laravel/ai/pull/57
- Support dynamic tool names via method_exists fallback by @gracjankubicki in https://github.com/laravel/ai/pull/56
- [0.x] Add VoyageAI driver by @jackbayliss in https://github.com/laravel/ai/pull/47
- [0.x] Add Mistral AI support by @jackbayliss in https://github.com/laravel/ai/pull/40
-
v0.1.205 Feb 2026 -
v0.1.105 Feb 2026Release notes
Open source →- [0.x] use
array_anyby @lucasmichot in https://github.com/laravel/ai/pull/28 - Rename index for agent conversations table by @leek in https://github.com/laravel/ai/pull/27
- [0.x] use
-
v0.1.005 Feb 2026Nothing published for this version