edulazaro/laragents
Laragents brings AI agents to Laravel: define tools, prompts and multi-step workflows through an expressive PHP API, then plug in the LLM provider of your choice. Lightweight, configurable and designed to fit naturally into existing Laravel applications.
Architecture fit
edulazaro/laragents is a Laravel package for composing LLM-backed agents with tool/function calling inside a standard Laravel application. Architecturally it sits in the application layer alongside your service container: agents, tools, and provider clients are bound and resolved through Laravel's container and driven by configuration, which is the idiomatic fit for a Laravel codebase. It is not a standalone orchestration service — there is no separate runtime to deploy, which keeps the operational surface small but also means agent execution shares the process, memory, and timeout budget of whatever invokes it (HTTP request, queued job, or Artisan command).
The fit is strongest where the agent is a bounded, in-request or in-job helper (classification, extraction, summarisation, retrieval-augmented answer generation, structured tool dispatch). It is weakest where you need long-running, multi-step, stateful workflows with human-in-the-loop checkpoints or durable execution — those need a queue/workflow layer you own, with the package as one node in the graph rather than the graph itself.
Integration feasibility
Integration is lightweight and conventional: Composer install, service provider auto-discovery, vendor:publish for config, credentials via .env. The realistic effort is not in wiring the package up but in the surrounding decisions — provider selection, prompt/tool contracts, persistence of conversation state, and test strategy. Budget the majority of effort there.
Technical risk
Key questions
Stack fit
Well-aligned with a conventional Laravel stack: service container for agent/tool resolution, config files for provider and model selection, queued jobs for anything non-interactive, and Laravel's HTTP client and event system underneath. Teams already fluent in Laravel service providers and queued jobs will onboard quickly; there is no new paradigm to learn at the framework level.
Migration path
Greenfield adoption is low-friction — treat the first integration as an internal spike behind a feature flag rather than a shared dependency. For brownfield, avoid adopting the package as the interface your application code depends on. Wrap it behind a thin, application-owned abstraction (e.g. an AgentRunner contract with a single run() method returning a typed result). That wrapper is what makes an eventual swap — to a different package, a first-party client, or a managed agent platform — a contained change rather than a refactor.
Compatibility
Establish the support matrix explicitly before writing code: PHP version, Laravel version, queue driver, and the provider SDKs in play. Run the existing test suite plus a smoke test against the pinned version. Adopt 1.4.0 as a fresh pin only after the changelog gap is resolved; there is no reason to migrate an existing 1.1.3 pin into an undocumented three-minor jump without review.
Sequencing
Maintenance
Ongoing cost is modest but non-zero: periodic version review (currently blocked by the changelog gap), provider/model deprecation tracking, and prompt/tool definition maintenance — which in practice is the largest and most frequent change surface, and should be version-controlled and reviewed like code. Assign a named owner; an unowned agent integration degrades quietly.
Support
First-line support needs a runbook covering: how to identify which provider/model/agent version handled a given request, how to reproduce a bad output, how to disable a single tool or agent without a deploy, and how to rotate provider credentials. Without that, every quality complaint becomes an engineering investigation.
Scaling
Scaling is dominated by external provider throughput and rate limits, not by the package. Move all non-interactive agent work onto queues with dedicated workers and separate queues from latency-sensitive application jobs. Apply concurrency caps per provider, backoff on 429, and a hard ceiling on tool-call iterations per invocation. Because execution is in-process, long prompts and streaming responses consume PHP worker time — size workers accordingly and keep max_execution_time and queue timeouts consistent.
Failure modes
Ramp-up
Engineers familiar with Laravel should reach productive use in roughly one to two days; the genuinely new skills are prompt/tool design, evaluation, and cost management, which are learnings the package does not supply. Plan a short internal enablement session and a shared examples repository. Given the undocumented 1.4.0 release, also set the expectation that the team — not the upstream maintainer — is responsible for knowing what changed between versions.
How can I help you explore Laravel packages today?