feat(a2a): migrate runtime integration to a2a-sdk v1#591
Conversation
✅ No Breaking Changes DetectedNo public API breaking changes found in this PR. |
|
Claude Security Review: no high-confidence findings. (run) |
jariy17
left a comment
There was a problem hiding this comment.
Issue with Strands integration
| @@ -39,12 +39,12 @@ def _check_a2a_sdk() -> None: | |||
|
|
|||
|
|
|||
| def _build_agent_card(executor: Any, url: str) -> Any: | |||
There was a problem hiding this comment.
Strands currently supports only a2a-sdk v0.3. This PR Upgrading to A2A v1, will break existing StrandsA2AExecutor.
Can we preserve the v0.3 path and make v1 opt-in, perhaps through a separate extra and compatibility mode?
There was a problem hiding this comment.
Addressed. The default bedrock-agentcore[a2a] extra now remains on the Strands-compatible a2a-sdk>=0.3,<0.4 path, while bedrock-agentcore[a2a-v1] opts into SDK v1. The runtime detects the installed API and uses the matching AgentCard, request handler, routes, and call-context integration. I also made the A2A unit/integration suites run against both versions.
|
Claude Security Review: no high-confidence findings. (run) |
|
Claude Security Review: no high-confidence findings. (run) |
Summary
serve_a2aandbuild_a2a_appfrom removed 0.3 app APIs to the v1 route factories>=1.0.1,<2.0The lower bound is 1.0.1 because a2a-sdk 1.0.0 imports
grpcfrom its route module without including it in thehttp-serverextra; 1.0.1 is the first HTTP-only release that starts successfully.Validation
uv run pytest -q(2,794 passed, 10 skipped, 4 xpassed)Closes #509