---
title: Making an agent
description: Sam asks Roadstar for help with proposals, and Roadstar makes Proposal writer from a job description and hands it the first piece of work.
agents: [Roadstar, Proposal writer]
tools: [make_agent, hand_off, remember]
source: [packages/agents/src/tools/team.ts, packages/agents/src/prompts.ts]
---

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

## What Sam said

In Roadstar's chat:

> I'm spending my evenings on proposals. Can someone take them on? Start with the Ortiz Bakery packaging one: Rosa wants it by Friday.

## 1. Roadstar decides it's a lasting job

No agent's job covers proposals, and proposals will keep coming, so Roadstar makes an agent for the job. A one-off task would go to a thread instead.

A job description has four parts, 600 characters together. It says what the agent owns and how it works, never this week's task:

```json title="make_agent"
{
  "name": "Proposal writer",
  "job": "Prices and writes proposals and quotes from the rate card",
  "owns": "Every proposal and quote Fernhill Studio sends: scope, price and timeline.",
  "good": "Priced from the current rate card, in Sam's voice, one page where it can be, sent to Sam the same day it's asked for.",
  "works": "When a client asks for a price or another agent hands one over.",
  "asksFirst": "Anything off the rate card, discounts, and before any proposal goes to a client.",
  "reportsTo": "Client desk",
  "department": "Clients"
}
```

`make_agent` returns:

```json
{ "made": "Proposal writer", "next": "Hand it the work with hand_off." }
```

The new agent shows on Home with Undo, and on the chart under Client desk.

## 2. Roadstar hands it the first work

The request that led to the agent goes to it as its first work, with Sam's words:

```json title="hand_off"
{
  "agent": "Proposal writer",
  "task": "Write the Ortiz Bakery packaging redesign proposal for Rosa Ortiz, due Friday.",
  "notes": "Sam's first proposal for you. Rosa wants it by Friday.",
  "links": ["contact:e2a9f4c1-6b07-4d38-a15e-93c0b7d2f846"]
}
```

Roadstar's reply in its chat is short:

> I've made Proposal writer, under Client desk, and handed it the Ortiz Bakery proposal for Friday.

## 3. A note for the new agent

Later, in Proposal writer's chat, Sam says: "Remember, proposals come to me as Google Docs." Proposal writer keeps a note, which its chat and all its threads read from then on:

```json title="remember"
{ "note": "Sam wants proposals as Google Docs." }
```

## What changes for the other agents

Every agent's instructions list the others by name with their job, so Client desk and Bookkeeper can now hand proposals to Proposal writer. The chart (`reportsTo`, `department`) is for Sam to see agents by: nothing that runs an agent reads it.

## Related

- [Agents and the chart](/how-it-works/agents/)
- [Hand-offs](/how-it-works/hand-offs/)
- [A proposal from the template](/use-cases/proposal-from-template/): Proposal writer's first proposal
- Tools: [team](/tools/team/)
