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.2.4.tar.gz (29.6 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.2.4-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for smarta2a-0.2.4.tar.gz
Algorithm Hash digest
SHA256 47b94f2fdb5536473bcf0df3745988eee86731fa96b85a5379b505a7fe2a9019
MD5 ed88a3ac59a255a3ed3e857c3f38598d
BLAKE2b-256 8f39fac7b5311c7fa2d2d871a99dfa1227a01624c585ca4cef71f527aa60aa53

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smarta2a-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 34.6 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.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1135b4b180d664d0c6d0f96f3dcebe9a7921a880dd0f754408d9e0806fb1279f
MD5 174b161cc740b2087b3ab7e2cf1f65c6
BLAKE2b-256 917ff47e9224df4a5bfdff87a692ab2b59a78106a7de8e208a65d15d38d6a2c7

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