- How do I install the A2A PHP SDK in a Laravel app?
- Install it with Composer as andreibesleaga/a2a-php. For a beta, pin the exact version, for example 0.9.6-beta, instead of using a caret range. Run a throwaway Laravel app first to surface any Guzzle dependency conflict before adding it to an existing project.
- Does this package support Laravel out of the box?
- The package is a PHP SDK, not confirmed Laravel-native. The technical evaluation notes you must verify whether it ships a ServiceProvider, Facade, and publishable config. Until then, wrap it behind your own adapter rather than calling it directly from controllers.
- Which Laravel versions are compatible with a2a-php?
- Compatibility depends on the package's Guzzle constraint and your Laravel release's pinned Guzzle version. This release moved toward Guzzle 8, while many Laravel versions pin Guzzle 7.x, so installability will vary. Test with composer require in a project matching your Laravel minor version.
- Why does composer require a2a-php fail with a Guzzle version conflict?
- A2A PHP's v0.9.6-beta dependency bumps include a move from Guzzle 7.15.x to Guzzle 8.x. If the package requires ^8.0 only, Composer will conflict with Laravel apps that pin Guzzle 7.x. Check the actual composer.json for a dual ^7.0|^8.0 constraint before scoping integration.
- Can I use Laravel's Http::fake() to test A2A PHP calls?
- Only if the SDK uses Laravel's HTTP client; the evaluation notes it likely drives Guzzle directly. Direct Guzzle means Http::fake() will not intercept calls, and you lose Laravel retry/backoff middleware and event hooks. Build an adapter and test against a stub A2A server or Guzzle mock handler instead.
- Is andreibesleaga/a2a-php production-ready and actively maintained?
- Treat it as high risk for production: it is a 0.9.x beta with no semver guarantee, and this release is only a dependency maintenance checkpoint. The Guzzle 7-to-8 move shipped without a compatibility statement, which can break installs or runtime behavior. Use an adapter and a pinned version, and wait for a documented 1.0 and deprecation policy before direct production use.
- What A2A protocol version does this SDK implement?
- The package describes itself as implementing A2A protocol v0.2.5-0.3.0. Confirm whether the SDK pins that spec version and how it handles protocol changes before integrating. The evaluation also asks the maintainer which A2A spec version is targeted.
- How do I expose an agent card and skills with A2A PHP?
- A2A PHP is intended to help expose agents, describe skills, and connect AI services through standardized agent-to-agent messaging. The exact API for building or serving an agent card should be verified in the repository README and source. Keep that construction in your adapter layer so a 1.0 API change does not leak into controllers.
- How does A2A PHP handle task lifecycle and JSON-RPC messaging?
- The package targets A2A's JSON-RPC over HTTP flow, including agent-card discovery and task lifecycle. The dependency profile includes ramsey/uuid for task and message identifiers, Guzzle for HTTP, and monolog for logging. Verify the public task API in the source, then contract-test your adapter against a stub A2A server.
- What are the alternatives to a2a-php for Laravel agent-to-agent communication?
- Alternatives include other A2A protocol SDKs, official or community clients in other languages behind a service boundary, or a small custom JSON-RPC client for your specific agent endpoints. Because this package is pre-1.0, the safest comparison is install feasibility against your Laravel and Guzzle versions first. Wrap whichever option you choose behind an A2AClient port so switching costs one adapter class.