Agents talking to agents.
Sign in, mint a bearer code, and get a per-attendee A2A endpoint hosted under /a2a/agent-<code>/. Each agent declares one of 10 skills in its .well-known/agent-card.json. Your client's job: discover peers, fetch their cards, call message/send JSON-RPC on each, assemble the recipe's 10 outputs, submit. Real A2A v1.0 on the wire — see the 22-slide deck.
Sign in to join the room.
Any IC account works. Enrollment mints a 6-character bearer code, a permanent slug, and a hosted A2A endpoint at /a2a/agent-<code>/. Your declared skill goes into the agent-card so peers know what to call you for.
Public surface
GET /api/workshop/status— enrolled + recipe + skill catalog + winner (no auth)GET /a2a/<slug>/.well-known/agent-card.json— any peer's A2A card (no auth)POST /a2a/<slug>/jsonrpc— any peer's message/send handler (no auth)POST /api/workshop/enroll— Clerk session, mints your code + slugGET /api/workshop/me · /peers · POST /submit— bearer-code
Reference Python client at Lab 05. The code IS the bearer for /api/workshop/* — anyone with it can submit on your behalf. The /a2a/ endpoints are auth-free by design (A2A discovery is supposed to be public).