We run a custom-LLM agent over the LLM WebSocket (response_type: “response”). Three questions.
Can a custom-LLM agent initiate an Agent Transfer to another Retell agent? The Agent Transfer node is documented under Conversation Flow, and agent_transfer appears as a tool on single- and multi-prompt agents, but the LLM WebSocket response frame documents no field for it (end_call, transfer_number, show_transferee_as_caller, no_interruption_allowed, digit_to_press). Is there a supported mechanism we have missed?
If not, is it planned, and is there a timeline?
Does an outbound call placed via create-phone-call count against max_concurrent_calls while an inbound call from the same account is still active? We are building our own screening leg (the caller stays on our main agent while we dial the destination on a separate call), so we need to know whether that consumes two concurrency slots.
Context for 1 and 2: we need a mid-call language switch, English agent to Spanish agent, preserving conversation history. We are aware warm transfer is unavailable on custom LLM per thread 2710 (2026-05-16) and are not asking about that.
If the answer to 1 is no, we would also like to know whether show_transferee_as_caller behaves as documented on the custom-LLM path, since it is the one transfer-adjacent field we are not currently sending.
Thanks Mark. Agent ID: agent_946ad1f9f3eb0d4ca348c57fd2
Recent call IDs: call_0f02f30700a6637c45d2380fdaf, call_9b4a688a752369fa5f2c3106b06
Both are ordinary inbound calls on that agent. To be clear about what you are looking at: there is no failing call here. We have never attempted an agent transfer, because we could not find a mechanism to attempt it from the LLM WebSocket in the first place. The question is whether one exists, not why one is broken. What we are trying to build: the caller reaches our English agent, asks to continue in Spanish, and we hand the conversation to a Spanish agent with the transcript intact. Both agents are custom LLM over the WebSocket. So the question is whether that is possible at all on a custom-LLM setup, and if not, what the supported path is. If it means rebuilding one or both agents as Conversation Flow, we would rather know that now than after building around an assumption. On question 3, the case is this: while an inbound caller is live on our agent, our backend places a second outbound call to the business to check a human is available before we hand the caller over. So two calls exist at once, both ours. What we need to know is how that counts against our limits, and whether there is any way to keep those outbound legs from crowding out someone ringing the business
Hello @cremiola.tails thanks for laying out the use case clearly. Short answers:
Custom LLM → Retell Agent Transfer:
No, a Custom LLM WebSocket agent cannot currently initiate the Conversation Flow-style Agent Transfer to another Retell agent through response_type: "response". The LLM WebSocket response frame supports fields like end_call, transfer_number, show_transferee_as_caller, no_interruption_allowed, and digit_to_press, but it does not expose an agent_transfer field for handing the call to another Retell agent. The supported transfer action on this path is transfer_number, i.e. number-based transfer after the agent finishes speaking.
Roadmap / timeline:
I don’t have a committed timeline I can share for Custom LLM support for Retell agent-to-agent transfer. I’d avoid designing around it as an available near-term capability.
Concurrency for your screening-leg design:
Yes — if the original inbound call remains active and you create a separate outbound call via create-phone-call, those are two simultaneous active calls in the same workspace concurrency pool. So that design would consume two concurrency slots while both legs are running.
For your mid-call English → Spanish switch while preserving context, the cleanest architecture on Custom LLM today is usually to keep the user on the same Custom LLM call and have your own WebSocket server manage the language switch and conversation history directly, rather than trying to move the call into a second Retell agent. You can pass the existing transcript/context into your own model prompt and change the agent’s behavior/language from your side. If you need a Retell-managed multi-agent handoff, that path is better served by Retell-hosted Single Prompt / Conversation Flow agents, but Custom LLM does not currently expose that same agent-transfer mechanism.