Assistant, AI team, and voice
The assistant
The assistant is a floating chat available on every screen. It sends your
messages to ModelService.Complete with the assistant agent and streams the
answer back. It can also start a relevance audit for a URL and open the full
report.
Everything it says comes from the platform’s own model. Nothing goes to an outside AI service.
Talk instead of typing
- Voice input. The microphone records a clip and uploads it to
/voice/transcribe. Speech-to-text runs on the platform’s Voxtral server. - Spoken replies. The assistant can read answers aloud through
ModelService.SynthesizeSpeech. Speech synthesis runs inside PULSE.
Both voice endpoints require you to be signed in.
Voice calls with the assistant
The full-screen call view (/call) negotiates a WebRTC call through
/voice/webrtc/offer. PULSE only relays the signaling. The call itself is
carried by the platform’s shared calling agent, which the deployment names in
CALLING_AGENT_URL. When that is not set, the offer is refused with HTTP 503
rather than connecting a call that carries no audio.
Phone calls to leads are different. They go through Asterisk. See Leads.
AI Team (twins)
System → AI Team (/twins) is a roster of twins. A twin has a name, a role,
a system prompt, and optionally an avatar (TwinService.CreateTwin). New twins
start active. You can pause one and activate it again
(UpdateTwinStatus).