Mandate

Junction 2026 · Valio Aimo: Trusted Trade Agents

What do you need? We'll sort it out. That's a mandate.

Mandate plans a kitchen's order from Valio Aimo's catalogue, finds substitutes when products run out, and orders on its own only within the chef's mandate. Everything else waits for a person, with the reason.

Every visitor gets a private sandbox. Nothing is sent to Valio Aimo.

Saturday: a Christmas buffet for 140, and two items are short

The ham and the swede casserole can't be bought as listed, and the order has to go in before the cut-off. Today the chef copies order templates into a cart by hand. An agent can find replacements, but the kitchen also has to set what the agent may buy without asking.

21

lines planned for 140 guests, €933.92 in all

3

ordered alone, inside the chef's mandate

15

wait for the chef, in 3 decisions, each with its reason

3

can't be ordered as listed, and say why

Every door goes through the same checks

The kitchen screen, the chat, MCP and REST all call one gate, which checks the kitchen's limits in code when an order is placed.

Who asks

  • Kitchen screen the chef
  • Chat our agent
  • MCP your agent
  • REST your code

One gate

  • The mandatewhat the agent may buy alone, and what the chef never delegates
  • Spend caps and a hard limitheld even when an order is split
  • The exact termsa price or quantity change voids the approval
  • Cut-off and pack sizesa passed cut-off or a part pack is refused

What happens

  • Ordered, with one receipt
  • Held for a person, with the reason
  • Refused, with the reason

Products whose stock Valio Aimo doesn't state are labelled unknown and never counted as covered. See how it's built

Connect your own agent over MCP or REST

Your agent gets the same tools over MCP and REST as ours, inside your own sandbox. It can plan and place orders; every line it orders waits for the chef. It has no approve tool, and a call to approve is refused.

  1. Get a key. Open app.mandate.kitchen/agents to mint one for your sandbox.

  2. Connect. Point any MCP client at https://app.mandate.kitchen/mcp/k/<key>.

  3. Start. Call get_context, then ask it to plan the buffet. Then ask it to approve.

What each partner does in Mandate

Each service sits behind a port with a labelled fallback, so the demo survives a dead API.

Valio Aimo

Every product, price and stock figure the agent works with.

  • Searches Valio Aimo's catalogue
  • Live price and stock per shortlisted product
  • Valio Aimo's closing time is the cut-off
Try a request →

Gemini

Reads what the chef writes and drafts the menu.

  • Flash-Lite reads requests and chat
  • 3.8 Flash drafts menus from deliverable products
  • Decisions scores how well a substitute fits: 202 live calls in the last 24 h, about a third of a second each
Try a request →

Aiven

Holds every kitchen, order and change, and streams it live.

  • Postgres: kitchens, plans, orders, receipts
  • Each change is one logged event, live on screen
  • Two app machines on one database
See Ops update live →

Exa

Finds a product's missing facts on the web.

  • Allergens, origin and ingredients
  • Each fact with its source
  • Cached, with daily caps
Open a Why drawer →

Context.dev

Watches food recalls and fills in photos.

  • Ruokavirasto's recall list, every 5 minutes
  • A product photo when the catalogue has none
  • Recall cases on orders are labelled drills
Recall cases in Ops →

Cloudflare

Serves this site and routes every visitor.

  • This site runs on a Worker
  • A Worker keeps each browser on one app machine

Also in the build

NVIDIA

Nemotron 3.5 Super VL reads a photo of a menu or a delivery note.

  • Wired, not live: its endpoint isn't deployed yet

Verda

The GPU cloud for that vision model, our fallback host and the scale-out target.

  • Ready, not in use on the deployed app

Featherless

An open model behind the same port.

  • Gemma, chosen by one setting
  • Optional, not used on the deployed app

What's real, what's simulated

Each screen in the app carries the same labels.

  • RealValio Aimo's catalogue, and live price and availability calls for shortlisted products, cached with the time fetched.
  • SimulatedThe booking, the clock, stock on hand, recipes, and the order itself. Valio Aimo's API has no order endpoint, so nothing is sent to Valio Aimo.
  • ModelsGemini reads requests, proposes menus and scores how well each substitute fits the dish. Every check that decides what may be ordered runs in plain code. A model can add a caution that holds a line, never one that allows it.

The other pages

The pitch, the system in detail, and the test behind each claim.