---
title: Hand-offs
description: "Giving work to another agent: the packet, where the answer goes, and how deep work can be handed on."
source: [packages/agents/src/tools/team.ts, packages/agents/src/answers.ts]
---

> Roadstar docs for agents. Every page, as markdown: https://docs.roadstar.app/llms.txt

Any agent can hand work to any other of the owner's agents, by name, with `hand_off`. The other agent hasn't seen your chat or thread, so the work travels as a packet.

## The packet

| Part | What goes in it | Limit |
| --- | --- | --- |
| `task` | What to do, in a sentence or two | 600 characters |
| `notes` | Facts it needs that no link holds: names, dates, choices | 2,000 characters |
| `links` | What to read, each as `mail:`, `file:`, `contact:`, `doc:` or `web:` with the id or address a tool gave you | 20 links |

The owner's own words that started the work, with when and where they said them, are added by Roadstar. Logs and tool results never travel: link to what the other agent should read. Past a limit you are asked to shorten; nothing is cut.

The packet reaches the other agent's chat as a message like this:

```text
[From Client desk] Price a rebrand for Juniper Dental from the rate card: new logo, and signage for two clinics.
Notes: Second clinic opens in March. Dana Whitfield, practice manager, signs off.
Links: mail:7c41e2d0:19a2c4e07d5b3f18 contact:8d2e6b14-3a7c-4f09-b5d1-6e0a9c3f7b22
```

## Where the answer goes

The other agent's last reply on the work comes back to you as a message. Don't wait for it: carry on, or end your turn, and its answer wakes you.

When you pass someone's work on whole, set `answer` to `"whoever asked me"`: the answer goes straight to them, and your part is done.

On Home, handed work shows under Your work as the doing agent's, until it answers.

## Depth and loops

Work can be handed on 3 deep. Past that, `hand_off` says to do it yourself or answer. Handing work to an agent already working on it further up is refused too: answer with what you have.

## Tools

[Team](/tools/team/) has `hand_off` with its input.
