Each turn
On each turn your agent sends the request it parsed from the user’s words, with thestate from the last response. The state holds what was listed,
what is waiting for a yes or no, the places settled earlier and the street
being discussed. The request says what the user is asking for:
- a kind of place (“a cafe”, “somewhere to eat”);
- a place by name;
- an address (“2128 Folsom Street”);
- a pick from the list it just gave (“the second one”, “the Rite Spot one”);
- a yes or no to the place it asked about;
- a place relative to another one: near it, across the street from it, or next door to it;
- the places at a street corner, or the corner itself;
- what is on a street, or at the end of it;
one carries the
place’s location, and so does each candidate on many. Only a place
waiting for a yes, one_unconfirmed, comes without one.
What Kviria does not do
- It does not choose between equals. When two places match the words equally, both come back and the user picks.
- It has no view on quality. Places are ordered by distance or by their position along the street, and Kviria keeps no ratings. “Which one is better?” is your agent’s to answer from the facts it holds, or to decline.
- It does not count buildings. “The third building on this street” has no fixed starting point, and no request type for it. Ask the user for a name or a number instead.
- It does not write replies. The answers are decisions and facts. The wording is your agent’s, in your voice and your user’s language.