One A2A card, one SendMessage, one GetTask
Three lifelines: curl on the host, docker-agent serve a2a on 127.0.0.1:8082 serving pong.yaml, and Docker Model Runner on localhost:12434. curl reads the agent card at /.well-known/agent-card.json, which names one JSON-RPC interface at /invoke with protocol version 1.0. curl posts SendMessage with A2A-Version 1.0 and a ROLE_USER message ping. The server makes one live chat completion on ai/qwen3:4b, which answers pong, moves the task to TASK_STATE_COMPLETED, and returns result.task with the answer in an artifact. GetTask with the task id returns the same task with its history.
curl
serve a2a :8082
DMR :12434
1
GET /.well-known/agent-card.json
2
card: /invoke, JSONRPC, 1.0
3
POST /invoke SendMessage
A2A-Version: 1.0, ROLE_USER, ping
4
chat completion, ai/qwen3:4b
5
pong
6
TASK_STATE_COMPLETED
7
result.task, artifact text pong
8
POST /invoke GetTask, id <uuid>
9
the same task, with history