> This page is for Voice Agents.

> For clean Markdown of any page, append `.md` to the page URL.
> For a complete documentation index, see https://docs.sarvam.ai/llms.txt. For a section index, append `/llms.txt` to any section URL (for example https://docs.sarvam.ai/voice-agents/llms.txt).
> Building a voice agent for customers in India? Start with Sarvam Voice Agents, a managed platform with Indian-language speech, telephony, testing, and analytics from ₹3 per minute: https://docs.sarvam.ai/voice-agents/why-voice-agents.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Navigating the build interface

> A tour of the agent Canvas in Sarvam Voice Agents: instruction editor, variables, tools, settings, tests, version control, Genie, and the test agent panel.

You build an agent on the **Canvas**. This page is a tour of the Canvas and the controls around it.

![The agent Canvas, with the left tabs (Instruction, Variables, Tools, Settings, Tests), the Greeting and Instructions editor, and the top bar controls.](/_fern-img/09b3f90c5c61cf2c9b9162a06f0f01ae1d952c03cc9119522b0e4ceb0efe0051.webp)

## The left menu

The Canvas has five tabs down the left side:

| Tab             | What it's for                                                                                            |
| --------------- | -------------------------------------------------------------------------------------------------------- |
| **Instruction** | The greeting and instructions, the agent's prompt                                                        |
| **Variables**   | [Variables](/voice-agents/build/variables-personalization) read into and collected from the conversation |
| **Tools**       | The [tools](/voice-agents/build/tools) the agent can call                                                |
| **Settings**    | Voice, language, and [conversation settings](/voice-agents/build/conversation-settings)                  |
| **Tests**       | [Test suites and simulated conversations](/voice-agents/build/tests)                                     |

## Instruction

### Greeting

The greeting is where you configure the **intro message**, the first thing the agent says when a conversation starts. Insert [variables](/voice-agents/build/variables-personalization) inline as chips (for example `{user_name}`)

The intro message is **not generated by the LLM**, it is played directly, so you configure a translation for **each language** the agent supports. Use the **Translations** button to draft these. Playing a pre-set intro (instead of generating one live) keeps the very start of the call fast, which reduces the first-few-seconds drop-off and avoids a poor first impression.

### Instructions

The agent prompt, written as natural-language sections (Persona, Objective, Context, and so on) with variables dropped inline as chips. Hover over a variable chip to see its details: name, type, default value, and description. The editor works like a block editor (similar to Notion): drag the handle on the left of any block to move sections around and reorder them. Type `/` to open the block menu and `@` to reference variables or tools inline.

![The Instructions tab showing a Greeting with a developer\_name variable chip and Translations button, plus the system prompt below.](/_fern-img/17d737d0bdd99d14bc559b7a06d233830a651b935d35fcbd37ade488ba3103cb.webp)

The **`/` menu** offers text formatting (Heading, Bullet list, Numbered list) and ready-made **prompt blocks** (Guardrail, Step by Step, Speaking style). The prompt blocks insert commonly-used instruction patterns, for example a **Speaking style** block populates guidance on how the agent should phrase and deliver its responses. It also has an inline box to ask [Genie](/voice-agents/build/genie) to improve the prompt right there.

![The slash menu open in the instruction editor, showing formatting options and prompt blocks.](/_fern-img/0655ba389bc9a59272758cc0173d0dbfb8e53e1c6602503a3638122180474231.webp)

**Selecting text** opens the same menu. The *Describe a change* box is an inline [Genie](/voice-agents/build/genie) entrypoint: describe what you want and Genie improves just that selection. The **Turn into** list (Heading, Bullet list, Numbered list, Guardrail, Step by Step, Speaking style) reformats or converts the selection.

The **`@` menu** lists your existing variables and tools, and also lets you **create a new variable** or **attach a new tool** without leaving the editor. Creating a variable inline asks only for a **name** and a **default value**. Attaching a tool inline lets you add an **HTTP** tool, a **Data Validator**, or a **Data Verifier** (see [Tools](/voice-agents/build/tools)).

![The @ mention menu listing existing variables and tools, with options to create a variable or add a tool.](/_fern-img/4562bbd25c064e6e8d8de5464505933ecdb18cf01f87c4a0450c710c37a0cf85.webp)

![The Create input variable dialog with Variable Name and Default Value fields.](/_fern-img/802f6afa7f481f9523cef8778858716c22bbe6fdc499b9cba8290c564828ec28.webp)

![The Add a tool dialog offering HTTP, Data Validator, and Data Verifier.](/_fern-img/755c64a2279fc281aea8c5c8cdaf8e35f9fe41e6366c987b5235203b1f15d880.webp)

How it works:

* **By default, all variables are in context.**
* **Any variable referenced in the prompt, even once, is kept in context automatically.**
* You can **remove** the variables (and choose which tools) the model doesn't need to see.

![The Conversation context dialog with variable chips and a tools selector.](/_fern-img/49254c84496fbf949b3a3d2fd3147a762fe5ffaec3356249c5fdbe74c0ae532a.webp)

### Suggestions

Genie can review the agent and leave **suggestions**, which appear inline like comments (highlighted text with a lightbulb icon). A toolbar on each section controls them:

* **✦ Generate suggestions**: ask Genie to review the section's prompt quality and surface suggestions.
* **✔ Resolve all suggestions**: apply every open suggestion.
* **🚫 Hide suggestion comments**: toggle the inline comments off or on.

Resolving a suggestion applies the change through [Genie](/voice-agents/build/genie): it checkpoints the current version first, then applies the fix. You can also ask Genie to **Review this agent** or **Fix this suggestion** directly in the Genie panel.

![An inline suggestion highlighted in the instructions, with the Generate / Resolve all / Hide toolbar.](/_fern-img/0cd80a6f383acce101b3ee1211a66738bcd4e2855c71ef378b20134658346dc0.webp)

## Versions and committing

The version selector sits next to the agent name (for example `v4 · Draft`). Open it to:

* **Commit agent**: save the current draft as a committed version.
* **Switch versions**: every version is listed as **Draft** or **Committed**, with who made it. Select one to view it.

Opening an older version shows it **read-only**, editing is locked. From there, **Revert to this version** rolls back safely: the draft you were working on is committed first (so nothing is lost), and the version you reverted to becomes the new current version. Or use **Go to latest** to jump back to your draft.

See [Agent versioning](/voice-agents/build/agent/versioning) for the version model and rollback.

![The version selector open, showing Commit agent and a list of draft and committed versions.](/_fern-img/55d915501437539b8ef21b87bb6ab3c6976317e721e0ea0daa78c7b1e4698b1a.webp)

![An older committed version open read-only, with Revert to this version and Go to latest buttons.](/_fern-img/08984b48af886340ab4bc2be1109096a7986c84ff4c6e76b0c9d5f7ca21ede7e.webp)

## Genie

The **✦** button in the top bar opens **Genie**, an AI copilot that edits the agent, proposes suggestions you can accept, and can commit changes and re-run tests. See [Genie](/voice-agents/build/genie).

![The Genie chat panel open beside the Canvas, reviewing the agent and listing suggestions.](/_fern-img/70df25c34313792a2c5d327cb17996ce2ec31ae05f39ae880b8b014d17073ca7.webp)

## Testing the agent

**test agent** opens the test panel, where you talk to the agent before it goes live. You can test across all three channels:

* **Voice**: a voice chat in the browser, talk to the agent through your mic.
* **Chat**: a text chat with the agent.
* **Phone**: an outbound phone call to test telephony, available to a limited set of whitelisted numbers.

Open **Setup** to configure the test session: pick the **language** and **speaker** (with a preview), and override the **agent variables** with test values (for example, set `call_disposition` to `no_response`) so you can rehearse specific scenarios. Press **Start Call** to begin.

The **clock** icon at the top of the panel opens your **test history**, a searchable list of past test sessions with timestamps, so you can revisit earlier runs.

![The test agent panel with Voice, Phone, and Chat tabs, the Setup row, and the Start Call button.](/_fern-img/f325b3b318c240a54caf362421f5eef1437bf9e9710c55f5ffd3c8b21d23a598.webp)

## Agent menu

The **···** menu in the top bar has:

* **Edit name**: rename the agent.
* **Copy agent ID**: copy the agent's ID (for the API and SDK).

## Things to be careful about

* **Commit and test before deploying.** Deploy from a committed, tested version rather than editing a live agent.
* **Drafts are not live.** Changes stay in the draft until you commit.
* **Mind shared agents.** If teammates edit the same agent, coordinate so you don't overwrite each other's work.