Skip to content

Prototype: A2A support through a protocols abstraction #171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

ryanycoleman
Copy link
Member

@ryanycoleman ryanycoleman commented Jun 3, 2025

Description

This PR is intended as a WIP prototype to demonstrate possibilities and facilitate discussion about #24.

Introduces a protocol abstraction layer inspired by the model provider abstraction layer, enabling agents to be exposed as network services. Uses A2A support to exercise the abstraction layer, providing a one-line way to serve an endpoint, generate agent cards dynamically from the tools registry, and invoke remote agents like local tools.
See examples/iss_agent.py & examples/iss_client.py to try it out.

Type of Change

  • New feature

Testing

To try this prototype:

  • create a folder and new python environment (e.g. uv venv & source .venv/bin/activate)
  • Install packages in this specific order to avoid conflicts with the git checkout
  • uv pip install strands-agents-tools a2a-sdk fastapi
  • uv pip install git+https://github.com/ryanycoleman/strands-sdk.git@prototype/a2a "strands-agents-tools==0.1.4" --no-deps
  • create and run iss_agent.py in the background (e.g. uv run iss_agent.py &)
  • create and run iss_client.py (e.g. uv run iss_client.py)
  • have a peek at the auto-generated agent card (e.g. curl localhost:8000/.well-known/agent.json | jq)

[How have you tested the change?] Just the new feature in isolation.

  • hatch fmt --linter
  • hatch fmt --formatter
  • hatch test --all
  • Verify that the changes do not break functionality or introduce warnings in consuming repositories: agents-docs, agents-tools, agents-cli

Checklist

  • I have read the CONTRIBUTING document
  • I have added tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@ryanycoleman ryanycoleman added the under consideration Feature is being consdiered label Jun 3, 2025
@awsarron awsarron self-assigned this Jun 10, 2025
@ryanycoleman
Copy link
Member Author

Excited to close this PR in favor of #218

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
under consideration Feature is being consdiered
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants