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.
composer require edulazaro/laragents:^1.4, then publish the package's config (php artisan vendor:publish --provider="EduLazaro\Laragents\..." — grab the exact provider from php artisan vendor:publish output) and move any keys/endpoints into .env. Never commit the published config with secrets in it.1.1.3...1.4.0), which means the jump from 1.1.3 skipped at least 1.2 and 1.3 without prose. Before adopting, open that compare URL and skim for renamed classes, changed method signatures, config key renames, and bumped minimum PHP/Laravel constraints in composer.json. That diff is your actual changelog.tests/ directory (the most reliable spec for a thinly-documented package), the service provider (what it binds into the container and which extension points exist), the published config file (every tunable lives there), then the README quick start.Http::fake(). Get that loop green before adding a second agent — it surfaces config, credential, and timeout issues cheaply.AgentRunner contract in your app and adapt the package behind it. On a package doing 1.1 → 1.4 minor releases, your app code should not reference package classes directly outside that one adapter.retry_after, and implement failed() to record the error rather than silently dropping it. Use backoff for rate limits (429s) instead of tight retries.Http::fake() around the transport layer works if the package uses the Laravel HTTP client; if it ships its own fake/assertion helpers, prefer those. Assert on your adapter's contract, not on the package's internals.composer update edulazaro/laragents --dry-run -W and read the diff before bumping, and keep the version constrained (^1.4) so a surprise 1.5 does not land in CI unpinned.retry_after, causing duplicate executions on retry. Set the job timeout explicitly and keep the queue's retry_after comfortably above it..env, run php artisan config:clear (or config:cache in deploy scripts) — env edits appear to "do nothing" when a cached config is in play.Macroable traits — these are your least invasive customisation surfaces if the package is otherwise closed.config:clear, (2) confirm credentials resolve from the expected source, (3) enable verbose HTTP logging at the client level, (4) check the package's own test suite for the current expected invocation shape — it moves faster than the docs.How can I help you explore Laravel packages today?