🤝 A2A Domain Gateway — Live

A2A Domain Expert Gateway

Call any of 23 specialized AI domain experts via A2A JSON-RPC 2.0 from your own agent or pipeline. Each expert is independently deployed with its own tools, knowledge, and reasoning style. Authenticated via Cloudflare Access — no API keys to manage.

23
Domain Experts
190+
Specialist Tools
JSON-RPC
Protocol
CF Access
Auth
✅ Protocol Compliance
A2A v1.0 (Agent2Agent Protocol) JSON-RPC 2.0 CF Access JWT PASS=75 FAIL=0
Available Domain Experts
📊 Technical Analyst 💹 Equity Analyst 🏛 Economist ⚖️ Risk Analyst 📈 Forecaster 🔍 Fundamental Analyst 📰 News Watcher 🏢 Sector Analyst 💰 Valuation Analyst 📑 Institutional Analyst 📅 Earnings Reviewer 🌤 Weather Watcher 💡 Investment Advisor 📋 Trade Planner 🌅 Pre-market Analyst 🌆 Post-market Analyst 🎯 Options Analyst 📊 Market Analyst 🔬 Stock Analyst 🧮 Evaluator 🧠 Second Thinker 💼 Chartist 🏋 Mental Model Advisor
Authentication
A CF Access service token (client_id + client_secret) is required. Generate one in your Developer Portal after registering. Tokens do not expire.
🔒 How A2A authentication works
  1. Register for a free developer account at auth.tradevoicelab.com
  2. Log in to the Developer Portal with your TradeVoiceLab credentials
  3. Click Generate token — Cloudflare creates a service token in ~2 seconds
  4. Copy your client_id (visible anytime) and client_secret (shown once only — save it)
  5. Pass both as HTTP headers on every request — Cloudflare validates them before traffic reaches our servers
1 active token per account. Tokens do not expire. Revoke and regenerate anytime from the portal. All traffic is TLS-encrypted — credentials travel only in HTTPS headers, never in URLs.
Python Client Example
pip install httpx
import httpx, json

CF_CLIENT_ID     = "your-client-id"      # from Developer Portal
CF_CLIENT_SECRET = "your-client-secret"
A2A_URL          = "https://a2a.tradevoicelab.com"

headers = {
    "CF-Access-Client-Id":     CF_CLIENT_ID,
    "CF-Access-Client-Secret": CF_CLIENT_SECRET,
    "Content-Type":            "application/json",
}

# Ask the Risk Analyst about NVDA
payload = {
    "jsonrpc": "2.0",
    "id":      "req-1",
    "method":  "tasks/send",
    "params": {
        "id":      "task-1",
        "message": {
            "role":  "user",
            "parts": [{"type": "text", "text": "What is the current risk profile of NVDA?"}]
        },
        "metadata": {"expert": "risk_analyst"}
    }
}

r = httpx.post(f"{A2A_URL}/a2a/risk_analyst", headers=headers, json=payload, timeout=60)
result = r.json()
print(result["result"]["status"]["message"]["parts"][0]["text"])
# POST to /a2a without specifying expert — gateway routes automatically
payload = {
    "jsonrpc": "2.0",
    "id":      "req-2",
    "method":  "tasks/send",
    "params": {
        "id":      "task-2",
        "message": {
            "role":  "user",
            "parts": [{"type": "text", "text": "Is TSLA overvalued based on its current fundamentals?"}]
        }
        # No metadata.expert — gateway selects the best expert
    }
}
r = httpx.post(f"{A2A_URL}/a2a", headers=headers, json=payload, timeout=60)
Endpoints
Endpoint Description
POST /a2a/{expert_name}Call a specific expert by name
POST /a2aAuto-route to best expert
GET /.well-known/agent.jsonAgent card — lists all experts & capabilities
GET /healthHealth check — no auth required

Base URL: https://a2a.tradevoicelab.com

Access the A2A Domain Gateway

Free developer account — generate your CF Access token instantly in the portal.