Skip to main content

A simple Python framework (built on top of FastAPI) for creating Agents following Google's Agent2Agent protocol

Project description

SmartA2A

A Python package for creating a server following Google's Agent2Agent protocol

Features

Full A2A Protocol Compliance - Implements all required endpoints and response formats

Decorator-Driven Development - Rapid endpoint configuration with type safety

🧩 Automatic Protocol Conversion - Simple returns become valid A2A responses

🔀 Flexible Response Handling - Support for Tasks, Artifacts, Streaming, and raw protocol types if needed!

🛡️ Built-in Validation - Automatic Pydantic validation of A2A schemas

Single File Setup - Get compliant in <10 lines of code

🌍 Production Ready - CORS, async support, and error handling included

Installation

pip install smarta2a

Simple Echo Server Implementation

from smarta2a.server import SmartA2A

app = SmartA2A("EchoServer")

@app.on_send_task()
def handle_task(request):
    """Echo the input text back as a completed task"""
    input_text = request.content[0].text
    return f"Echo: {input_text}"

if __name__ == "__main__":
    app.run()

Automatically contructs the response:

{
  "jsonrpc": "2.0",
  "id": "test",
  "result": {
    "id": "echo-task",
    "status": {"state": "completed"},
    "artifacts": [{
      "parts": [{"type": "text", "text": "Echo: Hello!"}]
    }]
  }
}

Development

To set up the development environment:

# Clone the repository
git clone https://github.com/siddharthsma/smarta2a.git
cd smarta2a

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e ".[dev]"

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smarta2a-0.3.0.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smarta2a-0.3.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file smarta2a-0.3.0.tar.gz.

File metadata

  • Download URL: smarta2a-0.3.0.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for smarta2a-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5dd76773268c7cbaf1f67bbb5b749b458efc7ab79a0f6c7a875db3e6dbd48789
MD5 af4d54774c4a0d57062a3c77372e93bc
BLAKE2b-256 d842f1b7b2d3a657ab3f56123d51da60c779f1abb137cc4615208f56dc87692b

See more details on using hashes here.

File details

Details for the file smarta2a-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: smarta2a-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for smarta2a-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe3841f64b95e8184e58e0202be4a22733605c632f231bfb14798ca934dc2a2c
MD5 78bf5bd178089ea0ff74214bf5921737
BLAKE2b-256 214d9994929cad82145a6e48b3ae8ae949b567bf571d9d629aad6523b030efa2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page