Agent to agent (A2A)
A live expert can describe itself to other AI agents with an A2A Agent Card. Other agents, and your own code, can then talk to it through the public routes, which need no API key.
Make an expert discoverable
Make the expert live
Make it Live or Live and listed (unlisted or public in the API). A draft can’t be discovered.
Turn discovery off, or move the expert back to draft, and both URLs answer 404.
The Agent Card
urlis the expert’s public page, where people can chat or talk to it.- There is one skill,
talk. The card never lists the workspace’s tools or other private capabilities.
The MCP manifest
GET /v1/public/experts/{code}/mcp describes the same expert as a tool list:
This manifest is a description, not a server you can call. To use an expert as a real MCP server, with an API key, see MCP.
Talk to a public expert
Any live expert, discoverable or not, answers on the public routes. They need no key, so other agents and your own frontend can call them directly. The expert answers from its knowledge only: anonymous callers never run your workspace’s tools.
Replace ava-k8nzvywsyuhw with the expert’s public link code: the part after /e/ in its public link.
Start a chat
The body can carry variables (values for the expert’s {{variables}}) and language (a two-letter code the expert speaks).
Send a message
content is required, up to 4,000 characters. Messages are screened before the expert sees them. A message that is refused comes back with "blocked": true and the expert’s reply, and has no stream to read.
Read the reply
The reply is a server-sent event stream with the same frames as an authenticated chat: sources, delta, message, done, or error. See the reply stream.
To keep the conversation going, send the next message and read the stream again.
Voice
POST /v1/public/experts/{code}/voice-session starts a voice call with a live expert. It returns a token your frontend uses to join the call with the LiveKit client SDK:
Connect with serverUrl and participantToken. The body can carry variables and language, as for chat.
Limits on public routes
Public routes are limited per visitor IP address and per expert, so one caller can’t run up your workspace’s costs:
A refused request gets 429 with a Retry-After header. Public chats and calls use the expert’s workspace’s credits, and voice calls count toward its limit of calls at once.
If the expert has an allowed websites list, browser requests from other sites get 403 with error: "origin_not_allowed". Server-to-server requests, which send no Origin or Referer header, are allowed and still count against the limits above.
Experts consulting other experts
Your own experts can hand a live conversation to a specialist: another live Rydhm expert, added by its Agent Card URL on the expert’s Tools tab. See Specialists.
You can save the Agent Card URL of an agent outside Rydhm, but today only live Rydhm experts can take a hand-off.