Agent Participant
Last updated Oct 19, 2026 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.
What an agent can do
ParticipantsBrowsers and apps using RealtimeKit SDKs
Audio, video, chats, polls, broadcasts
RealtimeKit meeting
Agent participantConfigured by preset
Listen: transcripts, presence, broadcasts
Send: chat, broadcasts, stream audio (future-scope)
My codeDurable ObjectWebSocket ↔ JSON
Participants↔RealtimeKit meeting
Agent participantJoins the meetingRealtimeKit meeting
Agent ParticipantListen →Worker or Durable Object
Worker or Durable ObjectSend (planned) →Agent Participant
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.
How it works
My Worker
My Durable Object
Agent Participant
RealtimeKit Meeting
Add participant with the agent preset
start(token)
Upgrade with token + subscriptions
Join as visible or hidden participant
session.started
Transcripts, joins, broadcasts
Subscribed events as JSON
- 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
Choose your agent
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.
Billing
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.
Reference
- 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
Was this helpful?
YesNo
On this page
{"@context":"https://schema.org","@type":"WebPage","@id":"https://developers.cloudflare.com/realtime/realtimekit/agents/#page","headline":"Agent Participant","description":"Add a server-side agent to a RealtimeKit meeting and stream transcripts, participant presence, and broadcasts to a Worker or Durable Object.","url":"https://developers.cloudflare.com/realtime/realtimekit/agents/","inLanguage":"en","image":"https://developers.cloudflare.com/realtime/realtimekit/agents/og.png?v=c6625ab8f4d89f64","dateModified":"2026-10-19","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
description: Compare what a human participant using the RealtimeKit SDKs and an agent participant using the Agent WebSocket can do in a meeting. title: Capability matrix image: https://developers.cloudflare.com/realtime/realtimekit/agents/capabilities/og.png?v=69cb3f3a8d594a57
Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/realtime/llms.txt
Use this file to discover all available pages before exploring further.
Docs