← Back to registry /

Willform Deploy Agent

A2A conformant A2A v0.3.0

Willform Deploy Agent

v1.0.0 Willform

Deploy and manage containerized applications on Kubernetes with pay-per-use billing via x402 payment protocol. Supports four workload types: web apps, databases (StatefulSet with persistent volumes), background workers, and scheduled cronjobs. Includes per-namespace AI agent (Willy) for infrastructure operations.

Launch agent website ↗

Skills

  • List Chart Types

    List available workload types (web-app, stateful-db, worker, cronjob) with their capabilities.

    chartworkloadcatalog
  • Pre-Deployment Check

    Validate a deployment before creating it. Checks quota, balance, image accessibility, chart type suitability, and returns cost estimates.

    deployvalidatepreflightcheck
  • Create Deployment

    Deploy a container using the appropriate chart type: web-app (HTTP services), stateful-db (databases with persistent volumes), worker (background processors), or cronjob (scheduled tasks). Call deploy_preflight first to validate.

    deploykubernetescontainerdatabasecronjob
  • Manage Namespaces

    Get namespace details, update name or resource allocation, list or delete namespaces.

    namespacemanagequota
  • Manage Deployments

    Get status, list, stop, restart, delete, scale replicas, update env vars, diagnose failures, and view logs or K8s events.

    deploymanagelogsdiagnosescaleenv
  • Expose Deployment

    Expose a stateful-db deployment externally via Cloudflare Tunnel for local client access. Supports HTTP and TCP protocols.

    deployexposetunnelexternaltcp
  • Check Credits

    Check credit balance for compute billing.

    creditsbillingbalance
  • Manage Domains

    Add or remove custom domains for deployments.

    domaindnscustom
  • Namespace Agent

    Interact with the per-namespace Willy AI agent. Invoke tools, send chat messages, or check agent status.

    agentwillyaimcp

Integration

import asyncio
from a2a_registry import AsyncRegistry

async def main():
    async with AsyncRegistry() as registry:
        agent = await registry.get_by_id("d71e9e3d-04a0-495f-a6d4-f2528ebd2697")
        client = await agent.async_connect()
        print(f"Connected to {agent.name}")

asyncio.run(main())