Agent Participant adds a server-side agent to a RealtimeKit meeting. Any backend that can open a WebSocket — a Cloudflare Worker, a Durable Object, or your own server — can connect to it. No client SDK or browser is required.
Today an agent receives live meeting activity, such as transcripts, participant presence, and broadcasts. More capabilities are planned, including sending messages and working with meeting media.
The agent is a meeting participant. Its preset decides how it joins the meeting, and its subscriptions decide which events it receives.
To create a preset and choose subscriptions, refer to Build an agent. To compare what an agent and a human participant can do, refer to the Capability matrix.
- Create a participant using create-participant-api for the agent, using your configured preset.
- Durable Object opens the WebSocket with that agent's participant token.
- The agent joins the meeting and forwards the events you subscribed to.
- When the session ends, the server sends
session.endedand closes the WebSocket.
Build an agent with Durable Objects
Decide whether people in the meeting should see the agent. The agent receives the same events either way.
| Your agent | Example | Others see it |
|---|---|---|
| Hidden agent | Compliance monitor, quality review, live meeting analytics | No |
| Visible agent | Note-taker that appears in the participant list | Yes |
Agents that speak or send chat messages are not supported yet. Refer to the Capability matrix.
The agent is billed as a participant for as long as it is connected. A connected agent keeps the session active even after everyone else leaves, so your backend must remove it. Refer to Billing and ending the session.
- Build an agent: create a preset, run the agent in a Durable Object, and connect to the WebSocket
- Events: event types, payloads, and delivery rules
- Capability matrix: what an agent can do compared to a human participant