Skip to main content
An assistant is the central object in Rapida. It holds your LLM configuration, system prompt, experience, listen and speak settings, tools, knowledge bases, and deployment channels — all versioned and deployable across phone, web, and messaging from one place.
Before creating an assistant, set up credentials for your LLM, STT, and TTS providers in Integration → Vault. The creation wizard will ask you to select a provider — credentials must exist first.

Create your first assistant

1

Navigate to Assistants

Navigate to AssistantsGo to Assistants in the main sidebar. Click Add new assistant to open the creation wizard.
2

Select your LLM provider and model

Select your LLMChoose your LLM provider and the specific model to power this assistant. Supported providers: OpenAI, Anthropic, Azure OpenAI, Google Gemini, Cohere, Vertex AI, or a custom AgentKit gRPC backend.Each provider requires a vault credential. The model you select here sets the default — you can tune all parameters after creation.
3

Write your system prompt

Provide Assistant InstructionsDefine the assistant’s persona, scope, and behaviour in the Instructions field. This becomes the system prompt sent to the LLM at the start of every conversation.Use {{variable}} syntax to inject dynamic values at runtime — caller name, account ID, or any context passed when a call is initiated.
4

Add tools (optional)

Add ToolsAttach tools to extend what the assistant can do mid-conversation — query a knowledge base, call an external API, transfer the call, or end the session. Tools can also be added or modified after creation.
5

Name and create

Success ConfirmationGive the assistant a name and description, then click Create Assistant. The assistant is created at version v1 in draft state. Configure voice, deployments, and advanced settings before going live.
A newly created assistant has no deployment attached. It will not handle live calls or web sessions until you configure at least one deployment under Configure assistant → Deployments.

Next best steps

Prompt templating

Add runtime variables ({{ args.* }}, {{ message.* }}, {{ system.* }}) so one prompt works across many customer contexts.

Create new version

Make changes safely in draft, test, and release explicitly without impacting live traffic.

Configure your assistant

After creation, open Configure assistant from the top-right of the assistant page. Configuration is organized into six areas:

Prompt & Model

System prompt, model selection, temperature, token limits, and advanced LLM parameters.

Configuration

Experience, Listen, and Speak settings for runtime behavior, speech input, and spoken output.

Knowledge & Retrieval

Attach knowledge bases, set retrieval method (hybrid, semantic, text), top-K, score threshold, and reranking.

Tools

Knowledge retrieval, API request, endpoint invocation, call transfer, call hold, and end-of-conversation tool types.

Deployments

Phone, web widget, web app, WhatsApp, and API deployment channels — each with its own voice and experience settings.

Webhooks & Analysis

Post-call webhooks to downstream systems and analysis pipelines for conversation scoring and custom metrics.

Prompt and model

The prompt and model configuration defines what your assistant knows, how it reasons, and how it generates responses.

System prompt

The system prompt is your primary control surface. It sets the assistant’s persona, scope of knowledge, constraints, and tone. Well-written prompts are the single biggest lever for assistant quality.
For voice: Keep sentences short and natural. Avoid bullet lists, markdown, and symbols — the TTS engine reads punctuation literally. Write instructions the way you’d brief a call centre agent.
Dynamic variables — inject runtime context into your prompt using {{variable_name}} syntax. Variables are automatically detected from your prompt and can be populated via the SDK when initiating a call:
Multi-turn prompt structure — the prompt editor supports system, user, and assistant roles. Add example exchanges to shape the tone and structure of responses without increasing latency.

LLM model parameters

AgentKit replaces the built-in LLM with your own gRPC server. Rapida streams user speech transcripts to your server and synthesizes your text responses to audio in real time.Your server receives a bidirectional Talk stream. Rapida handles all audio — VAD, STT, TTS, telephony. Your server only handles text in / text out.See the AgentKit guide for implementation examples with LangChain, CrewAI, and Anthropic Claude.

Runtime model overrides

Outbound phone calls can override model provider options for a single conversation through CreatePhoneCallRequest.options. Pass the same option keys used by the assistant provider model, plus the connection keys below when you need to route a call to a different credential or model endpoint.
Use model runtime overrides for controlled routing, testing, or tenant-specific credentials. Invalid model credentials or connection settings can prevent the call from starting.

Configuration

Configuration controls the runtime behavior of each deployment: how a session starts, how user audio is captured and transcribed, and how assistant responses are spoken back. These settings directly affect latency, accuracy, and caller experience.

Listen — STT, VAD, EOS, and noise processing

For telephone deployments (8kHz audio), choose STT providers with dedicated telephony models: Deepgram nova-3, Azure Speech (telephony mode), or AssemblyAI. For high-fidelity web audio (16kHz+), all providers perform well.
STT providers: Deepgram, AssemblyAI, Azure Cognitive Speech, Google Speech, OpenAI Whisper, Cartesia, Sarvam AI Voice Activity Detection (VAD) — determines when the caller is speaking. Three providers available: Silero VAD (default, best general-purpose), TEN VAD (lowest latency), and FireRed VAD (best noise robustness). See Voice Activity Detection for provider details, parameters, and tuning guidance. End of Speech (EOS) — determines when the caller has finished their turn. Three providers available: Silence-Based (default, simple fixed timeout), Pipecat Smart Turn (audio model, catches prosodic cues), and LiveKit Turn Detector (language model with conversation history). See End of Speech Detection for provider details, parameters, and tuning guidance.
EOS is the most impactful latency lever after model selection. With Silence-Based EOS at 700ms, the assistant waits 0.7 seconds of silence before responding. Model-based providers (Pipecat, LiveKit) can reduce this wait by detecting turn completion before the full silence timeout expires — the assistant responds faster while cutting off callers less often.

Speak — TTS and pronunciation

TTS providers: ElevenLabs, Cartesia, Deepgram Aura, OpenAI TTS, Azure Speech, Google Cloud TTS, PlayHT, Sarvam AI
Add your product names, acronyms, and technical terms to the pronunciation dictionary to prevent the TTS engine from mispronouncing them. This is especially important for brand names and medical or legal terms.

Knowledge and retrieval

Attach one or more knowledge bases to give your assistant access to documents, FAQs, product data, or any content indexed in Rapida. See Create a Knowledge Base for document ingestion, connector setup, and embedding model configuration.

Tools

Tools extend what your assistant can do mid-conversation without breaking the voice flow. The LLM decides when to call a tool based on its description — write clear, specific descriptions.

Knowledge Retrieval

Query a Rapida knowledge base in real time. Returns the most relevant document chunks to the LLM as context.

API Request

Call any external HTTP endpoint mid-conversation — CRM lookups, inventory checks, booking APIs. Define the request schema and the LLM populates the parameters from conversation context.

Endpoint (LLM Call)

Invoke a Rapida endpoint — a separately configured LLM prompt — for specialised sub-tasks: classification, extraction, or complex reasoning offloaded from the main conversation model.

Transfer Call

Hand an active phone call to a human agent, queue, department number, or SIP endpoint when the assistant should escalate the conversation.

Put On Hold

Pause the call and play hold music while a backend process completes — useful when a lookup or action takes longer than a voice turn allows.

End of Conversation

Terminate the call programmatically when the assistant determines the conversation objective has been met.
Tool names must use only letters, numbers, and underscores (no spaces). The description is passed directly to the LLM — it determines when and whether the tool is called. Be specific: “Search the product knowledge base for pricing information” outperforms “Search knowledge base”.

Conversation experience

These settings control the runtime behaviour of a live session — what happens when the caller goes silent, how long sessions last, and what the assistant says at the start of a call.

Webhooks and post-call analysis

Webhooks fire for call lifecycle events such as call.received, call.ringing, call.started, call.hangup, call.ended, call.failed, and call.cancelled; WebRTC media events such as webrtc.connected, webrtc.audio_track_received, webrtc.reconnecting, webrtc.failed, and webrtc.disconnected; and conversation lifecycle events such as conversation.begin, conversation.resume, conversation.completed, and conversation.error. Completed conversation webhooks include transcripts, metadata, metrics, and any successful post-call analysis output. Analysis pipelines run before the conversation.completed webhook is recorded. They invoke a configured Rapida endpoint — typically an LLM prompt — against the conversation transcript to produce structured output: sentiment scores, intent labels, CSAT predictions, compliance flags, or any custom metric. Successful analysis output is added to webhook metadata as analysis.<analysis_name>. See Webhooks and Analysis for full configuration details.

Version control

Every change to your assistant’s prompt, model, or parameters creates a new version. Versions let you safely iterate without affecting live traffic.
New versions are not deployed automatically. After creating a version, it stays in draft state until you explicitly release it. Live deployments continue running the previously released version until you promote the new one.
This model lets you run A/B tests, stage changes in a debugger deployment before pushing to phone, and maintain a full audit trail of every prompt change — who made it, when, and why.

Next steps

Set up a phone deployment

Connect a telephony provider and go live with inbound and outbound calling.

Add a knowledge base

Index documents, wikis, and data sources for retrieval during calls.

Configure webhooks

Stream call events and transcripts to external systems in real time.

Build a custom LLM backend

Use AgentKit to plug your own reasoning engine into Rapida’s audio pipeline.