a2a-server

Run an A2A inbound task listener that lets this OpenClaw instance receive tasks from other agents via the A2A API Gateway. Use when: (1) starting/stopping the A2A listener service, (2) receiving inbound A2A tasks from other agents, (3) checking if the listener is running. NOT for: sending tasks outbound (use a2a-client), registering this agent (use a2a-register).

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "a2a-server" with this command: npx skills add thearchitectit/openclaw-a2a-server

A2A Server — Inbound Task Listener

Run an A2A protocol listener that allows this OpenClaw instance to receive tasks routed from the A2A API Gateway. The listener runs as a background HTTP service.

Sidecar Principle

This skill is strictly an OpenClaw sidecar — it receives tasks FROM the A2A API Gateway in whatever format the gateway sends them. The gateway's A2A protocol is the contract; OpenClaw's listener just speaks it. Never assume what the sending system looks like — it could be any agent that routes tasks through the gateway. The listener implements the gateway's expected endpoints as-is.

Configuration

The listener reads configuration from a shared a2a.conf file (located in the a2a-client skill directory), with auto-detection fallbacks for local settings.

Priority order: CLI flags → env vars → a2a.conf → auto-detected defaults

SettingAuto-detected DefaultDescription
Port8100Listen port (LISTENER_PORT)
Bind AddressTailscale IP or first NICLocal bind address (BIND_ADDR)
Agent Slughostname -s (lowercase)Agent identifier (AGENT_SLUG)
Agent NameSlug (capitalized)Display name (AGENT_NAME)
Agent URLhttp://{bind_addr}:{port}Agent endpoint (AGENT_URL)
Capabilitieschat,code,researchComma-separated (AGENT_CAPABILITIES)
Auth TypebearerAuth method (AGENT_AUTH_TYPE)
API KeyemptyBearer token — if empty, auth checks are disabled (A2A_GATEWAY_API_KEY)

Run a2a-register/a2a-setup.sh to configure interactively, or set env vars / create a2a-client/a2a.conf.

When to Use

  • Start the listener — When this OpenClaw instance needs to receive inbound A2A tasks
  • Stop the listener — When shutting down or pausing inbound task reception
  • Check listener status — When verifying the A2A service is running

Endpoints

The listener (a2a-listener.py) handles these routes:

MethodPathDescription
GET/healthHealth check — returns {"status": "ok", "agent": "<slug>"}
GET/v1/a2a/agents/{slug}Returns the agent card for this OpenClaw instance
POST/v1/a2a/tasks/sendReceives an inbound A2A task (requires Bearer auth if API key is set)

Auth

Inbound tasks (POST /v1/a2a/tasks/send) require a Bearer token matching the configured A2A_GATEWAY_API_KEY. If no API key is configured, auth checks are disabled (with a warning at startup). Health checks and agent card lookups are unauthenticated.

Tools

start.sh — Start the Listener

./start.sh [--port PORT] [--bind ADDR]

Starts the A2A listener in the background. All other settings are read from a2a.conf or env vars.

# Start with defaults (from a2a.conf or auto-detected)
./start.sh

# Custom port and bind address
./start.sh --port 8200 --bind 0.0.0.0

Saves the PID to a2a-listener.pid for management. Logs to a2a-listener.log.

stop.sh — Stop the Listener

./stop.sh

Gracefully stops the A2A listener using the PID file.

a2a-listener.py — The Listener Process

Python HTTP server that implements the A2A protocol endpoints. Started by start.sh. Can also be run directly:

# Run directly (foreground)
python3 a2a-listener.py

# With custom settings via env vars
LISTENER_PORT=8200 BIND_ADDR=0.0.0.0 A2A_GATEWAY_API_KEY=your-key python3 a2a-listener.py

All configuration is loaded from a2a.conf, env vars, or auto-detected — no hardcoded values.

⚠️ Current Status — Mock Responses

The listener currently returns mock responses for inbound tasks. It acknowledges receipt and echoes back the task content, but does not yet process tasks through OpenClaw's agent runtime.

Next step: Integrate the listener with OpenClaw's task processing pipeline so inbound A2A tasks are dispatched to the appropriate skill/agent, and real results are returned.

Typical Workflow

  1. Configure → Run a2a-register/a2a-setup.sh or create a2a.conf
  2. Register → Use the a2a-register skill to register this instance in the A2A API Gateway
  3. Start./start.sh to begin listening for inbound tasks
  4. Verifycurl http://YOUR_IP:8100/health to confirm it's running
  5. Receive — The gateway routes tasks to this listener automatically
  6. Stop./stop.sh when done

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Agent Card

个人社交名片生成、管理和分享,以及智能花名册(通讯录管理器)。当用户提到名片、花名册、通讯录、联系人、虾名片、agent-card 时使用。具体触发场景包括:开通虾名片、建花名册、生成/更新/发/发布名片、注册虾名片、录入/查询/编辑联系人、收到包含 agent-card:// 协议的消息时自动识别并保存他人名片。

Registry SourceRecently Updated
Automation

Agentic Lending EVK

Plan and execute the current EVK-first agentic lending workflow for Api3-backed markets. Use when a user wants an agent to discover or fund the required Api3...

Registry SourceRecently Updated
Automation

Generate YouTube Thumbnail Concepts

Generates multiple bold, high-contrast YouTube thumbnail concepts with engaging expressions and text overlays for video content.

Registry SourceRecently Updated
Automation

A2a Register

Register, deregister, and manage this OpenClaw instance as an A2A agent in the A2A API Gateway. Use when: (1) registering this instance so other agents can d...

Registry SourceRecently Updated