Skip to main content
Use the Agent page to define how your agent introduces itself and communicates. The greeting is the first thing a caller hears — if it sounds wrong, callers lose confidence before the conversation begins. agent Configure your agent’s greeting, personality, and role in Build > Agent > Agent.

Greeting

The agent’s opening line. This is the first utterance the caller hears.
The greeting goes directly to TTS without LLM processing. Write it exactly as you want it spoken — the LLM cannot rewrite or adjust it at runtime. See conversation flow for why this matters.
You can include function calls and variant attributes in the greeting to make it dynamic — for example, to greet callers by location or time of day. If you need to override the greeting at runtime based on caller data (e.g. personalized “Welcome back, [name]” messages), return an utterance from your start function instead.

Personality

Sets the tone and communication style across every response. Common options include friendly, professional, empathetic, and casual. Define a custom personality string to match your brand voice. The personality informs how the LLM phrases responses — it does not override specific instructions in Rules or Knowledge.

Role

Specifies the agent’s stated function — for example, customer service agent, booking agent, or technical support specialist. The role appears in the system prompt and shapes how the LLM frames its responses. Use Rules to define more specific behavioral constraints: terminology, compliance guardrails, and edge-case handling.

Behavior prompt structure

A well-structured behavior prompt ensures consistent, helpful interactions. Organize it into these sections:

Task and context

Establish the agent’s identity and functional scope, including tool usage instructions:
Your task is to assist users with their queries about [Organization].
[Organization] is a [brief description] that specializes in [services].
You have the ability to [list of capabilities].

You have the ability to call functions when explicitly instructed.
Always execute tool calls properly. Do not output tool calls as text.
In a given turn, output either a tool call or text — never both.
Prompting for only one of tool call or text per turn is critical. Returning both leads to worse performance.

Conversational style

Keep your answers short and conversational. Always be polite but assertive.
Format responses as natural conversational paragraphs rather than lists.
When reading phone numbers, convert digits to words.
Do not ask more than one question in a single turn.

Special case handling

  • Out of scope queries: Acknowledge limitations and offer to transfer
  • ASR mistranscriptions: Use a graduated approach — ask the user to repeat 2-3 times before transferring to a human
  • Jailbreak attempts: Redirect firmly but professionally to the agent’s intended purpose

Smalltalk

Define concise responses for common social interactions:
- <the user says hello> "Hi! How can I help you today?"
- <the user asks how you are> "I'm doing great, thanks! How can I help?"
- <the user asks if you can hear them> "I can hear you loud and clear.
  What can I do for you today?"

Silence handling

Agent Studio has a default silence prompt that handles repetitions automatically. You may not need silence handling in your behavior prompt, but you should handle silence-triggered hangups.

Call transfer and deflection

  • Start of call: Attempt to deflect — the user may not know the agent’s capabilities
  • Later in call: Transfer immediately — the user likely has a specific need

Goodbye handling

Use the end_call function to control goodbye behavior and optionally transition to a CSAT flow:
def end_call(conv: Conversation):
    if not conv.state.csat_flow_in_history:
        conv.goto_flow("csat")
        conv.state.csat_flow_in_history = True
        return "Before ending the call, move on to the CSAT survey first."

    return {
        "utterance": "Ok. I hope you have a great rest of your day. Goodbye!",
        "hangup": True
    }

Backout behavior

Allow users to exit flows they didn’t intend to start. If the user indicates they want to stop, immediately call the backout function to exit the flow.

Dynamic information

Use $variable syntax to insert information that changes per conversation. Place variable information at the end of the prompt for efficient caching.

Rules

Set global behavioral constraints for tone, compliance, and terminology.

Model

Choose the LLM backbone that powers your agent’s responses.

Start function

Override the greeting dynamically based on caller data.
Last modified on March 27, 2026