Every message to the right place
Define intents with a few example phrases and KiviDB sends each incoming message to the closest one, with a score and the agent, workflow, tool or URL you set. No language model call, and no match...
Give each intent a name, a few example phrases and a target: an agent, a workflow, a tool or a URL. KiviDB embeds the examples into your database. A message is matched to the intent with the closest example and comes back with its score and target, or with no match when nothing is close enough. No language model is called.
Examples in, the closest one wins
- Intents and examples Up to 200 intents a router, each with up to 100 example phrases. Five to twenty varied ones are usually enough.
- Nearest examples The message is embedded and compared with every example. An intent scores its closest example's similarity, from 0 to 1.
- The same answer every time No model writes the answer, so the same message with the same examples always goes to the same intent.
No match is an answer too
- A threshold The best intent is the match only if its score reaches the router's threshold. Below it, match is null and your application can ask again or hand over to a person.
- Alternatives Every answer lists the next closest intents with their scores, so you can see what was nearly chosen.
- Tune it in the console Type messages in the Try it box and drag the threshold: the console shows what each setting would do before you save it.
A target, not an action
- The target you set An agent, a workflow, a tool or a URL, with fixed arguments if you like. It is returned with the match; KiviDB never calls it.
- One call or 32 Match one message, or up to 32 in a batch, over HTTP with an API key, or from an assistant with the route_intent MCP tool.
- Your examples, your database Examples and their vectors are kept in your own database under kividb:intent: keys. Delete the router and they go too.
Questions
Which embedding model does it use?
A built-in model (all-MiniLM-L6-v2) that runs inside KiviDB Cloud by default, so no key is needed. You can pick our hosted model or your own OpenAI or OpenAI-compatible key instead when you create the router.
Does it cost extra?
No extra charge: it uses the database's own memory. The hosted embedding model, if you choose it, is billed per token like everywhere else.
Does it work on sharded databases?
Not yet. Intent routers run on databases without shards.
Is there a language model involved?
No. Matching is a nearest-neighbour search over your examples. Nothing generates text, and nothing is sent to a model provider unless you chose one for embeddings.
Route your first message
Create a router in the console's Intent router section, add two or three intents, and try messages against it.