DEV Community

Vektor Memory
Vektor Memory

Posted on

VEKTOR 2.0.1: Desk routing went from 11% to 90%. Measured via Minimax matrix

Before this release, Desk’s automatic routing ran the right mode for about 11 of every 100 messages that needed one. In our test it was 15 of 133.

Desk has eight modes: ordinary chat, Council, Critique, Collab, Agent, Coach, Crucible and Cadence. Council compares options. Critique challenges a plan. Coach helps you sort out your priorities. Each one gives better answers to the right kind of question, but each sat behind a choice you had to remember to make.

A message like "Should we choose Jev or Clef, give me different viewpoints” gets a better answer from Council, and only someone who knows Council exists will open it.

So for 2.0.1 we changed who makes the choice. Desk now reads your message, picks the mode, and tells you what it did. This post covers three things: what we built, why we trust it enough to let it run without asking, and what we measured, including where it still gets things wrong.

Updated Desk v2.0.1

What we measured
We tested this on 330 messages we wrote ourselves. About 9 in 10 of the messages that needed a mode went to the right one, up from about 1 in 10 before. Fewer than 2 in 100 automatic runs were wrong. The decision takes about a third of a second and happens on your own computer, so the text of your message stays there.

Our test messages are ours, so real use will probably land a few points lower. The undo chip counts every time someone reverses a routing, and that count will show us the real rate.

  1. Desk routing: before and now

  1. Speed, and the fast tier for small jobs

  1. Vektor decide: sort your own text into your own labels

  1. Final choice on CLINC150: the minimax matrix

A. Full results: Desk routing and decision speed

B. Full results: the fast tier and release checks

C. Full results: CLINC150

D. Full results: When2Call and BANKING77

E. Full results: the router head and other tries that did not ship

F. Full results: Vektor decided and hosted pickers

G. Final choice on CLINC150: the minimax matrix (with the hosted model named)

How it works
Four signals, one decision. Desk looks at the words you used, a set of rules for strong phrases, a small embedding model that shortlists the three most likely heavy modes, and the local language model, which picks one from that shortlist or says “ordinary chat”.

The model answers one narrow question. Choosing among four options is far easier than open-ended chat, which is why it takes about 0.3 seconds on a local GPU.

A policy decides run or suggest. If you name a mode, it runs. Coach, Critique, Crucible and Cadence run on the model’s word, because a wrong guess costs one extra reply. Council and Collab run only when the model is at least 90% sure of its own pick. In our tests its stated confidence matched how often it was right, within 3.2 points.

Agent never runs on one signal. It can change things, so it always needs a second one, and you get a one-click chip instead.

Everything else becomes a chip. If the signals disagree, you see a suggestion and nothing runs.

Every automatic run can be undone, and the app counts how often it is. Turn the whole feature off with “Let Desk run the mode for me” in Preferences.

The fast tier is separate and opt-in. If you pick a cheaper model for small jobs, a local yes/no question decides which jobs qualify. Anything about your own history (“what did I say about…”) always stays on the main model, because that is where your memory is.

Release checks. More than 200 test suites pass before a build ships. We replay 330 saved answers through the routing rules, and a live check with the real model fails the release if wrong automatic runs pass 3% or coverage drops by 2 points.

Privacy. By default nothing leaves your computer. An optional hosted decision model exists, but it needs a consent box, sends only the text of the one message (up to 1,200 characters), and falls back to the local model if it fails or runs out of free allowance.

**How we chose this approach
**Every design question in this release was settled with the same small method, a minimax matrix skill file included.

The setup. Each question is a table. The rows are the competing methods, and the method we already ship is always one of them, so a new idea has to beat the current one. The columns are only the numbers that question cares about, such as right answers, wrong answers and milliseconds.

Three stages. We look at errors and pick thresholds on a tune set. We check on a second set. We score a hold-out set once and never change anything after seeing it.

Small samples are scored at the low end of their interval. A lucky 100% on 40 messages does not win. The script also tells us whether the winner survives if we double or halve the noise allowance.

Hard limits only where a wrong answer costs something. Sending an ordinary message to a heavy mode is a real cost, so it gets a limit. Speed gets a weight, not a limit.
What the matrix decided:

When Desk may run a mode for you. Six policies on 146 messages. Showing the model’s suggestion as a chip only routed 12.5% of the hold-out set.

Running every pick routed 98% but would also start the costly modes on a single guess. The policy we shipped, which asks for a second signal before the costly modes and lets the cheap single-reply modes run, routed 87.5% with no wrong runs.

At a strict 2% limit no row passed, because 68 messages cannot prove a rate that low. The script said so, and we kept the decision conservative.
Which jobs count as small. Word lists found 21% of the small jobs. The embedding model found 63%. A yes/no question to the local model found all of them, with no big job sent to the cheap model.

With every number weighted equally the script preferred the embedding model, purely because it is instant. We weighted accuracy three times higher, because a hard job on a small model costs quality and 0.27 seconds does not. That is a judgement, and we state it.

One prompt or two. Asking both questions in one prompt looked simpler. It scored worse on routing (95% down to 86%), made 5 wrong runs instead of 1, and was not faster. We rejected it.

Local or hosted. A hosted decision model got one more message right out of 68, within noise, took about 470 ms against 259 ms, and would send message text off your computer. We kept local and offer the hosted one as an opt-in.

More data for the shortlist model. We tried adding 250, 1,000 and 3,000 public everyday requests as extra examples of ordinary chat. The shortlist model separated ordinary chat from mode-worthy messages slightly worse each time (0.986 down to 0.963 to 0.983), and found fewer heavy messages at the same false-alarm rate (90% down to 69 to 83%).

Our own 148 messages already do that job. Adding more of our own data did not move it either, so we kept the model as it is and rely on real undo-chip feedback for the next round of data.

Later rounds. Letting Council and Collab run when the model is 90% sure added correct runs and no wrong ones, so it shipped. Adding example messages to the prompt changed 3 of 330 picks and made none better overall, so it did not ship. A reworded “ask or act” step for Vek scored 75.6% against 77.4%, so we reverted it.

Why this was the right way to work: it stopped us shipping three ideas that looked sensible and measured worse, and it made us say out loud where we overrode the numbers. Live runs also found two bugs that 37 unit tests missed, a cold model that never finished loading and a deleted line that returned the model’s answer.

Customers can also use the idea directly. 2.0.1 adds vektor decide: write a small JSON file with your text and your own labels, and your local model answers with a choice, a yes or no, or a score, each with a probability.

It is the same request shape the hosted decision services use, so a file written for it carries over. On a public set of 151 categories it was right about 9 times in 10, in about a third of a second, and the --eval option measures it on your own labelled sample. Nothing leaves your computer.

You can use the same method yourself. The minimax-matrix skill ships with 2.0.1.

Ask Desk a question like “keyword search or embeddings, we care about accuracy and speed” and it builds the matrix, tests in stages, scores small samples cautiously, and tells you whether to switch or keep what you have.

The skill’s reference page walks through the small-jobs decision above, step by step, with the real numbers.

Everything else updated in v2.0.1

Desk and routing

Desk is much less likely to start a mode you did not want. Everyday phrases such as “compare these two numbers” or “what does cadence mean in music” stay ordinary chat.

The first message after your local model goes cold is faster, because routing now loads the model in the background.

New Decision model card in Config: choose who answers Desk’s two quick questions. The default is your own computer. Cloudflare is an opt-in, with a consent box.

The Fast tier now uses a quick local yes/no check to spot small jobs. Questions about your own history always stay on the main model.

Collab workers start the moment the workers they depend on finish, so one slow branch no longer holds back the fast ones.

A Via tab appears in Desk if you have Via installed: open tasks with Start and Done buttons, an add box and recent activity.

Desk finds the right tool from how you phrase a request, including word endings (“translating” finds the translate tool).

Vek

Ask “what changed since last week?” and Vek lists, with dates, the facts that were replaced, the decisions made and the tasks you finished.

Two new quiet check-ins: a changed fact that may affect a recorded decision, and a decision left open for 30 days (and again at 90).

When you are away: if nobody answers a question within the time you pick, Vek takes the recommended option, carries on and tells you what it chose.

It never approves an action for you.

Secrets for agents: a placeholder such as {{secret:GITHUB_TOKEN}} is swapped for the real value only when the request goes to a host you approved, now on SSH servers too. Add a secret from Config.

Vek starts speaking sooner, and its answer bubble no longer hides behind the Ask box.

Library and reading

Top shelf: your model suggests must-read books, each checked on Open Library and ranked by real reader ratings. Copy the shelf as a list, remove a single book, or save free books from Internet Archive.

Papers: search free arXiv papers and save one to your Library with a click.

The PDF reader opens faster, Tone tints the page itself, and highlighting stops where you stop.

Kindle .mobi books open and convert.

Move the Explain box anywhere on the page.

Your own decisions

New vektor decide: sort your own text into your own categories, answer yes or no, or rate on a scale, with a probability for each, on your own computer.

Add examples per label for better answers, and run --eval on a labelled sample to see accuracy and calibration. --eval also tests a temperature fix for over-confident answers on one half of your sample and checks it on the other half, and only recommends a change if it helps.

The same request works at /api/decide on the local app and as the vektor_decide tool for your connected AI apps.

Tools for writing and showing

Humanize: select text and rewrite it in plainer words from a small bar, or press Ctrl+Shift+H.

Snip with pointer tools: Ctrl+Alt+S dims the screen, you drag over an area, and mark it up with arrows, circles and text.

A guided tour in three levels (5, 9 and 16 steps), from “Show me around” on the Desk home or by asking Vek.

Setup and providers

Activation now has Basic, Standard and Advanced levels. Basic is the short path.

Cloudflare Workers AI is available as a model provider, through your own account, with 24 chat models (the ones that need the paid plan are tagged, and VEKTOR answers on the default model if you pick one on the free plan). Claude Haiku 5.5 is in the Claude list.

The local model stays on your graphics card more reliably. VEKTOR asks Ollama for flash attention and a compact memory cache, which roughly halves the video memory a long conversation needs.

The first reply with a local model is faster, because the fixed start of the Desk prompt is read in the background.

Fixes

No more plain browser pop-ups: every question and message box uses a themed VEKTOR box.

Trivia now writes all 20 questions, accepts more model replies, and tells you when your setup is the reason it is slow.

Text is centred in the agent’s model pill and the Transparency buttons, and Vek’s faces no longer show broken characters.

Live chat text follows the voice sentence by sentence.

After an update, the Library tells you to close VEKTOR fully and start it again, instead of showing a technical error.

Stories and writing

Story panel: a story’s world, characters, style and your own notes in layers. Lock canon so it cannot change by accident, record who knows what, and list the promises the story still owes the reader.

Check a passage against the story: it names the locked rule a scene breaks. The nightly memory clean-up leaves locked canon alone.

Reverse engineer a book: attach a book or paste a link and get a point-form report on length, chapters, year, readability, characters and how deep they are, style, themes and why it works. Each point says whether it was measured, found in the text or comes from general knowledge, and made-up figures and names are removed.

The report is written section by section with a progress bar, so you can read the top while the rest fills in.

Remix a studied book into a blueprint for your own story, in the same genre or a different one.

Help that shows you

Ask Vek how to do something and an arrow points at each button on the real screen, one step at a time. It never clicks for you.

Say what is wrong (“Ollama is not running”, “my key fails”) and Vek checks your computer first, shows the fix, then checks again to see if it worked.

Studio

Motion videos: camera moves, a quality check before you save, a version strip, thumbnails, a video as the background, route scenes, and translate and dub into eight languages with every number kept exactly.
Decks from your own notes, in three styles, with no number that is not in your text.

Art and Dither: dozens of designs, layers, 17 dither patterns, photo looks and your own LUT files, and animation saved as WebM or MP4.
Script lab, Transcribe a file, and Ledger for reading invoices with a sums check.

Voice

Speak in your own voice, made on your computer, for reading aloud, Vek and Jot.

Voice tab: pauses, Save as audio, a waveform with every word marked, captions as SRT and VTT, and projects with several speakers and an audiobook file.

Vek can have its own voice, and one Stop ends all speech.

Tools and look

Companions: every function of Via, Vek-Sync, Prov and Vex, with a search for MCP servers.

Key health shows which of your keys work. A Local models card lists everything that runs on your computer.

Desk shows tokens per second and time to the first word under each answer.

If your local model cannot answer, Desk can try your connected cloud providers, free ones first.

Tic-tac-toe and Connect four against Vek, Word guess, Trivia duel and a Memory quiz.

New faces for Vek (VM-3 and Phosphor), and buttons and selected states that look the same in every theme.

Model lists: Cloudflare now has 24 chat models, with a tag on the ones that need the paid plan (VEKTOR answers on the default model if you pick one on the free plan). The OpenRouter list includes the models on its usage leaderboard.

The arrow in a guided fix moves on by itself when the step is done: a check passes, or you press the button it points at.

Right-click a snip for Copy, Save and Ask Vek. Config settings sit two to a row, and the plain Config buttons (Check keys, Refresh, Play and the rest) now look like real buttons.

Story and Ledger are centred on the page, and an attached book can be removed before you study it.

What happens next

We will keep adding functions as we get feedback. Chrome automation, enterprise controls, more games and a game-pack format, and faster local inference are on the list for the next release.

Version 2.0.1 is on the downloads page: https:www.vekmem.com

Run your own race, and keep your own data.

Top comments (0)