> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Handoff • AI Agent SDK

> Handoff: Represents a handoff configuration for delegating tasks to another agent.

# Handoff

> Defined in the [**handoff**](../modules/handoff) module.

<Badge color="blue">AI Agent</Badge>

Represents a handoff configuration for delegating tasks to another agent.

Handoffs are represented as tools to the LLM, allowing agents to transfer
control to specialized agents for specific tasks.

This is the unified mechanism for agent-to-agent task transfer, supporting:

* LLM-driven handoffs (via tool calls)
* Programmatic handoffs (direct Python API)
* Async handoffs with concurrency control
* Cycle detection and depth limiting
* Configurable context policies

## Constructor

<ParamField query="agent" type="Agent" required={true}>
  No description available.
</ParamField>

<ParamField query="tool_name_override" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="tool_description_override" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="on_handoff" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="input_type" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="input_filter" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="config" type="Optional" required={false}>
  No description available.
</ParamField>

## Methods

<CardGroup cols={2}>
  <Card title="tool_name()" icon="function" href="../functions/Handoff-tool_name">
    Get the tool name for this handoff.
  </Card>

  <Card title="tool_description()" icon="function" href="../functions/Handoff-tool_description">
    Get the tool description for this handoff.
  </Card>

  <Card title="default_tool_name()" icon="function" href="../functions/Handoff-default_tool_name">
    Generate default tool name based on agent name.
  </Card>

  <Card title="default_tool_description()" icon="function" href="../functions/Handoff-default_tool_description">
    Generate default tool description based on agent role and goal.
  </Card>

  <Card title="execute_programmatic()" icon="function" href="../functions/Handoff-execute_programmatic">
    Execute handoff programmatically (not via LLM tool call).
  </Card>

  <Card title="execute_async()" icon="function" href="../functions/Handoff-execute_async">
    Execute handoff asynchronously with concurrency control.
  </Card>

  <Card title="to_tool_function()" icon="function" href="../functions/Handoff-to_tool_function">
    Convert this handoff to a tool function that can be called by the LLM.
  </Card>
</CardGroup>

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/agent/handoff.py#L186">
  `praisonaiagents/agent/handoff.py` at line 186
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Handoffs Concept" icon="hand-holding" href="/docs/concepts/handoffs" />

  <Card title="Handoffs Feature" icon="arrow-right-arrow-left" href="/docs/features/handoffs" />
</CardGroup>
