What is Tessary's frustration classifier?
It reads the user’s messages in a trace and flags the ones that carry annoyance, anger, or disappointment, whether at the situation or at the assistant itself. It runs on every trace at negligible per-event cost, the same as Tessary’s other built-in classifiers, so it doesn’t need a sample to work off.
What makes it worth having is what it catches that error rates miss: an agent that keeps misunderstanding the same request, loops without progress, or makes the user repeat themselves. None of that shows up as a thrown exception or a failed tool call. A user typing the same question three different ways with mounting annoyance is a working agent by every metric except the one that matters to the person using it.
A flag becomes a finding, not an alert. Triage decides whether it’s a real problem before anyone sees it, and if it is, it becomes a case.