Grounding
Grounding is the rule that a Duvi agent may only present something it can point at a source for.
When an agent shows a price, a link or a document, it has to say where that came from. The tools that present information refuse an item that arrives without a source attached, so the agent cannot put a fact on screen that it has nothing to point at.
Duvi enforces this in the tool rather than in the prompt, so it holds on the four hundredth conversation as well as the first.
If a customer asks about a plan that is not in the price list you uploaded, the agent says it does not know and offers to take their details. It does not produce a number that looks about right.
Screen control
On a website, an agent can operate the page the visitor is already looking at. It reads the current page, gets back the list of elements it is allowed to act on, then clicks, types, selects or scrolls. A visitor who says “just put me on the smallest plan” can have the form filled in front of them.
Two limits apply:
- Element references go stale. When the page changes, the agent map of it is out of date, so it reads the page again before carrying on rather than repeating a click blindly.
- Actions time out after 15 seconds. The agent gives up on that action and tells the customer rather than going quiet.
Present information
The agent produces one result, and each channel presents it in the form that channel supports. A list of three plans arrives as tappable options in WhatsApp and as a spoken sentence on a call.
You write the agent once. There is no phone version and chat version of the same answer to keep in step.
Link and navigation
A web agent can offer a link, or take the visitor to a page directly, when that is what they asked for.
Duvi checks destinations before the agent uses them. The agent cannot invent a URL and send someone to a page that does not exist.
Save customer details
An agent can record details it picks up during a conversation, on every channel. If someone mentions their order number or their preferred callback time, Duvi keeps it.
Saved details and verified identity are different things, and the difference decides what is safe to show.
| What it is | What it is good for | |
|---|---|---|
| Saved details | Whatever the customer typed or said. | Context, follow-up, routing. Anyone can claim to be anyone, so it proves nothing. |
| Verified identity | Signed claims from your own server. | Deciding whether to show private data. This is the one that counts as proof. |
A customer saying “I am the account owner” is a saved detail, not authorization. See Customer identity for how to give the agent something it can trust.
Hand over to a person
An agent connected to a team can pass the conversation to a person. The agent writes a summary for whoever picks it up, tells the customer they are in the queue, and stops replying until your team closes the conversation. See Human handover.
Handover carries messages on the website and WhatsApp, and calls on WhatsApp and the phone. A voice conversation in the website widget stays with the agent.
Withheld messages
Duvi withholds a customer message from the model in two cases. In both, the message is replaced by a placeholder in the conversation and in what the model reads, and the original text is not kept anywhere.
| Case | What the customer receives | What the transcript shows |
|---|---|---|
| The message looks like an attempt to take over the agent, such as “ignore all previous instructions”. Duvi checks every message for this before the model sees it. | A normal reply. The agent answers the placeholder, which usually means offering to help. | [message withheld: flagged as a possible prompt injection] |
| The model's own safety checks decline the message. | “I can't help with that one. Is there something else I can do for you?”, on every channel. | [message withheld: declined by the model's safety checks] |
Replacing the message rather than keeping it means one declined message cannot follow the conversation around: later turns never send it to the model again, so the agent goes on answering normally.
A turn the model declined is still billed, because the model read the message before it declined.
Capabilities by channel
Capabilities differ by channel because the channels differ. A phone call has no screen, and WhatsApp does not let anyone drive a browser. The first three rows work everywhere, so build on those when an agent has to behave the same across channels.
| Capability | Website | Phone | |
|---|---|---|---|
| Knowledge retrieval | Yes | Yes | Yes |
| HTTP and connected tools | Yes | Yes | Yes |
| Save customer information | Yes | Yes | Yes |
| Verified links | Yes | No | No |
| Tappable buttons and lists | No | Yes, as native WhatsApp messages | No |
| Send a document | No | Yes, including during a WhatsApp call | No |
| Read and control a page | Yes | No | No |
| Hand over to a person | Messages only | Messages and calls | Yes |