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.3.tar.gz (28.3 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.3-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: smarta2a-0.2.3.tar.gz
  • Upload date:
  • Size: 28.3 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.3.tar.gz
Algorithm Hash digest
SHA256 0fe2df8cf729361cd403bab3a4450f4581b098d6688cfabad438f4ededb6db32
MD5 481c1fc7a2f74614009241b225222ad3
BLAKE2b-256 23e724084b61418a71c446d762fe00294af8a017beb441cd6bc1cf1f6bf8f158

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smarta2a-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 33.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.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5deddf03f54f4d376df3f21824fd89152e1fa73a100e0ea4dc4b6e2376a727a8
MD5 a2838848e542a8ef9762935ec19b36de
BLAKE2b-256 3652080d302454ecfd6bec7401cb6ad59e9f80e68c29058d5cdaef97025096f6

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