Support triage agent: reply or escalate
An agent that reads a support ticket and returns a typed triage a router can act on, using a tool to check the facts.
The problem
A support inbox is read top to bottom by a person deciding, for each ticket, how urgent it is and who should handle it. It is slow, it is inconsistent between people, and the first reply often waits behind tickets that did not need a human at all.
You want an agent that reads a ticket, looks the order up when it needs to, and returns a typed triage: a category, an urgency, and where it should go. Typed, so the rest of the system can act on it without parsing prose.
Architecture
The agent sits between the two things that make it useful: a tool it calls to look real facts up, and a typed result the router can trust. An agent that only returns a paragraph is a chatbot; one that returns a structured object is a part of a system.
Keep the model's freedom in the middle and pin the edges. The instructions and tools let it decide; the typed output schema stops it from deciding in a shape nothing downstream can read.
What it draws on
Everything here comes from this stage of the roadmap; the project is where those courses meet.
- OpenAI Agents SDK: the core agent loop
- OpenAI Agents SDK: instructions, context and sessions
- Or the same with Google ADK
- Pydantic AI: typed output, tools and retries
What done looks like
| Requirement | Done when |
|---|---|
| Tools | Order lookup and policy lookup are real functions the agent calls |
| Typed | Every run returns a decision object, never loose text |
| Escalation | Legal threats and refunds above a limit always escalate |
| Measured | A table of 30 sample messages with expected and actual decisions |
Where to start
Start with the schema, not the model. Decide the exact object a triage is — the categories, the urgency levels, the routes — and write it down as a type. Then give the agent one tool and its instructions, and only widen either once the typed output is coming back clean on real tickets.
Every expert started right here.