> 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 full documentation content in one file, see https://docs.sarvam.ai/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.sarvam.ai/_mcp/server.

# Navigating the build interface

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.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/09b3f90c5c61cf2c9b9162a06f0f01ae1d952c03cc9119522b0e4ceb0efe0051/voice-agents/images/canvas.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=1a447ef518b5ea66b9a62a3a92b0550025eadddb9c5fc34a694ee89e86707319&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## 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](/conversations/build/variables-personalization) read into and collected from the conversation |
| **Tools**       | The [tools](/conversations/build/tools) the agent can call                                                |
| **Settings**    | Voice, language, and [conversation settings](/conversations/build/conversation-settings)                  |
| **Tests**       | Test suites and simulated conversations                                                                   |

## Instruction

### Greeting

The greeting is where you configure the **intro message**, the first thing the agent says when a conversation starts. Insert [variables](/conversations/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.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/17d737d0bdd99d14bc559b7a06d233830a651b935d35fcbd37ade488ba3103cb/voice-agents/images/system-prompt-initial-message.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=94681d1c900fca44a767af7f7fcff4c51f68f72536ff03f877de7de67128d39d&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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](/conversations/build/genie) to improve the prompt right there.

![The slash menu open in the instruction editor, showing formatting options and prompt blocks.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/0655ba389bc9a59272758cc0173d0dbfb8e53e1c6602503a3638122180474231/voice-agents/images/slash-menu.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=4e7f6c3d484e87eeddb30adaa4c348d30f4278b1a3dd9ff6547944e47615951d&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

**Selecting text** opens the same menu. The *Describe a change* box is an inline [Genie](/conversations/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](/conversations/build/tools)).

![The @ mention menu listing existing variables and tools, with options to create a variable or add a tool.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/4562bbd25c064e6e8d8de5464505933ecdb18cf01f87c4a0450c710c37a0cf85/voice-agents/images/at-menu.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=058355d1828893c03beac7d71472d23f7390869fd28bf8863be31d2e64fcde9c&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

![The Create input variable dialog with Variable Name and Default Value fields.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/802f6afa7f481f9523cef8778858716c22bbe6fdc499b9cba8290c564828ec28/voice-agents/images/create-variable.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=ae294d71040ea398c6889f0a7cb67cf669e10aa0c2419e39262f40feb7cc8adf&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

![The Add a tool dialog offering HTTP, Data Validator, and Data Verifier.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/755c64a2279fc281aea8c5c8cdaf8e35f9fe41e6366c987b5235203b1f15d880/voice-agents/images/add-tool.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=4e6872cb76fb8c85e043b09442b640165f6cefa38f622e34ec40cd91331be32b&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/49254c84496fbf949b3a3d2fd3147a762fe5ffaec3356249c5fdbe74c0ae532a/voice-agents/images/conversation-context.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=a2ede310a226302e6321837a24bf19ee366dffa2a8a68017f201ec77f8797efb&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

### 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](/conversations/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.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/0cd80a6f383acce101b3ee1211a66738bcd4e2855c71ef378b20134658346dc0/voice-agents/images/suggestion.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=dba809362cb4c83604d12ab2d282cce9df557d4625a106ab794e9931e5531b1e&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## 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](/conversations/build/agent/versioning) for the version model and rollback.

![The version selector open, showing Commit agent and a list of draft and committed versions.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/55d915501437539b8ef21b87bb6ab3c6976317e721e0ea0daa78c7b1e4698b1a/voice-agents/images/version-dropdown.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=8d11288e0680ef4618416ae37f96616bad4dd443ca0aea178ac5b655d5e865c0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

![An older committed version open read-only, with Revert to this version and Go to latest buttons.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/08984b48af886340ab4bc2be1109096a7986c84ff4c6e76b0c9d5f7ca21ede7e/voice-agents/images/older-version.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=6304728db9ffc8782836dbc46b0c9f49274dda2f89f4c6951df388074f33912b&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## 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](/conversations/build/genie).

![The Genie chat panel open beside the Canvas, reviewing the agent and listing suggestions.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/70df25c34313792a2c5d327cb17996ce2ec31ae05f39ae880b8b014d17073ca7/voice-agents/images/genie.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=17080f46def1c6915251a88f7376253549d9dacb000b904f4a1b7b6b3ca5689b&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## 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.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/sarvam-api-docs.docs.buildwithfern.com/f325b3b318c240a54caf362421f5eef1437bf9e9710c55f5ffd3c8b21d23a598/voice-agents/images/playground-testing.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260730%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260730T094735Z&X-Amz-Expires=604800&X-Amz-Signature=74ec1c11c42ad877b1e130e2eeb4de29f16efbc3d99bb13b06dc1d257f339b53&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

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