Skip to content
JC.
All writing

· 4 min read

Teaching the Agent to Say "I Don't Know"

The hardest thing to teach the website agent wasn't how to answer. It was when not to. An honest "I don't have enough information" turned out to be one of the most useful things it could say.

Two website agent answers side by side on a blueprint grid. On the left, a confident "No, we don't currently offer a rewards program" is crossed out. On the right, "I don't have enough information to answer that confidently" is marked with a check. Below them, a score bar with a line drawn at 0.25.

The hardest thing to teach the website agent wasn't how to answer. It was when not to.

At the end of the last post, I was stuck on a question. Better retrieval meant fewer bad answers, but it couldn't fix the times when the right information just wasn't there. A page that was never crawled. A question the website doesn't cover. Something nobody ever wrote down.

What should the agent do then?

The temptation

The easy answer is to let the model try anyway.

It's very good at trying. Give it a question and a few loosely related pieces of content, and it will write something helpful-sounding every single time. That's exactly what happened with the rewards program. It had nothing about rewards in front of it, so it did its best, and its best was "no."

I could have kept tuning search and hoping. More results, different chunks, better ranking. But none of that helps when the answer isn't in the data. You can't retrieve your way out of missing information.

The decision

So I made a decision that felt a little strange at first.

If the evidence doesn't support an answer, the agent says so.

Not a guess. Not a polite deflection that sounds like an answer. Something honest, like:

I don't have enough information to answer that confidently.

In the system, that became its own outcome, with its own name: insufficient_evidence. It wasn't an error. It wasn't the agent breaking. It was a real, expected result, just like a normal answer.

How good is good enough?

That raised the question I'd left hanging in the last post. How do you decide when the evidence is good enough?

Every piece of content search finds comes with a score for how closely it matches the question. If the best matches are strong, there's probably something real to answer from. If even the best match is weak, the agent is about to answer from content that's only loosely related, and that's where the trouble starts.

So there needed to be a line. Above it, the agent can answer. Below it, the agent says it doesn't have enough information.

My first instinct was to just pick a number that felt right. I'm glad I didn't.

Instead, I ran real questions through it and looked at the scores. Questions I knew the website could answer. Questions I knew it couldn't. Questions somewhere in between. Then I looked at where the good matches tended to land and where the bad ones did, and drew the line from that.

The number I ended up with was 0.25.

That number isn't magic, and it wouldn't be right for every system. What mattered was that it came from measuring, not guessing. When someone asks why the agent answered one question and declined another, I can point to something real.

Watching it decline

The first time I watched it work, it felt almost backwards.

I made up a question I knew the website didn't cover. It didn't even make much sense:

Can I receive a refund in bitcoin sent to my home?

Before, it might have written a confident, friendly answer anyway. Something about refund methods, maybe, stitched together from the returns policy. This time it said it didn't have enough information to answer that confidently.

My first reaction was a little bit of disappointment. I'd spent months trying to get this thing to answer questions. Now I was celebrating when it didn't.

Then it clicked. That wasn't a failure. That was the agent being honest. A customer who gets "I don't know" can go find the answer somewhere else. A customer who gets a confident wrong answer doesn't know they need to.

With this in place, a question like the rewards program should never come back as a confident "no" again. If the agent doesn't have the evidence, it should say so.

Confidence should come from evidence, not from how fluently the model can write.

Every "I don't know" is a question

There was one more thing I noticed, and I didn't fully appreciate it yet.

Every time the agent said it didn't have enough information, that was a real question someone wanted answered. Sometimes the answer really wasn't on the website. Sometimes it was, like the rewards page, and the system just didn't have it.

Either way, each one was telling me something. I filed that away.

The next problem

By the end of May, the website agent was in a much better place. It answered from real content. It was grounded in what it was given. And when it didn't have enough to go on, it said so.

It was getting pretty good at answering a single question.

Then someone asked a follow-up.