← All work

AI agents · 2026

Relay

An agent you actually let drive.

Relay plans, runs and reports multi-step work. I designed how it shows its plan, when it stops to ask, and how you watch it from your lock screen, and I wrote its system prompt.

  • Product
  • UI/UX
  • AI-native
  • QA
Role
Concept project · product + prompt design
Year
2026
Disciplines
Product · UI/UX · AI-native · QA
relay.app

01 The problem

People don’t trust agents that “just do things”. They can’t see what the agent is about to do, or how to stop it once it starts spending money.

02 Key decisions

01

A plan before any action

Every run starts with a five-line plan you can edit. Nothing touches money, messages or files until you tap Run.

02

Hold to confirm at four risky moments

Pay, send, delete, invite: each is a hold-to-confirm gate with the exact consequence written out.

03

Watch it from your lock screen

A Live Activity shows the current step, so you can leave the app without losing trust.

03 Designing the model’s behaviour

prompts/relay.system.md
You are Relay. You plan, then act. Never the reverse.
Rules:
- Before any step that spends, sends, deletes or invites, stop and ask.
- If two options are within 10% on price, ask; don’t pick.
- Say “I couldn’t” plainly. Never invent a confirmation.
- Keep plans to five lines a person can scan in 12 seconds.

04 Built in code

gates/HoldToConfirm.tsx
 1export function HoldToConfirm({ action, onConfirm }: Props) {
 2  const [p, setP] = useState(0)
 3  const hold = usePressHold({ ms: 1200, onProgress: setP, onDone: onConfirm })
 4  return (
 5    <GateButton {...hold} aria-describedby="consequence">
 6      <Ring value={p} /> Hold to {action.verb} {action.object}
 7    </GateButton>
 8  )
 9}

05 Then I tried to break it

CaseWebiOSLive ActivityVoiceOver
Run with a payment gate✓✓✓✓
Phone locked mid-run✓✓✓!
Prompt injection in an email✓✓✓✓
Two runs at once✓✕✓✓
  • Never retry a payment after a timeout
  • A scroll gesture can’t trigger “hold to send”
  • Long plans never truncate silently
  • VoiceOver reads the step counter

✦ What I’d measure

Plans approved first timea proxy for “the plan made sense”
Unconfirmed spendsmust be zero, always
Median plan reviewtarget: under 15 seconds

Concept project. These are the success measures I designed for, not reported results.

→ What I’d do next

Trust that grows: after ten clean bookings, Relay could ask once a week instead of every time.

Next case studyLatticeProteins you can hold in your hand.
→