Support Desk Agent
Triages customer tickets, drafts replies that cite policy, and sends each one to a person for approval.
Open the evaluation boardProblem
Small support teams spend their day on repeat questions about late orders, damaged bags and subscription changes. Generic chatbots answer fast and invent policies.
Try it live
File a ticket as a customer, for example a torn bag. Switch to the agent console, read the cited draft, then approve, edit or escalate it. Deflection and accuracy counters update as you work.
Proves
Retrieval you can audit, human-in-the-loop design, and Django at production depth.
Signal chain
- 01redact PIIunder 10 ms
- 02screen for injection862 ms
- 03classify784 ms
- 04hybrid search603 ms
- 05rerank6.1 s
- 06look up orderunder 10 ms
- 07draft with citations2.5 s
- 08check claimsunder 10 ms
- 09routeunder 10 ms
- Model
- Tool
- Retrieval
- Guard
Stack
Django 5.2 · Django Ninja · Celery · Postgres + pgvector · Vue agent console · SSE
Engineering highlights
- A reply can go out automatically only when every claim in it cites a policy passage or a tool result.
- Hybrid keyword and vector search, with recall measured on a labelled set in CI.
- The policy corpus is embedded once at build time, so a ticket costs one injection check, one query embedding, one rerank and at most three model calls.
| Operating limit | Value |
|---|---|
| Tickets per visitor per day | 20 |
| Visitor data kept | 24 h |
| Auto-send for visitors | Off |
| Model calls per ticket (est.) | 6 |
| Sample | Language | Steps | Model calls | Tokens in / out | Time | Outcome |
|---|---|---|---|---|---|---|
| Torn bag | English | 9 | 5 | 1,351 / 1,126 | 10.9 s | Draft, awaiting approval |
| Late parcel | English | 9 | 5 | 1,302 / 935 | 4.6 s | Draft, awaiting approval |
| Wrong grind | English | 9 | 6 | 2,482 / 1,800 | 6.7 s | Draft, awaiting approval |
| Someone else's order | English | 9 | 5 | 1,181 / 357 | 2.2 s | Draft, awaiting approval |
| Injection attempt | English | 3 | 1 | 35 / 0 | 457 ms | Handed to a person: injection attempt |
| Stale decaf | Czech | 9 | 6 | 2,557 / 1,637 | 5.2 s | Draft, awaiting approval |
| Broken grinder | Czech | 9 | 5 | 1,493 / 646 | 2.7 s | Draft, awaiting approval |
| Cancel an order | Czech | 9 | 5 | 1,312 / 544 | 3.2 s | Draft, awaiting approval |
Measured on October 7, 2026 on a development machine, through the gateway and the providers' free tiers. A live run's figures vary with the providers' load.
Status The evaluation board for this part is open. It starts on curated samples, and your own text runs live within your daily allowance. Open the evaluation board