Skip to content
Assistant, AI team, and voice

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).

Today the roster is a record of the twins you define. No backend agent reads it yet, so a twin does not act on its own.