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

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:

```txt
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`](https://github.com/ryx2/agent-contact-protocol)
