PackageTrack
Sign in Get early access

symfony/ai-platform

PHP library for interacting with AI platform provider.

v0.12.0 1.8M downloads/mo #1724 most downloaded on Packagist symfony/ai-platform

What this package is like to depend on

Last release 1 months ago

21 Jul 2026

Ships fairly regularly

a new release about every 3 weeks

Most releases are documented

notes for 10 of 13 stable releases

Nothing withdrawn

no release was ever pulled

8 months old

13 releases · first in 2025

11 releases in the last 12 months

see the full history below

Release timeline

11 releases · Dec 2025 to Jul 2026
2026
Release Pre-release

Releases

latest 13
  1. v0.12.0 21 Jul 2026
    Release notes

    Changelog (v0.11.0...v0.12.0)

    • feature #2317 Let the model router select the model, not just the provider (@chr-hertel)
    • feature #2336 Report malformed OpenResponses tool arguments (@fabpot)
    Open source →
  2. v0.11.0 15 Jul 2026
    Release notes

    Changelog (v0.10.0...v0.11.0)

    • feature #2290 Normalize finish_reason metadata across all bridges (@chr-hertel)
    • feature #2316 Allow attaching metadata to tools (@chr-hertel)
    • feature #2314 Allow scoping generated JSON Schema to serializer groups (@chr-hertel)
    • feature #2304 Add MessageBag::isLastMessageFrom() and use it in demo chats (@chr-hertel)
    • feature #2291 Add an exception is the response_format option looks like a class, but is not (@lyrixx)
    • feature #2281 Throw when an Anthropic stream is truncated at the max output token limit (@fabpot)
    • bug #2289 Fix parallel tool calls being dropped (@chr-hertel)
    • feature #2276 Fix #2194: expose streamed finish_reason as metadata (@ineersa)
    • bug #2254 Add queries in case the model issued multiple searches in a single call (@push-mann)
    • feature #2248 Convert OpenAI Responses built-in tool output items to typed results (@OskarStark)
    • bug #2232 Fix asObject() after partial consumption of streamed structured output (@chr-hertel)
    • feature #2116 Add streaming support for structured output (@wachterjohannes)
    • bug #2230 Always batch embeddings, drop catalog coupling (@chr-hertel)
    • feature #2224 Replace retired OpenAI DALL-E with gpt-image (rename bridge to Image, add editing) (@chr-hertel)
    • feature #2222 Add ResultConvertedEvent and ResultErrorEvent (@chr-hertel)
    • bug #2226 Fix PHPStan errors in Schema attribute and TypeInfoDescriber (@wachterjohannes)
    • feature #1463 Add support for MiniMax (@Guikingone)
    • feature #2024 Add # with SchemaProviderInterface for runtime JSON Schema fragments (@camilleislasse, @alpernuage, @chr-hertel)
    • feature #2115 Add DeferredResult::asPartialJsonStream() for streaming structured output (@wachterjohannes)
    • bug #2206 Add a retryable ServerException for transient 5xx and Anthropic overloaded errors (@fabpot)
    • feature #2212 Add multimodal tool results for Anthropic, Vertex, Bedrock (@fabpot)
    • feature #2161 Add OCR support via the /v1/ocr endpoint (@tacman, @chr-hertel)
    • feature #2123 Add Mock test provider for routing-aware, any-result-type mocks (@wachterjohannes, @chr-hertel)
    • feature #2113 Add PartialJsonParser for streaming structured output (@wachterjohannes)
    • minor #2101 Make AGENTS.md the canonical AI-agent guidance, slim CLAUDE.md (@wachterjohannes)
    • bug #2174 Move unsupported schema features to description (@valtzu)
    Open source →
  3. v0.10.0 16 Jun 2026
    Release notes

    Changelog (v0.9.0...v0.10.0)

    • bug #2170 Parse SSE streams that omit the text/event-stream content type (@fabpot)
    • feature #2185 Add MessageBag::withoutToolMessages() and use it in demo chats (@chr-hertel)
    • bug #2184 Throw ModelNotFoundException on 404 responses (@chr-hertel)
    • bug #2163 Replace malformed UTF-8 in request bodies instead of abort… (@fabpot)
    • bug #2162 Fix incomplete stream terminal events (@fabpot)
    • bug #2009 Mutate the message bag in place in SystemPromptInputProcessor / MemoryInputProcessor (@Amoifr, @chr-hertel)
    • feature #2139 Accept Model instance in Platform::invoke() (@chr-hertel)
    • feature #2117 Support cache_control on system prompt block (@4lxndr)
    • bug #2138 Fix red CI: gpt-5.5-pro capabilities mismatch and class_exists() on Validator interface (@chr-hertel)
    Open source →
  4. v0.9.0 15 May 2026
    Release notes

    Changelog (v0.8.0...v0.9.0)

    • feature #2015 Add tool-call trace metadata for ClaudeCode and Codex bridges (@wachterjohannes)
    • bug #2071 Capability insert ollama platform fix (@vkost)
    • bug #2067 Surface API error message on RateLimitExceededException (@chr-hertel)
    • bug #2033 Data Collector - Fix bug that re-throws Exception (@MolloKhan)
    • bug #2032 Fix structured output for reasoning models (@chr-hertel)
    • feature #2060 Follow-up fixes for AssistantMessage rework (@chr-hertel)
    • feature #1917 Add Support for Multiple System Messages (@MolloKhan)
    • bug #2031 Fix JSONSchema generation with CPP & @var (@HypeMC)
    • feature #2002 Validate structured output (@valtzu)
    Open source →
  5. v0.8.1 20 Apr 2026
    Release notes

    Changelog (v0.8.0...v0.8.1)

    • bug #1982 Align model catalog with official docs (@wachterjohannes)
    • bug #1981 Fix tool calls dropped (@Tiriel)
    • bug #1980 Gemini call after a tool action fail (@froozeify)
    Open source →
  6. v0.8.0 no date
    Release notes

    Changelog (v0.7.0...v0.8.0)

    • feature #1968 Expose API errors uniformly across bridges through a shared trait (@Amoifr)
    • feature #1923 Introduce Provider abstraction and model routing layer (@chr-hertel)
    • feature #1970 Add Google Maps server tool (@valtzu)
    • feature #1557 Add support for DiscriminatorMap on single polymorphic interface parameters (@aszenz)
    • feature #1896 Add speech-to-text support and update model catalog (@wachterjohannes)
    • feature #1907 Add ref to # attribute (@valtzu)
    • feature #1937 Return MultiPartResult for multi-part responses (@valtzu)
    • feature #1948 Return MultiPartResult for multi-part results (@valtzu)
    • feature #1947 Add Gemini 3 and 3.1 flash (@NielsAI)
    • feature #1900 Add MultiPartResult (@valtzu)
    • bug #1938 Fix binary result handling (@valtzu)
    • bug #1939 Fix model catalog referencing wrong bridge (@valtzu)
    Open source →
  7. v0.7.0 09 Apr 2026
    Release notes

    Changelog (v0.6.0...v0.7.0)

    • feature #1908 Add model list command and sync catalog with Bedrock API (@chr-hertel)
    • bug #1912 Fix various examples (@chr-hertel)
    • bug #1909 Add error handling to Client and LlamaResultConverter (@chr-hertel)
    • bug #1899 Revert logic of SseStream to fix Gemini and Perplexity (@chr-hertel)
    • bug #1827 Fix streaming by handling NDJSON instead of SSE (@wachterjohannes)
    • feature #1735 Add native bridge for chat, embeddings, and reranking (@wachterjohannes)
    • bug #1895 Fix test failures in Codex bridge (@chr-hertel)
    • feature #1826 Add Codex CLI platform bridge (@wachterjohannes)
    • bug #1888 Remove prefix for ScopingHttpClient (@Guikingone)
    • feature #1884 Add ThinkingStart and Anthropic example (@chr-hertel)
    • feature #1849 Add reasoning content streaming support (@Amoifr)
    • bug #1883 Fix Elevenlabs ModelCatalog and streaming (@chr-hertel)
    • bug #1863 Add support for audio capability in ModelCatalog to use Gemma4 which has audio capability built in (@digitaldreams, @chr-hertel)
    • bug #1862 Fix interleaved reasoning in CompletionsConversionTrait (@ineersa)
    • feature #943 Introduce Speech support (@Guikingone, @chr-hertel)
    • feature #1851 Add token usage extraction for embeddings (@Amoifr)
    • bug #1855 Add reasoning_content serialization to AssistantMessageNormalizer (@ineersa)
    • feature #1759 Replace untyped stream chunks with semantic DeltaInterface deltas (@fabpot, @chr-hertel)
    • bug #1814 Fix RateLimitExceededException TypeError in Generic Embeddings ResultConverter (@melkamar)
    • feature #1807 Add gpt-5.4-mini and gpt-5.4-nano to ModelCatalog (@Quentinmse80)
    • feature #1790 Rename ElevenLabsApiCatalog as ModelCatalog (@Guikingone)
    • feature #1583 Add support for streaming (@Guikingone)
    • bug #1810 Fix structured output in Responses API client (@melkamar)
    • bug #1803 Fix number constraints in # (@valtzu)
    • bug #1792 Fix tool call without arguments (@guillaume-ro-fr)
    • feature #1793 Add Qwen 3-embedding and Qwen 3.5 (@guillaume-ro-fr)
    • feature #1785 Add asFile() method to BinaryResult and DeferredResult (@chr-hertel)
    • feature #1722 Generate JSON schema using Validator metadata (@valtzu)
    • feature #1767 Replace ModelCatalog by OllamaApiCatalog (@Guikingone)
    • feature #1763 Add prompt caching for tool definitions (@HKandulla)
    • feature #1765 Add token usage extraction for embeddings (@wachterjohannes)
    • feature #1766 Add description property to # attribute (@bigdevlarry)
    • feature #1704 Add platform-level reranking and hybrid retriever (@wachterjohannes)
    • feature #1756 Extract duplicated completions conversion methods into CompletionsConversionTrait (@fabpot)
    • feature #1764 Add phpdocumentor/reflection-docblock v6 support (@VincentLanglet)
    • feature #1757 Add openrouter/free as base routing model (@lochmueller)
    • bug #1732 Pass deployment name to ResponsesModelClient (@pkothmair)
    • bug #1742 Fix MessageBag handling (@Guikingone)
    • feature #1733 Add support for structured_output (@Guikingone)
    Open source →
  8. v0.6.0 04 Mar 2026
    Release notes

    Changelog (v0.5.0...v0.6.0)

    • feature #1644 Add support for prompt caching (@fabpot)
    • feature #1683 Make JSON schema generation extensible (v2) (@valtzu)
    • bug #1714  Fix FallbackModelCatalog (@fabpot)
    • feature #1701 Add bridge (@chr-hertel)
    • bug #1694 Fix on ElevenLabs platform (@Guikingone)
    • feature #1719 Replace Chat Completions client with Responses API client (@paulkothmair)
    • feature #1717 Resolve models.dev JSON from symfony/models-dev Composer package (@fabpot)
    • bug #1711 Throw InvalidArgumentException when ModelClient receives a string payload (@fabpot)
    • bug #1712 Skip specialized bridge check when a custom baseUrl is provided (@fabpot)
    • bug #1703 Improve Elevenlabs error handling (@chr-hertel)
    • feature #1661 Support API key authentication with global endpoint (@botjaeger)
    • bug #1690 Fix OpenAI tool call serialization (@fabpot)
    • feature #1689 Add well-known base URLs for providers with dedicated npm packages (@fabpot)
    • bug #1698 fix typo in model name (no 's') (@tacman)
    • bug #1691 Fix scientific notation strings being cast to int instead of float in model option parsing (@fabpot)
    • feature #1556 Support structured output for ClaudeModelClient (@aszenz)
    • feature #1678 Add support for gemini-3.1-pro-preview (@alex-ception)
    • bug #1670 Fix AssistantMessageNormalizer producing null content for Anthropic API (@fabpot)
    Open source →
  9. v0.5.0 18 Feb 2026
    Release notes

    Changelog (v0.4.0...v0.5.0)

    • feature #1615 Improve support for ScopingHttpClient (@Guikingone)
    Open source →
  10. v0.4.0 no date
    Release notes

    Changelog (v0.3.3...v0.4.0)

    • feature #1594 Add bridge (colorfield)
    • feature #1635 Add thinking support (fabpot)
    • feature #1634 Update models (fabpot)
    • feature #1622 Add ModelResolver (fabpot)
    • feature #1626 Add support for gemini-3-flash-preview (alex-ception)
    • bug #1618 Fix AssistantMessageNormalizer to support tools properly (fabpot)
    • feature #1620 Allow to override dataPath and default Contract (fabpot)
    • bug #1607 Keep lazy iterator alive (chr-hertel)
    • bug #1610 Skip streaming candidates without content parts (stijnkuppens)
    • bug #1609 Improve support for ScopingHttpClient (Guikingone)
    • feature #1550 Add support for object instances in structured output (wachterjohannes)
    • feature #1576 Add bridge (fabpot)
    • feature #1600 Add support for object serialization in template variables (wachterjohannes)
    • feature #1599 Add structured output and tool calling support (4lxndr)
    • bug #1604 Bug: JsonException with SSE comments in RawHttpResult (bigdevlarry)
    • feature #1571 Introduce Open Responses Platform Bridge by extracting from OpenAI (chr-hertel)
    • bug #1535 Read discriminator mapping from serializer metadata (valtzu)
    • feature #1521 Add bridge (loicsapone)
    • bug #1530 Add missing EMBEDDINGS capability to embedding models (RamyHakam)
    • feature #1520 Add support for token usage on generic bridge (@chr-hertel)
    Open source →
  11. v0.3.0 24 Jan 2026

    Nothing published for this version

  12. v0.2.0 09 Jan 2026

    Nothing published for this version

  13. v0.1.0 23 Dec 2025

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive