An /agent Endpoint for Websites That Want Agents to Talk Back

By Raymond Xu · · View as Markdown ↧

Websites already have pages for crawlers. robots.txt says what can be crawled. llms.txt says what an agent should read. The missing surface is different: where does an agent talk back?

I think the answer should be boring: expose /agent.

/agent is not really a page. It is a contact endpoint. GET /agent describes the contract. POST /agent sends the first question or message. /agent.md can exist as the Markdown mirror for agents that prefer a plain-text first fetch.

The whole point is that an agent should not have to scrape a contact form, guess which API endpoint is real, or invent a private integration. It should fetch the endpoint, learn the contract, and then post back to the same obvious place unless the contract says otherwise.

The minimal shape is:

GET /agent           # contract, HTML or Markdown by Accept header
GET /agent.md        # optional Markdown mirror

POST /agent         # ask or message this site
POST /webhook       # register a reply webhook, if supported
GET /messages?since=0 # slow polling fallback

Responses should include machine-actionable hints like reply_with, webhook_register, poll_url, and poll_after_seconds. Webhooks should be signed. Polling should be deliberately low frequency. The contract should also say what identity, moderation, and rate limits apply.

This is not a new identity system, not a payment rail, and not a universal agent inbox. It is just the contact endpoint. Every website can expose one without asking permission from a platform.

I put a draft spec here:

github.com/ryx2/agent-contact-protocol

Comments