odiseoteam/ai-conversational-agent-bundle
A Symfony bundle for integrating AI-powered conversational agents into your application, enabling chatbot interfaces, automated dialogue workflows, and extensible agent configuration.
composer require odiseoteam/ai-conversational-agent-bundle. Note that v0.2.0 adds a hard dependency on symfony/ai-platform, so Composer will pull that in (and will fail if you are pinned to an incompatible version).config/ai.php. In a Laravel app you either run it inside a Symfony kernel or wire the underlying services by hand in a service provider.config/bundles.php and configure it under config/packages/. Start by reading the bundle's configuration reference — that is where provider, model, persistence and retention are all defined.config/services.php, and call it from a controller or queued job.Agent as an injected service. Treat the agent as a singleton resolved from the container, not something you new per request. Configuration (provider, model, thinking effort) is validated once at agent start in 0.2.0, so a misconfigured agent fails fast at resolution time rather than mid-conversation.
Persistence + retention as a pair. Persistence stores conversations; retention decides how long they live. Set retention deliberately — a TTL plus a max-messages-per-conversation cap is the usual combination. For chat UIs you typically want "keep the last N turns for context, prune the rest on a schedule."
Provider adapters. 0.2.0 introduced the adapter layer and shipped the OpenAI adapter alongside the existing provider. Model/provider selection is configuration, not code — write your calling code against the agent interface and swap adapters in config so you can move providers without touching call sites.
Prompt caching is opt-in and currently off. The bundle asks the host for cache_retention: none, meaning repeated system prompts are re-billed every call. If you have a long, static system prompt, budget for it or keep the prompt lean.
Reasoning effort. Thinking effort is checked when the agent starts. Use it only with reasoning-capable models; for standard chat models, leave it unset and rely on the default.
Evals as a CI job. Eval runs now continue past a failing case instead of aborting, which makes them useful as a regression suite: run the whole set, then read the report. In Laravel, schedule evals as a queued job and assert on the report artifact, not on the process exit code alone.
Localization. The 0.2.0 refactor moved translation handling around. If you had custom message overrides, re-verify your keys after upgrading rather than assuming they still resolve.
symfony/ai-platform is now required. This is the most likely upgrade blocker. Check your lock file before bumping; a transitive conflict here will block the whole upgrade.cache_retention: none is silent. There is no warning that caching is disabled; you will only notice it on the bill. Instrument token usage per call if cost matters.composer.json and read the changelog before every minor bump; the 0.1.0 → 0.2.0 jump already reshuffled folder layout, localization and provider handling.How can I help you explore Laravel packages today?