Of course, we want Symfony AI to become a stable and reliable set of packages, complying to known Symfony standards, like the BC promise. This will only be achieved with the release of v1.0.
Reaching that level of reliability is important for adoption and using Symfony AI in production without patching your code all the time.
When going with symfony/ai instead of integration into symfony/symfony we decoupled releases deliberately since we're still figuring out what we need to build. And as long, as we are aware of flaws, that make BC breaks necessary, it would create extra effort to provide a BC layer - slowing is down.
However, we want to create transparency, where we are on this road, for users to follow along.
This issue tracks high-level items, that need to be resolved until we can tag a v1.0 of Symfony AI.
When all items are tackled, a feature freeze around 4 weeks will kick in, to stabilize the codebase.
- This uses the MoSCoW method for priotization. Items are up for discussion.
- Items are labeled as
MUST if impact to component API is expected.
Open to resolve
- Platform Component
- Agent Component
- Store Component
- Chat Component
- Mate
- AI Bundle
- Demo
- General
Known, but not needed for
- Agent/Model evaluation framework
- A2A or A2UI/AG-UI support
- OTEL integration
- More bridges
- MCP Apps
- ORT
- Platform Routing / Connector
Of course, we want Symfony AI to become a stable and reliable set of packages, complying to known Symfony standards, like the BC promise. This will only be achieved with the release of v1.0.
Reaching that level of reliability is important for adoption and using Symfony AI in production without patching your code all the time.
When going with
symfony/aiinstead of integration intosymfony/symfonywe decoupled releases deliberately since we're still figuring out what we need to build. And as long, as we are aware of flaws, that make BC breaks necessary, it would create extra effort to provide a BC layer - slowing is down.However, we want to create transparency, where we are on this road, for users to follow along.
This issue tracks high-level items, that need to be resolved until we can tag a v1.0 of Symfony AI.
When all items are tackled, a feature freeze around 4 weeks will kick in, to stabilize the codebase.
MUSTif impact to component API is expected.Open to resolve
MUSTSolve dynamic model catalogs decoupling package lifecycle of model lifecycleMUSTBetter stream handling for exposing thinking/reasoning as well400 INVALID_ARGUMENT#1539MUSTBetter handling of multi-modal responses (generated speech, images or video)MUSTSolve model catalog handling and model lifecycleSHOULDMeaningful adoption of capabilities/tasks, validation and routing in ModelCatalog/PlatformSHOULDReworkModelClienttoEndpointClientCOULDNormalized optionsCOULDException structureCOULDRemote tool supportCOULDTwig message template supportCOULDToon support for embedded objectsCOULDStreamlined Error HandlingCOULDStreamlined JSON to data conversionMUSTRedesigned API to tailored Agent API instead of being a slim Platform decorator (name + instruction + tools + input + options)MUSTIntroduce traces to come out-of-the-box instead of customMUSTFold state handling into Agent and deprecate Chat component (incl. sleep/branch/rewind?)SHOULDBuilt-in support for integration with messenger & workflow componentSHOULDIntegrate hand-off into one universal AgentSHOULDDefault approach to human-in-the-loop (cookbook)SHOULDSources/traces support across built-in toolsSHOULDMessage template support forSimilaritySearch(and others?)SHOULDParallelizationCOULDMCP support, agent acting as MCP ClientCOULDPrevent tool calling loopsCOULDValidation on top of structured outputCOULDTool classifier (read vs write) => replaced by metadata in [AI Bundle][Agent][Platform] Allow attaching metadata to tools #2316MUSTIntroduce retrieval extension points for features like multi-vector query or rerankingMUSTWork out-of-the-box with entities/repositories - unified store vs. additional store (demo)MUSTStoreFactory + ScopedClientsMUSTScope ofStoreInterfacemethods, .e.gcount()orclear()SHOULDMore loaders & transformer implementations (web, folder, pdf, word, json, ...)COULDGeneralize common options when queryingMUSTHandle multi-user conversationsSHOULDStreaming integrationMUSTComposer Plugin IntegrationSHOULDPanel split into components (platform, store, tools, and agents), but unified trace for AgentSHOULDSwitch to Hugging Face as default (document OpenAI, Gemini, etc.)COULDUse MercureMUSTGet rid off public properties for easing BC promiseSHOULDGet rid of variadics for easing BC promiseKnown, but not needed for