Close Menu
    Trending
    • Enabling small language models to solve complex reasoning tasks | MIT News
    • New method enables small language models to solve complex reasoning tasks | MIT News
    • New MIT program to train military leaders for the AI age | MIT News
    • The Machine Learning “Advent Calendar” Day 12: Logistic Regression in Excel
    • Decentralized Computation: The Hidden Principle Behind Deep Learning
    • AI Blamed for Job Cuts and There’s Bigger Disruption Ahead
    • New Research Reveals Parents Feel Unprepared to Help Kids with AI
    • Pope Warns of AI’s Impact on Society and Human Dignity
    ProfitlyAI
    • Home
    • Latest News
    • AI Technology
    • Latest AI Innovations
    • AI Tools & Technologies
    • Artificial Intelligence
    ProfitlyAI
    Home » How Agent Handoffs Work in Multi-Agent Systems
    Artificial Intelligence

    How Agent Handoffs Work in Multi-Agent Systems

    ProfitlyAIBy ProfitlyAIDecember 11, 2025No Comments10 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
    Share
    Facebook Twitter LinkedIn Pinterest Email


    of LLMs’ reasoning capabilities with reminiscence, planning, and gear use (creating what we name brokers) has expanded the vary of duties LLMs can carry out.

    Nonetheless, a single agent alone has its limitations. When coupled with too many instruments or a very giant context, it usually results in poor selections and subpar responses.

    This is the reason multi-agent programs have grown in recognition, as they permit us to deal with use circumstances of accelerating complexity.

    Multi-agent programs join quite a few specialised brokers that work collectively, every specializing in a selected activity, whereas the system routes queries to the best knowledgeable.

    Instance of a multi-agent system for buyer help | Image used underneath MIT License

    Consider it as a staff of consultants collaborating, every contributing their very own specialised abilities by way of a “divide-and-conquer” method.

    On this article, we are going to clearly discover one of many key ideas in multi-agent programs: how brokers switch management to at least one one other.

    Contents

    (1) Primer to LangGraph
    (2) Definition of Agentic Handoffs
    (3) Example Scenario
    (4) Handoffs in LangGraph

    Right here is the link to the accompanying GitHub repo.


    (1) Primer to LangGraph

    [Optional Reading]

    LangGraph is an open-source orchestration framework for constructing stateful, LLM-based agentic programs that reliably deal with complicated duties.

    It permits builders to design workflows as graphs, the place every graph consists of nodes (representing duties or LLM calls) and edges (representing management movement).

    LangGraph is my framework of selection for constructing agentic programs due to its key strengths:

    • Low-level controllability that gives exact management over transitions, states, and the way every agent executes.
    • Clear and intuitive graph-based workflows that make complicated logic simple to know, arrange, and hint.
    • Versatile non-chat workflows that help agentic orchestration past conversational brokers (e.g., frameworks like AutoGen)

    The picture under reveals what a graph-based workflow designed for retrieval augmented era appears like:

    Instance of LangGraph graph for retrieval augmented era | MIT License

    (2) Definition of Agentic Handoffs

    First, let’s perceive what a handoff means.

    An agentic handoff is the second when an agent instantly and dynamically passes management to a different agent after ending its work.

    That is vital as a result of we would like duties to be routed to the agent greatest outfitted to offer a context-aware response.

    In technical phrases, a handoff happens when one agent transfers management, duty, or conversational context to a different agent to make sure continuity and relevance within the interplay.

    The picture under illustrates a three-agent structure based mostly on the supervisor sample, through which a central agent coordinates the specialised employee brokers (a analysis agent and a document-authoring agent).

    Image used underneath MIT License

    On this case, handoffs can happen in each instructions between the supervisor and every employee agent. 

    Every employee positive aspects its specialization by way of integration with a selected set of instruments and customised prompts.

    Suppose the consumer question is “Analysis how social media utilization impacts adolescent psychological well being”.

    The supervisor agent, being conscious of the nature of the consumer question and the employee brokers at its disposal, will hand off the duty to the analysis agent to hold out the following flip.

    Right here is the movement:

    1. Supervisor agent analyzes consumer intent and decides that it wants help from the analysis agent
    2. Supervisor passes management (and state*) to the analysis agent
    3. The analysis agent performs the duty and decides whether or not to handoff again to the supervisor agent or finish the dialog.

    * State is the multi-agent system’s short-term reminiscence, capturing current conversations and key data so every agent can act appropriately based mostly on prior context and knowledge.


    (3) Instance State of affairs

    Let’s have a look at the instance situation to anchor our walkthrough.

    We are going to arrange an actual property assistant able to answering queries associated to properties in Singapore. It’s designed as a three-agent system based mostly on the favored supervisor sample.

    On this situation, we now have an actual property supervisor (supervisor) with entry to 2 specialised employee brokers:

    • Property profile agent: Handles queries associated to housing property particulars.
    • Transaction historical past agent: Handles queries associated to property transactions and market tendencies.

    The routing has been simplified to be one-way i.e. as soon as the employee agent completes its activity, the dialog ends.

    Graph diagram of the three-agent supervisor structure | Picture by creator

    For the coordination to work, the supervisor agent should concentrate on its function, total workflow, and brokers at its disposal. We do that with a immediate like this:

    Discover that the directions for the handoff standards are explicitly outlined within the immediate.

    The code for the supervisor node for conditional routing is as follows:

    Whereas multi-agent programs can observe completely different design patterns and scale to much more nodes, this straightforward instance permits us to focus on the thought of agent handoffs.

    The next screenshot reveals the output of our actual property multi-agent system for a consumer question:

    As we are going to deal with agent handoffs, I’ll not be detailing the complete LangGraph setup code (e.g., prompts, nodes, LLM calls). Nonetheless, you will discover the code implementation in this GitHub repo.


    (4) Handoffs in LangGraph

    There are two mechanisms for agent handoffs in LangGraph:

    • Conditional edges 
    • Command object

    (4.1) Conditional Edges (Static Routing-Based mostly Handoff)

    A conditional edge is the traditional graph-routing methodology for handing off management between brokers.

    In a graph, nodes do the work whereas edges inform what to do subsequent. 

    Edges are capabilities that resolve the routing logic (i.e., which node to execute subsequent). This routing might be direct fastened transitions or based mostly on particular circumstances (aka conditional edges).

    Put merely, the movement in a conditional edge is as follows: 

    1. A node generates an output
    2. Output is handed to the conditional edge as enter
    3. The perform within the conditional edge evaluates it and chooses the following node to run
    Conditional edge in the actual property assistant instance situation | Picture by creator

    In LangGraph, we outline conditional edges by calling add_conditional_edges on an StateGraph occasion:

    graph.add_conditional_edges(supply="start_node", path=routing_function)
    • supply argument refers back to the beginning node. It implies that after this node finishes, the conditional routing kicks in.
    • path argument takes the conditional perform, and its return worth controls which node the graph strikes to subsequent.

    Allow us to first discover the routing perform (should_continue) of our actual property instance:

    Here’s what the routing perform is doing:

    1. Learn the supervisor’s newest response and resolve what to do subsequent.
    2. Test whether or not the supervisor explicitly requested at hand the duty off to both of the 2 employee brokers.
    3. When the supervisor names a employee agent, the perform returns that agent’s title as a string, triggering a handoff to that agent.
    4. If the supervisor didn’t request any employee agent, the perform returns "finish", that means the supervisor has responded and the workflow ends.

    With the routing perform arrange, we subsequent outline the conditional edges:

    • The supervisornode serves because the supply entry level of the movement, the place it first receives and analyzes the consumer question.
    • After the supervisor completes processing, the routing perform should_continue comes into play, inspecting the supervisor’s response to find out the handoff choice.
    • The path_map dict interprets the routing perform’s return values into graph targets. That is wanted as should_continue might return “finish”, which path_map converts into END, LangGraph’s cease sign.

    The above basically reveals how agentic handoffs work: the supervisor outputs particular strings that the conditional perform makes use of to path to the following agent or terminate.


    (4.2) Command Object (Dynamic Handoff)

    Conditional edges work nicely for easy, predictable flows, however as soon as the logic turns into extra complicated, wiring collectively many conditional edges can turn out to be tedious and unintuitive.

    To make multi-agent workflows extra versatile and simpler to design, the Command kind was launched to mix state updates and management movement.

    It simplifies issues by letting nodes return a Command object that updates the graph state and specifies the following node to execute.

    As a substitute of counting on predefined edges, the node can itself instantly and dynamically decide the following step based mostly by itself logic at runtime.

    This allows edgeless graphs, the place routing lives within brokers somewhat than in a litter of conditional guidelines, leading to a cleaner, extra versatile method to orchestrate handoffs.

    Here’s a minimal code for utilizing Command in a router node:

    Within the above, the router agent node reads the state, decides what ought to run subsequent, and returns a Command that updates the graph state and factors to the following node. 

    For the reason that node chooses the following step utilizing the goto argument, there isn’t any must outline conditional edges with add_conditional_edges.

    Command makes it such that the handoff logic sits within the nodes somewhat than the perimeters. Therefore, we count on the code in our supervisor node to be extra prolonged:

    • The supervisor node calls an LLM to return aSupervisorDecision structured output object containing two key issues: which agent at hand off to, and any related context, just like the property title extracted from the consumer’s message.
    • If no employee agent is required, the supervisor responds instantly. The node returns a Command that updates the messages with the response and ends the graph.
    • If a handoff is required, the node builds an replace dictionary. It features a routing message from the supervisor and the extracted context (e.g., the property title) within the graph state, in order that the following agent can use it instantly.
    • Lastly, the node returns a Command that specifies the following agent utilizing goto and applies state updates (i.e., replace property_name).

    The Literal["transaction_history_agent", "property_profile_agent"] kind trace permits us to generate the whole Mermaid graph diagram even after we didn’t explicitly outline the perimeters. The precise handoff movement is dealt with by the goto parameter.

    Actual property multi-agent system with edges proven (even with Command getting used) | Picture by creator

    With Command, the nodes instantly resolve which agent runs subsequent and what to go alongside. It eliminates separate routing guidelines and retains the handoff logic clear.


    (4.3) When to make use of conditional edges or Command?

    Right here is how to decide on conditional edges versus Command for handoffs:

    Use conditional edges when:

    • You solely must resolve which node runs subsequent based mostly on the present graph state, with out altering it.

    Use <robust>Command</robust> when:

    • Your node wants to switch its state and decide the following node concurrently. 
    • That is helpful in multi-agent handoffs the place routing to a different agent normally requires spending some data to that agent.

    In my work, I’ve largely switched to utilizing Command as an alternative of conditional edges provided that many multi-agent programs require coordinated graph state updates alongside routing selections.


    Wrapping It Up

    Agent handoffs are the core mechanism that makes a multi-agent system work successfully. On this article, we lined how these handoffs work in observe, with LangGraph serving because the implementation layer to precise them utilizing conditional routing or the Command object. 

    No matter framework we use, the thought stays the identical: clear, constant handoffs are what allow brokers to work collectively.

    Take a look at this GitHub repo for the code implementation.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticleNew materials could boost the energy efficiency of microelectronics | MIT News
    Next Article 7 Pandas Performance Tricks Every Data Scientist Should Know
    ProfitlyAI
    • Website

    Related Posts

    Artificial Intelligence

    Enabling small language models to solve complex reasoning tasks | MIT News

    December 12, 2025
    Artificial Intelligence

    New method enables small language models to solve complex reasoning tasks | MIT News

    December 12, 2025
    Artificial Intelligence

    New MIT program to train military leaders for the AI age | MIT News

    December 12, 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Top Posts

    Layers of the AI Stack, Explained Simply

    April 15, 2025

    We’re Seeing More Signals of AI Job Disruption (Including a “Stop Hiring Humans” Campaign)

    May 6, 2025

    Checking the quality of materials just got easier with a new AI tool | MIT News

    October 14, 2025

    Why humanoid robots need their own safety rules

    June 11, 2025

    Rethinking Data Science Interviews in the Age of AI

    July 4, 2025
    Categories
    • AI Technology
    • AI Tools & Technologies
    • Artificial Intelligence
    • Latest AI Innovations
    • Latest News
    Most Popular

    The Machine Learning “Advent Calendar” Day 9: LOF in Excel

    December 9, 2025

    Build and Query Knowledge Graphs with LLMs

    May 2, 2025

    Wondershare Filmora: Features, Benefits, Review and Alternatives

    December 5, 2025
    Our Picks

    Enabling small language models to solve complex reasoning tasks | MIT News

    December 12, 2025

    New method enables small language models to solve complex reasoning tasks | MIT News

    December 12, 2025

    New MIT program to train military leaders for the AI age | MIT News

    December 12, 2025
    Categories
    • AI Technology
    • AI Tools & Technologies
    • Artificial Intelligence
    • Latest AI Innovations
    • Latest News
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us
    Copyright © 2025 ProfitlyAI All Rights Reserved.

    Type above and press Enter to search. Press Esc to cancel.