The refusal that should have happened and did not
The feature was supposed to decline certain requests. On the ones that mattered most, it answered anyway, because being helpful was the only behavior anyone had really built.
The refusal that should have happened and did not
A product lead at a company with a customer-facing assistant told me about a category of failure that had been hiding behind good behavior. Their feature was helpful, which is what they had built and tested for. It answered questions well. What they had not built with the same care was its ability to decline. There were requests it should have refused, requests outside its purpose, requests that would have it give advice it was not qualified to give, requests that should have been handed to a human. On those, the feature did what it did on everything else. It tried to help. It answered anyway, confidently, because helpfulness was the only behavior anyone had really designed, and refusal had been left to chance.
An AI feature that only knows how to be helpful is a feature that will help with the wrong things. Knowing when to refuse, when to hand off, when to say this is outside what I should do, is a behavior in its own right, and it has to be designed and tested like any other. Left to chance, the model’s default is to attempt an answer, because that is what it is built to do. So the requests that most needed a refusal, the ones where answering causes harm, are exactly the ones a helpful-by-default feature will answer.
Helpfulness is not the same as good judgment
There is a real gap between a feature that answers well and a feature that knows what not to answer. The first is about producing good responses to appropriate requests. The second is about recognizing the requests that are not appropriate and declining them. These are different capabilities, and building the first does not give you the second.
Teams tend to build and test only the first, because that is where the value seems to be. The demos are about good answers. The evaluation is about accuracy on the intended task. Nobody sets up the case where the right behavior is to refuse, so nobody checks whether the feature refuses, so the feature does not, and the failure only appears when a real user makes a request the feature should have turned down and it obliged instead.
The cost of a missing refusal depends on the domain, and it can be serious. A feature that gives confident advice outside its competence. A feature that acts on a request it should have escalated. A feature that answers a question that needed a human’s judgment. In each case the feature was being helpful, which is precisely the problem, because helpful was the wrong response and it was the only one available.
Design and test the refusal
The fix is to treat refusal as a designed behavior with its own requirements and its own tests, so the feature declines the things it should decline.
What that involves:
- Define what the feature should not do. Name the requests that are out of scope, that need a human, or that would cause harm to answer, so the boundary is explicit rather than assumed.
- Build the refusal path. The feature needs an actual behavior for declining and handing off, not just an absence of an answer. Design what it does when it should say no.
- Test the refusals. Include the cases that should be declined in your evaluation, and check that the feature declines them, with the same rigor you apply to the answers you want.
- Make handoff graceful. A good refusal often routes the person to a human or an alternative, so declining is helpful in a different way rather than a dead end.
The teams that get this right build the no as carefully as the yes. They know the feature will face requests it should not fulfill, and they make sure the right behavior on those, refusal or handoff, is a designed and tested response rather than a gap the feature falls through by trying to help.
How we approach it at Density Labs
In the AI Opportunity Assessment, our fixed two-week, $2,500 engagement, we look at whether the feature can refuse the requests it should not fulfill, and whether that behavior has been tested. A feature built and evaluated only for helpfulness is a feature that will help with the wrong things, and the requests that most need a refusal are the ones nobody checked. Designing and testing the refusal is part of building the feature, not an afterthought once a user has been helped in a way they should not have been.
A feature that only knows how to help will help with the things it should decline. Design the refusal and test it, so the feature says no when no is the right answer.