Skip to content
TriedDocs
Get started

Choose an agent type

Compare single prompt, multi-prompt, conversation flow, custom LLM and chat agents, and pick the right one for your use case.

An agent is two things: the agent itself (voice, language, speech, call and privacy settings) and a response engine that decides what the agent says. The engine is set in the agent's response_engine field. Tried has three engine types for voice agents, and chat agents reuse two of them for text.

The Create agent dialog offers four types under Type: Single prompt, Multi-prompt, Conversation flow and Custom LLM. Chat agents are created from Chat Agents in the sidebar.

The four agent types in the Create agent dialog

At a glance#

Type response_engine.type Engine resource Best for
Single prompt retell-llm Retell LLM with no states Free-form conversations: receptionists, FAQs, simple booking
Multi-prompt retell-llm Retell LLM with states and starting_state Calls with clear stages, each with its own instructions and tools
Conversation flow conversation-flow Conversation flow (nodes and edges) Scripts that must follow a set path, compliance wording, branching on data
Custom LLM custom-llm Your WebSocket server (llm_websocket_url) Your own model or agent framework, full control of every reply
Chat agent retell-llm or conversation-flow Same engines, text only Website chat, chat API, SMS conversations

Single prompt#

One prompt (general_prompt) and one set of tools (general_tools) drive the whole call. The model decides what to say next from the prompt and the conversation so far.

Pick it when the conversation is open-ended and the rules fit in one prompt. It is the fastest way to start, and most receptionist and FAQ agents never need more.

Watch for: long prompts that try to cover many stages. Once the prompt has sections like "first do X, then Y, only then Z", the model may skip steps. Move to multi-prompt or a flow.

See Single prompt agents.

Multi-prompt#

The same Retell LLM resource with states. Each state has a state_prompt, its own tools, and edges to other states. The general prompt and general tools still apply in every state. The model moves between states by calling a transition_to_<state> function that the runtime generates from each edge's description, and edges can pass values along as dynamic variables.

Pick it when the call has stages, such as triage, then booking, then confirmation, and each stage needs different instructions or tools. It keeps each prompt short.

Watch for: the model chooses when to move, based on the edge descriptions. If a step must always happen in a fixed order, a conversation flow is stricter.

See Multi-prompt agents.

Conversation flow#

A graph of nodes: conversation nodes that speak, function nodes that call tools, transfer, SMS, code, branch, extract-variable and end nodes, plus reusable components. Edges carry conditions written as prompts, as equations on dynamic variables, or both. A global prompt applies to every node, and global nodes can be entered from anywhere.

Pick it when the call must follow a script, when you branch on data (for example {{tier}} == gold), or when you need per-node control over the model, voice speed, interruption sensitivity, transcription mode or knowledge bases.

Watch for: more set-up work than a prompt. Flex mode compiles a flow into one prompt when you want the model to move between steps more freely.

A conversation flow on the canvas

See Conversation flow.

Custom LLM#

Tried handles the phone call, speech recognition, turn-taking and text to speech. Your server writes the replies. For every call, Tried opens a WebSocket to {llm_websocket_url}/{call_id}, streams the live transcript to it and speaks what your server streams back. The protocol is compatible with Retell's custom LLM protocol (ping_pong, call_details, update_only, response_required, reminder_required in; response, agent_interrupt, tool_call_invocation, update_agent, metadata out).

Pick it when you already run your own agent logic, need a model that Tried does not offer, or need to call internal systems that cannot be exposed as HTTP functions.

Watch for: you own the reply latency. Knowledge bases and platform functions are not available on this engine; your server does that work. The editor still has the voice, speech, call, analysis and webhook settings.

The Custom LLM option with the WebSocket URL field

See Custom LLM.

Chat agents#

Chat agents are a separate resource for text. They take a response_engine of type retell-llm or conversation-flow, so the same prompt or flow can serve both a voice agent and a chat agent. Chats are billed per message and support post-chat analysis and chat_started, chat_ended and chat_analyzed webhooks. You can create one from an existing voice agent.

See Chat agents.

Sharing an engine between agents#

Retell LLMs and conversation flows are standalone resources. In the Create agent dialog, set Engine to Reuse an existing LLM (or Reuse an existing flow) to point a new agent at an engine another agent already uses. Both agents then edit the same prompt and tools, while voice, call and webhook settings stay per agent. This suits one script served in two voices or two languages.

Reusing an existing engine for a new agent

Speech-to-speech#

Single prompt, multi-prompt and conversation flow agents can also run on a speech-to-speech model (gpt-realtime or gpt-realtime-mini) instead of separate transcription, LLM and voice. Set s2s_model on the Retell LLM, or model_choice.type: "s2s" on a flow. See LLM options.

Changing type later#

The agent type follows from its engine, so you change type by pointing response_engine at a different engine with Update agent. The agent keeps its voice, speech, call and analysis settings. In the dashboard, the simplest path is to create a new agent of the new type and copy the prompt across.

Decision guide#

My agent answers questions and books appointments. Which type?

Start with a single prompt, a knowledge base and booking functions. Move to multi-prompt only if the agent starts skipping steps.

I must read a compliance disclosure word for word.

Use a conversation flow with a conversation node set to static text, or a single prompt with a static Welcome Message if the disclosure is the opening line.

I want to use a model from a provider Tried does not offer.

Use a Custom LLM agent and call that model from your server.

I need the same agent on my website chat.

Create a chat agent from the voice agent. It reuses the engine.