Support Ticket Triage and Answer Suggestion
Every support queue does the same three things: understand the message, find who or what should handle it, and โ for the recurring questions โ answer it from a known-good template. Aito v2 does all three as queries over your ticket history: the incoming text is evidence, the historical resolutions are the training data, and there is no model to deploy between them.
Suggest an answer from resolved history
prompts is the message history; answered questions carry the resolved
answer. The reliable way to suggest a reply is retrieval: rank the
answered history by relevance to the incoming message with BM25 search, and
surface the closest resolved tickets and the answer they were given.
{
"from": "prompts",
"search": { "field": "prompt", "text": "refund" },
"select": ["prompt", "answer", "$highlight"],
"limit": 3
}
{ "offset": 0, "total": 10, "hits": [
{ "answer": "40", "prompt": "What is the refund processing time?" },
{ "answer": "40", "prompt": "How long does it take to get a refund?" },
{ "answer": "39", "prompt": "Can I get a refund for a returned product?" } ] }
The top matches converge on the same resolved answer (40), so the suggestion
is "answer 40" with the supporting tickets attached for the agent to confirm.
Retrieval is the right tool here rather than predict "answer". With dozens
of distinct answers and only a few example questions each, direct
classification has too little per-answer signal to beat the prior; ranked
similarity over the resolved history does not need that per-class density.
Use predict for the low-cardinality routing decisions below (type,
category, assignee), and retrieval for the open-ended "which known answer".
Classify the message
Route by predicted type or category โ plain single-label classification from text:
{
"from": "prompts",
"where": { "prompt": { "$match": "the app crashes when I pay" } },
"predict": "type",
"select": ["$value", "$p", "$why"],
"limit": 2
}
$why cites which tokens drove the classification โ visible reasoning for
the agent who reviews the queue.
Search the history
The same text column is BM25-searchable for agent-assist ("show me similar past tickets"), with full boolean syntax:
{
"from": "prompts",
"where": { "prompt": { "$search": "(refund OR return) -subscription" } },
"select": ["prompt", "type"],
"limit": 5
}
Why Aito for this
- Cold-start friendly. Answer suggestions come straight from the resolved history โ even a single similar past ticket is retrievable, and every new resolution improves the next suggestion without a retraining cycle.
- Right tool per job.
predictfor the low-cardinality routing calls (type, category, assignee) where each class has plenty of examples; rankedsearchretrieval for the open-ended "which known answer" over a large, thinly-exemplified answer set. - Explainable classification โ
$whyon everypredict, and$highlighton every retrieval, so the agent sees the tokens behind each suggestion.
Related: Query Reference ยท Inference guide ยท Full-text search