set_language_mode()
Configures the voice agent to understand and respond in additional languages beyond English. The agent starts in the primary language and switches to a secondary language when the caller requests it or speaks in that language.
signature
call.set_language_mode(
primary: Language = "english",
secondary: list[Language] | None = None,
)| Parameter | Type | Default | Description |
|---|---|---|---|
| primary | Language | "english" | The language the agent starts the conversation in. |
| secondary | list[Language] | None | None | Additional languages the agent can switch to when the caller requests them. |
The Language type is defined as:
Literal["english", "spanish", "french", "german", "italian"]Return value: None / Promise<void>
Example: single secondary language
example.py
@agent.on_call_start
def on_call_start(call: guava.Call):
call.set_persona(organization_name="Harper Valley Property Insurance")
call.set_language_mode(primary="english", secondary=["spanish"])
call.set_task(
task_id="intro",
objective="Answer questions regarding property insurance policy.",
)Example: multiple secondary languages
example.py
call.set_language_mode(
primary="english",
secondary=["spanish", "french", "german"],
)Transcript behavior
- There is no auto-translation on the transcript. Each turn appears in the language it was spoken in — if the caller speaks Spanish, that turn is in Spanish; if they speak English, that turn is in English.
- There is currently no per-turn language marker in the transcript.
Edge cases
- If
secondaryisNoneor empty, the agent operates inprimaryonly (the current default behavior). - When a non-English language is detected during a call, the system automatically switches to a language-specific TTS voice.
- The
gracevoice has clones for Spanish, French, German, and Italian. If no dedicated clone exists for a voice + language combination, the base voice is used.
Compliance: Non-English languages are not currently supported for HITRUST / PCI-compliant deployments. Support is planned.
Questions? hi@goguava.ai
call.set_language_mode(
primary: Language = "english",
secondary: list[Language] | None = None,
)@agent.on_call_start
def on_call_start(call: guava.Call):
call.set_persona(organization_name="Harper Valley Property Insurance")
call.set_language_mode(primary="english", secondary=["spanish"])
call.set_task(
task_id="intro",
objective="Answer questions regarding property insurance policy.",
)call.set_language_mode(
primary="english",
secondary=["spanish", "french", "german"],
)