Handoffs are the seams in a multi-agent system. Poor handoffs — where the receiving agent lacks context, receives ambiguous state, or has to redo work the previous agent already did — are a primary source of inefficiency and errors in multi-agent workflows. Good handoff design is as important as the individual agent implementations.
A well-structured handoff includes: what was accomplished (with references to artifacts like PR numbers, commit hashes, or file paths rather than re-embedding content), what decisions were made and why, what the next agent is expected to do, and any constraints or warnings the previous agent discovered. This is roughly equivalent to a good engineering handoff memo.
Handoffs can be synchronous (the previous agent waits for confirmation that the next agent received the context) or asynchronous (the previous agent publishes to an event bus and moves on). Asynchronous handoffs are more efficient but require careful event schema design to ensure the receiving agent has everything it needs in the event payload.