Ask a support bot something outside its knowledge and you get one of two behaviours: a polite refusal that helps nobody, or a confident invention that costs you a customer. Both come from the same design, a model asked to answer everything from a fixed prompt.
We built a different shape for a reputation platform serving hundreds of local businesses. The assistant drafts replies to real customer reviews and messages, and it gets measurably better at one specific business over time, using that operator's own corrections.
The loop, in six steps
- 01The operator supplies their website URL.
- 02A headless browser sidecar crawls the site to depth two, roughly twelve pages.
- 03The extracted text goes to a model under a strict tool schema, which returns a validated JSON business profile rather than free text.
- 04Every customer-facing reply is generated against that profile and confidence-scored.
- 05Replies below the threshold are recorded as knowledge gaps instead of being guessed at.
- 06The operator answers the gap once, and that answer is injected as top-priority context on all future replies.
Why a validated profile beats raw retrieval
Dumping crawled pages into a vector store and retrieving chunks is the default answer, and it gets you a system whose failure mode is a plausible paragraph stitched from the wrong page. Forcing the crawl through a schema instead gives you a typed profile: services, hours, policies, the things a reply actually needs, in fields you can validate, diff and show to the operator.
It is also inspectable. When a reply is wrong, you can point at the field that was wrong, fix it once, and know that every future reply changes.
Confidence is a product surface, not a log line
The scoring only matters if somebody sees it. The dashboard surfaces Gaps to Teach, Taught This Week and Average Confidence, which turns the knowledge the agent is missing into an actionable queue rather than a silent failure.
That reframes the work for the operator too. They are not correcting a bot that keeps making mistakes, they are teaching an assistant, and the queue gets shorter every week. The incentive to answer a gap is obvious because the payoff is visible.
"Refusing to guess is what makes the system safe to put in front of an end customer, and it turns each correction into a compounding asset."
Where the consistency comes from
On a second platform we built the same idea one level up: voice, complaint handling and conversation rules are stored configuration applied to every generated reply, across reviews, messages and surveys. Behaviour lives in settings rather than in per-request prompt text, which is why drafted replies sound like the same business every time.
What to build first
- A typed profile of the business, populated from a source the operator already owns.
- A confidence score on every generated reply, with a floor below which nothing is sent.
- A gap record written whenever the floor is hit, with the question that triggered it.
- A one-field form for the operator to answer that gap.
- Priority injection of those answers ahead of everything else in the context.
- A dashboard panel that shows the queue shrinking.
None of that requires a frontier model. It requires deciding, in code, what your assistant is not allowed to make up.
Questions we get asked
- How does a self-improving AI agent learn without retraining?
- It does not change the model. Operator answers to logged knowledge gaps are stored and injected as top-priority context on future replies, so the system improves through its own data rather than through fine-tuning.
- What should an AI support agent do when it does not know the answer?
- Record an explicit knowledge gap and escalate rather than improvising. A logged gap becomes a one-question task for the operator; an invented answer becomes a customer-facing error nobody notices until it is quoted back to you.
- Is retrieval-augmented generation enough for customer support?
- Retrieval helps, but on its own its failure mode is a plausible answer assembled from the wrong source. Pairing retrieval with a validated profile, a confidence floor and a gap queue is what makes the behaviour defensible.

Mahad Ali
Co-founder & CEO · Principal Architect
The tech guy. Architecture, data models, pipelines, and the production incidents at three in the morning. Most of the engineering behind the sixteen products, and the first reply to your message.
