Skip to content

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