Skip to main content

Agent Handoff

Agent handoff enables your AI assistant to seamlessly transfer conversations to other specialized AI assistants while preserving full context. This allows you to build a team of expert agents, each focused on specific domains or tasks, working together to provide comprehensive support in a single conversation.

In this guide, you will learn how to:

  • Configure agent handoff for your AI assistants.
  • Choose between Unified and Distinct handoff modes.
  • Design effective multi-agent architectures.
  • Implement agent handoff via API and Portal.

Overview

Agent handoff represents a powerful approach to building sophisticated AI systems. Instead of creating one complex agent that handles everything, you can build a team of specialized agents that collaborate seamlessly, each bringing domain expertise to the conversation.

note

Agent handoff is model-agnostic and works with any AI model supported by Telnyx, including OpenAI GPT models, Meta Llama models, Anthropic Claude, Qwen, and others. Each agent in the handoff chain can use a different model based on its specialized needs.

How agent handoff works

The agent handoff lifecycle follows these steps:

  1. Detection: The current agent identifies that another agent would be better suited to handle the user's request based on intent, domain, or task requirements.
  2. Agent selection: The system determines which specialist agent should receive the handoff.
  3. Context transfer: Full conversation history, user data, and relevant context is transferred to the target agent.
  4. Transition: The handoff occurs, either seamlessly (Unified mode) or explicitly (Distinct mode).
  5. Continuation: The target agent continues the conversation with full context awareness.

Unified vs Distinct modes

Agent handoff supports two modes that determine how the transition appears to the user:

Unified Mode (Default)

In Unified mode, assistants share the same context and voice, creating a seamless experience where specialists work behind the scenes. The user experiences one consistent agent, even though multiple specialized assistants are handling different parts of the conversation.

  • Same voice: All agents use the same voice configuration.
  • Transparent transition: User doesn't notice the handoff.
  • Shared context: Full conversation history available to all agents.
  • Use case: When you want a unified brand experience.

Distinct Mode

In Distinct mode, each assistant retains its voice configuration, creating a conference call experience with multiple distinct voices. The user hears different voices as they're transferred between specialists.

  • Individual voices: Each agent uses its own voice configuration.
  • Explicit transition: User hears "I'm transferring you to [specialist name]".
  • Shared context: Full conversation history available to all agents.
  • Use case: When you want to highlight specialist expertise.

Key benefits

  • Specialist routing: Direct queries to domain experts who provide accurate, focused responses.
  • Context preservation: Full conversation history travels with the handoff, eliminating repetition.
  • Reduced complexity: Build focused agents instead of one mega-agent trying to do everything.
  • Better user experience: Users get the right expert for their specific needs.
  • Easier maintenance: Update individual specialist agents without affecting the entire system.
  • Scalable architecture: Add new specialists as your product or service expands.

Common use cases

  • Multi-domain support: Transfer between technical support, billing, and sales departments with full context.
  • Workflow automation: Information gathering agent → processing agent → confirmation agent.
  • Triage and routing: Assessment agent evaluates needs, then routes to appropriate specialist.
  • Language switching: Detection agent identifies language, hands off to language-specific agent.
  • Escalation tiers: Level 1 support → Level 2 support → Level 3 specialist.
  • Task segmentation: Browse/Research agent → Purchase agent → Post-sale support agent.

Best practices

Following these best practices will help you design effective multi-agent systems and maximize the value of agent handoff.

Agent architecture design

When to split agents vs one agent

Split into multiple agents when:

  • Domains require significantly different knowledge bases.
  • Agents need different tools or integrations.
  • Response patterns differ substantially.
  • You want to independently update different capabilities.

Keep as one agent when:

  • Tasks are closely related with significant overlap.
  • Context switching would reduce quality.
  • User experience benefits from continuity.
  • The domain is narrow and well-defined.

Specialization patterns

  • By domain: Technical support, billing, sales, product information.
  • By task: Information gathering, transaction processing, confirmation.
  • By customer segment: VIP customers, trial users, enterprise accounts.
  • By complexity: Simple queries, complex troubleshooting, escalations.
  • By channel: Phone, chat, email (if behavior differs significantly).

Context requirements

Each specialist agent should receive:

  • Full conversation history with previous agents.
  • User identification and account information.
  • Previous interactions and preferences.
  • Current intent and goals.
  • Any decisions or commitments made.

Handoff trigger design

Clear criteria for handoff

Define explicit triggers:

  • Intent-based: "I need to talk to billing" → Billing agent.
  • Keyword-based: User mentions "refund" → Billing agent.
  • Task completion: Information gathered → Processing agent.
  • Capability-based: Technical question beyond triage scope → Technical specialist.
  • Sentiment-based: Frustrated customer → Senior support agent.

Avoiding handoff loops

Prevent agents from endlessly transferring to each other:

  • Define clear responsibility boundaries for each agent.
  • Implement handoff history tracking.
  • Set maximum handoff limits per conversation.
  • Design failsafe: after N handoffs, route to human agent.
  • Test handoff decision logic thoroughly.

Graceful transitions

Configure agents to announce handoffs clearly:

Unified mode:

"Let me look into your billing question..."
[Handoff to billing agent occurs seamlessly]
[Billing agent continues without announcing the transition]

Distinct mode:

"I'm transferring you to Sarah, our billing specialist, who can help with your refund request."
[Handoff occurs]
"Hi, this is Sarah from billing. I can see you're asking about a refund..."
note

Use the Transfer Call API to manage transfers between assistants programmatically.

Context preservation strategies

What context to pass

Essential context to transfer:

  • User information: Name, account ID, customer tier.
  • Conversation history: What was discussed with previous agents.
  • User intent: What the user is trying to accomplish.
  • Collected data: Information gathered (order numbers, issue details, etc.).
  • Agent actions: What previous agents already tried.
  • Sentiment: User's emotional state (frustrated, satisfied, confused).

Using dynamic variables

Leverage dynamic variables to pass structured context:

  • {{customer_name}}, {{account_id}}, {{customer_tier}}.
  • {{issue_type}}, {{priority_level}}.
  • {{previous_agent}}, {{handoff_reason}}.
  • Custom variables specific to your domain.

Learn more about dynamic variables.

Memory configuration

Configure agent memory settings to ensure context persistence:

  • Enable conversation memory for all agents in the handoff chain.
  • Use consistent memory keys across agents.
  • Set appropriate memory retention periods.

Learn more about memory configuration.

Industry-specific templates

Healthcare: Triage to Specialist

Scenario: Patient calls about symptoms

Triage Agent:
- Collects symptoms, medical history, urgency level.
- Assesses severity and appropriate specialty.
- Gathers insurance information.

Handoff Trigger:
- Specific condition identified (cardiology, dermatology, etc.).
- Severity level requires specialist consultation.

Specialist Agent (e.g., Cardiology):
- Reviews triage notes and symptoms.
- Provides condition-specific guidance.
- Schedules appointment with cardiologist.
- Explains what to expect.

Benefits:
- Triage agent handles initial screening efficiently.
- Specialist agent provides expert medical guidance.
- No need to repeat symptoms or medical history.

E-commerce: Browse → Purchase → Support

Scenario: Customer shopping for products

Browse Agent:
- Answers product questions.
- Provides recommendations.
- Helps compare options.
- Adds items to cart.

Handoff Trigger: User ready to purchase
Purchase Agent:
- Guides through checkout.
- Handles payment processing.
- Applies discounts/promo codes.
- Confirms order.

Handoff Trigger: Post-purchase question
Support Agent:
- Tracks order status.
- Handles returns/exchanges.
- Resolves delivery issues.

Benefits:
- Each agent optimized for specific task.
- Smooth shopping experience.
- Consistent context across journey.

Financial Services: Authentication → Account → Fraud

Scenario: Customer calling about suspicious activity

Authentication Agent:
- Verifies customer identity.
- Security questions.
- Multi-factor authentication.

Handoff Trigger: Authentication successful
Account Agent:
- Accesses account information.
- Reviews recent transactions.
- Answers general account questions.

Handoff Trigger: Suspicious activity detected
Fraud Agent:
- Investigates flagged transactions.
- Freezes card if necessary.
- Issues replacement card.
- Sets up fraud monitoring.

Benefits:
- Security handled by specialized agent.
- Fraud expertise when needed.
- Reduces risk of errors.

Customer Support: Tier 1 → Tier 2 → Tier 3

Scenario: Technical support escalation

Tier 1 Agent:
- Handles common issues.
- Tries basic troubleshooting.
- Resolves 70% of queries.

Handoff Trigger: Issue not resolved after standard troubleshooting
Tier 2 Agent:
- Advanced troubleshooting.
- System configuration expertise.
- Resolves complex technical issues.

Handoff Trigger: System-level issue or bug identified
Tier 3 Agent (Engineering Specialist):
- Deep system knowledge.
- Can create bug reports.
- Provides workarounds for known issues.
- Escalates to development team if needed.

Benefits:
- Efficient resource utilization.
- Expertise matched to complexity.
- Full troubleshooting history preserved.

Configuration

Agent handoff can be configured through the Portal's AI Assistant builder or via API when creating or updating assistants.

Portal configuration

  1. Navigate to your AI Assistants in the Telnyx Portal.

AI Assistants List

  1. In the Tools section, add a Handoff tool.

Add Tool Handoff Menu

  1. Choose your voice mode: Unified (seamless) or Distinct (conference call style).
  2. Enter a display name for the target assistant.
  3. Select the target assistant from the dropdown menu.
  4. Click the plus (+) button to add additional target assistants if needed.
  5. Save your configuration.

AI Assistant Handoff Configuration

How handoff appears to users

Unified Mode Experience: The user experiences a single, consistent agent voice throughout the conversation. When a handoff occurs, the transition is completely seamless - the agent simply continues helping without announcing any change.

User: "I need help with my billing"
Triage Agent (Voice A): "I can help you with that. What's your question about billing?"
User: "I was charged twice for my last order"
[Handoff to Billing Agent occurs silently]
Billing Agent (Voice A): "I see you were charged twice. Let me look into that for you..."

Distinct Mode Experience: The user hears different voices as they're transferred between specialists, creating a conference call experience where each expert introduces themselves.

User: "I need help with my billing"
Triage Agent (Voice A): "I'll transfer you to Sarah from our billing team who can help."
[Handoff occurs]
Billing Agent (Voice B): "Hi! This is Sarah from billing. I can see you have a question about being charged twice..."

API implementation

Creating an assistant with agent handoff

When creating an AI assistant via API, include the Handoff tool with target assistant IDs in the tools array:

curl -L 'https://api.telnyx.com/v2/ai/assistants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
--data-raw '{
"name": "Customer Support Triage Agent",
"instructions": "You are a triage agent for customer support. Listen to customer needs and determine if they need technical support, billing help, or sales assistance. Handoff to the appropriate specialist when needed.",
"model": "meta-llama/Meta-Llama-3.1-70B-Instruct",
"tools": [
{
"type": "handoff",
"handoff": {
"voice_mode": "unified",
"ai_assistants": [
{
"name": "Technical Support",
"id": "asst_tech_abc123"
},
{
"name": "Billing Support",
"id": "asst_billing_def456"
},
{
"name": "Sales",
"id": "asst_sales_ghi789"
}
]
}
}
]
}'

Distinct mode configuration

To enable distinct voice mode where each agent retains its voice configuration:

curl -L 'https://api.telnyx.com/v2/ai/assistants' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
--data-raw '{
"name": "Triage Agent",
"instructions": "You are a triage agent. When handing off, announce the specialist name.",
"model": "meta-llama/Meta-Llama-3.1-70B-Instruct",
"tools": [
{
"type": "handoff",
"handoff": {
"voice_mode": "distinct",
"ai_assistants": [
{
"name": "Technical Specialist",
"id": "asst_tech_xyz789"
}
]
}
}
]
}'

Updating handoff configuration

You can update handoff settings for an existing assistant:

curl -L 'https://api.telnyx.com/v2/ai/assistants/{assistant_id}' \
-X PATCH \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
--data-raw '{
"tools": [
{
"type": "handoff",
"handoff": {
"voice_mode": "unified",
"ai_assistants": [
{
"name": "Priority Support",
"id": "asst_priority_abc123"
},
{
"name": "Standard Support",
"id": "asst_standard_def456"
}
]
}
}
]
}'

Troubleshooting

Common issues

Handoff loops

Symptoms: Agents keep handing off to each other repeatedly, creating an endless loop.

Possible Causes:

  • Overlapping agent responsibilities.
  • Unclear handoff criteria.
  • Agents don't recognize when they should handle the request.

Solutions:

  • Define clear, mutually exclusive responsibility boundaries for each agent.
  • Document what each agent handles in their instructions.
  • Add specific instructions: "Only handoff if the request is truly outside your domain".

Context loss after handoff

Symptoms: Target agent doesn't have access to previous conversation history or user information.

Possible Causes:

  • Dynamic variables webhook not configured for target agent.
  • Target agent's memory query doesn't include relevant past conversations.
  • Conversation metadata not being passed consistently.

Solutions:

  • Configure dynamic variables webhook for all agents in the handoff chain.
  • Ensure all agents use the same conversation query logic to access relevant memory.
  • Use consistent conversation metadata across agents.
  • Test handoff flows in Portal conversation history.
  • Verify that dynamic variables are properly passed to target agents.

Incorrect agent selection

Symptoms: User gets handed off to wrong specialist, requiring additional transfers.

Possible Causes:

  • Triage agent misunderstands user intent.
  • Agent instructions too vague about when to handoff.
  • Similar keywords trigger wrong agent selection.

Solutions:

  • Refine triage agent instructions with specific examples.
  • Improve intent detection with more training examples.
  • Add confirmation step: "It sounds like you need billing help, is that correct?".
  • Review conversation logs to identify misrouting patterns.
  • Update agent instructions based on common mistakes.

Handoff doesn't trigger

Symptoms: Agent tries to handle request outside its expertise instead of handing off.

Possible Causes:

  • Handoff tool not properly configured.
  • Agent instructions don't specify when to handoff.
  • Target assistant IDs incorrect or missing.

Solutions:

  • Verify handoff tool is added to agent.
  • Check target assistant IDs are valid.
  • Add explicit handoff triggers in agent instructions.
  • Test with direct requests: "I need to talk to billing".
  • Review agent instructions for conflicting guidance.

Testing strategies

Test handoff triggers:

  • Provide various user requests to verify correct agent selection.
  • Try edge cases (ambiguous requests, multi-domain questions).
  • Test with different phrasings of the same intent.

Verify context preservation:

  • Check that target agent has full conversation history.
  • Confirm user doesn't need to repeat information.
  • Validate that collected data (account numbers, etc.) transfers.

Monitor conversation flows:

  • Review conversation transcripts in Portal.
  • Track average number of handoffs per conversation.
  • Identify common handoff patterns.
  • Measure resolution time with vs without handoffs.

Load testing:

  • Test with multiple concurrent conversations.
  • Verify handoffs work reliably under load.
  • Check that context remains accurate with multiple handoffs.