Routing and Handoffs

The most common shape of a working agent system is not one clever agent. It is a cheap router in front of several narrow specialists, with a hard rule about when to give up and fetch a human.

Why routing beats one big agent

Shorter prompts

A billing specialist does not carry instructions about password resets. Less context, fewer mistakes, lower cost.

Narrow tool access

The refund tool is only reachable from the billing agent. That is a security boundary, not just tidiness.

Cheaper models where it is easy

Classification is easy. Run it on the smallest model you have, and save the big one for the hard specialist.

Somewhere to escalate

Low confidence has an obvious answer: a human. One clean exit beats an agent guessing on the 5% it cannot handle.

Optional: load a real model

Live: a support ticket router

Type a request the way a real person would write it. The router scores it against four queues, picks one, and hands off. Below the confidence threshold it stops and escalates instead of guessing, and you can move that threshold to feel the tradeoff.

The classification, the scores, the handoff, and the specialist's reply appear here.

The specialists behind this router

QueueOwnsTools it is allowed
BillingCharges, refunds, invoices, plan changescalculator, date_math
TechnicalErrors, outages, integrations, data problemsjson_check, word_count
LearningWhat to study, course and track questionssearch_courses
AccountAccess, contacts, data deletion, privacynone, read only by design
HumanAnything under the confidence threshold, anything about legal action, and every refund over a set amountnone
Set the threshold with a spreadsheet, not a feeling. Route a hundred real requests by hand, then check what the router would have done. The number you want is the point where wrong routes cost more than escalations do. Teams that skip this step either escalate everything, which annoys people, or escalate nothing, which is worse. Next: how to test an agent.

Free from AI School - no signup, everything runs in your browser.