everything else — prompt, greeting, language, turn-taking, tools, variables,
versions — works exactly as it does for a voice agent.
create one
create the agent with"kind": "vision", then deploy it — like any agent, it
answers api calls only once a version is live.
string
default:"voice"
vision for an agent that sees the caller’s camera. set it when you create
the agent; it cannot be changed afterwards (a PATCH that sends it is
refused).object
a vision agent speaks with silk mulberry 1.5 or muga:
model is mulberry
(with the same named voice and style description a mulberry voice agent
takes) or muga (see voices). leave model out and you get
mulberry; any other voice is refused.call it (web call)
the browser joins the call with a livekit client and turns on its camera next to its microphone. nothing else changes from a web call.1
start the call on your server
POST /v1/webcall with the vision agent’s id, exactly as for a voice agent.2
join and turn on the mic and the camera
connect with the returned
host and token, then enable the microphone
and the camera.3
talk
the agent watches your camera while you talk. turn the camera off and it
knows it can’t see you; turn it back on and it sees again.
browser (livekit-client)
what the agent sees
- what your camera shows while you talk, and it uses that in its replies.
- camera off — the agent knows it can’t see you, so it says so rather than guessing.
- nothing it sees is stored, and call recordings stay audio-only.