## TL;DR
A resolution agent starting cold after triage means the handoff carried the ticket but not the understanding: triage's findings lived in its session and died there. Define a handoff contract: triage must produce a context packet (issue summary, evidence, tried steps, recommended next action) that the resolution agent is required to read. Handoffs between agents need the same rigor as handoffs to humans.

## The query

```text
multi-agent handoff lost context between triage and resolution agents
```

## Use this when

- Resolution agents start without triage context
- Triage findings get lost between agents
- Customers repeat information to the second agent
- You are building multi-agent pipelines

## Not for

- Designing a single agent
- Choosing agent frameworks
- Staffing human teams
- Ticket assignment rules

## Steps

### 1. Define the handoff contract as a schema

Specify exactly what triage must hand over: issue summary, classification, evidence (ids, errors, links), steps already tried, customer state (frustration, waiting time), recommended next action. A schema makes the handoff checkable; prose makes it hopeful.

Expected output: a versioned handoff schema.

### 2. Make the packet required, not optional

The orchestrator refuses to route to resolution without a complete packet: missing fields block the handoff. Optional context gets skipped under time pressure; required context gets written. Enforce it structurally.

Expected output: handoff gating on packet completeness.

### 3. Carry structured data, not just summaries

Ids, error strings, configuration values: pass them as fields the resolution agent's tools can consume directly. A summary that says "the order had an issue" without the order id forces the resolution agent to re-derive everything.

Expected output: machine-usable fields in every packet.

### 4. Have the resolution agent acknowledge the packet

The resolution agent's first action references the packet: it acts on the recommended next step or explicitly overrides it with a reason. Acknowledgment proves the transfer worked and surfaces packets that are wrong (better wrong-and-visible than wrong-and-silent).

Expected output: visible packet acknowledgment in resolution behavior.

### 5. Measure context loss as a pipeline metric

Track re-asks after handoff, repeated diagnostic steps, and customer "I already told the other agent" complaints. These are context-loss metrics; drive them down. What gets measured gets handed off.

Expected output: post-handoff repeat metrics tracked.

## Template: the handoff packet

```text
Agent-to-agent handoff:
  Issue summary: [one line]
  Classification: [category, severity, confidence]
  Evidence: [ticket id, order id, error strings]
  Tried by triage: [steps and outcomes]
  Customer state: [sentiment, wait time, history]
  Recommended next: [what resolution should do first]
```

## Variant phrasings

### triage to resolution handoff no context

Steps 1 and 2. Schema plus required packet.

### second agent asks same questions

Steps 4 and 5. Acknowledgment plus metrics.

### multi agent support pipeline context

Full sequence as the pipeline design.

## Why it happens

Multi-agent pipelines get built as independent agents plus a router: each agent is excellent within its session, and the router moves the ticket between them. But the router moves the ticket, not the understanding; each agent's context is session-local by architecture. The pipeline has handoffs in name only until someone designs the context transfer deliberately.

## Edge cases

- Long triage sessions: cap the packet size; the resolution agent needs the essentials, not the transcript. Link the transcript for reference.
- Triage uncertainty: when triage is unsure, the packet must say so with confidence levels. False certainty propagates worse than admitted uncertainty.
- Handoff loops: resolution bouncing back to triage needs the packet to accumulate, not reset. Append, do not overwrite.
- More than two agents: the packet schema must serve every downstream consumer. Version it and keep it backward compatible.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_6oDRH3gvbSWe5w2HLRvodg
