One complete example per tower.
Each strip below is a full, runnable main.py for that
provider, not a fragment. Swap in your own API key and it deploys as
shown. Every tool is a client tool: minmo deploys its schema, while
your live session handles calls.
AssemblyAI default provider
deploy() creates a persistent agent record on
AssemblyAI's servers. Your live session handles
get_weather calls.
Connect: mint_token() returns a
short-lived client token. Open a voice session with it (AssemblyAI's
browser SDK or a phone bridge); that live session is what actually
calls get_weather.
ElevenLabs
Closest analog to AssemblyAI: deploy() creates a
persistent agent with client tools.
provider_options picks the LLM and voice; both have
defaults (gemini-2.5-flash, ElevenLabs' "Rachel" voice)
if omitted.
Connect: mint_token() returns a signed
WebSocket URL, not a bare token. Open a conversation directly
against it.
Hume client tools only
Hume issues an api_key and a
secret_key separately; pass the secret through
provider_options. Hume's prompts, tools, and configs
are name-unique versioned resources: redeploying with the same name
adds a new version instead of erroring.
Connect: mint_token() exchanges your
api_key + secret_key for an OAuth access
token. Start an EVI session with it; your own app code (not minmo)
handles each tool.call over that session.