{"slug": "microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the", "title": "Microsoft-Decision-1 Just Landed: First systemone Call, Free Output Tokens, and the Qwen-to-MAI Rebase Catch", "summary": "Microsoft released Microsoft-Decision-1 into Foundry and OpenRouter on 2026-10-09, a hosted decision model that returns typed probabilities instead of free-form text, priced at $0.042 per million input tokens with output tokens free. The model is built on a Qwen3.5-9B base with a stated plan to rebase onto MAI and OpenAI later, and exposes a `systemone` endpoint where callers send a state plus named questions of type noul, choice, or score. A developer who compiled the vendor documentation and ran an offline request/response linter against hand-built mocks noted they did not call the live API, and flagged the planned rebase as the main catch.", "body_md": "**Attributed compile + one small offline smoke test**\n\n**Primary sources (Microsoft, 2026-10-09):** [Microsoft-Decision-1: Our model for fast decision-making](https://commandline.microsoft.com/microsoft-decision-1-model-foundry/) by **Achint Srivastava** (Command Line / Microsoft), [Deploy and use Microsoft-Decision-1 in Microsoft Foundry](https://learn.microsoft.com/en-us/azure/foundry/foundry-models/how-to/use-foundry-models-microsoft-decision) (Microsoft Learn), and the OpenRouter model page for [microsoft/microsoft-decision-1](https://openrouter.ai/microsoft/microsoft-decision-1)\n\n**Secondary:** [Microsoft launches a decision model built on Alibaba’s Qwen](https://thenextweb.com/news/microsoft-decision-1-qwen-decision-model) by The Next Web (2026-10-12)\n\nAccuracy, latency multiples, flip rates, and internal Xbox/Copilot anecdotes are **Microsoft's**. I have no Foundry or OpenRouter key on this box, so **I did not call Microsoft-Decision-1**. What I ran is an offline request/response linter against hand-built mocks, described below as exactly that.\n\nMicrosoft shipped **Microsoft-Decision-1** into Foundry and OpenRouter on 2026-10-09, three days after Liquid open-weighted d1. Satya Nadella's launch post on X cleared a million impressions within hours. Same category shift: stop asking a chat model for JSON and ask a **decision model** for typed probabilities.\n\nThe access difference matters. Liquid gave you weights. Microsoft gave you a hosted `systemone` endpoint, **$0.042 per million input tokens with output free**, and a **Qwen3.5-9B** base with an explicit plan to rebase onto MAI and OpenAI later. Same API shape either way. That rebase note is the catch.\n\nFrom Microsoft Learn and the OpenRouter page, a request is not a chat completion. You send a `state` (string or JSON) plus named `questions`. Each question is one of three types:\n\n| type | you give | you get back | \n|---|---|---|\n| `noul` | a yes/no condition | `P(yes)` in`[0, 1]` | \n| `choice` | named options with descriptions | selected option + per-option probabilities | \n| `score` | an ordered rubric (2+ levels) | probability-weighted level index | \n\nThere is no free-form text and no written rationale. That is the point. Your code thresholds the probability, routes the ticket, or blocks the tool call. Learn's endpoint path on Foundry is:\n\n```\n<your-foundry-resource-endpoint>/providers/microsoft/v1/systemone\n```\n\nThe request's `model` field is **your deployment name**, not the string `Microsoft-Decision-1`. On OpenRouter the model id is `microsoft/microsoft-decision-1`, and OpenRouter documents that chat-completions SDKs will not work — you need the Decisions / System One surface.\n\nFrom Srivastava's post, labeled as vendor numbers:\n\nI did not reproduce any of that. Treat it as a launch claim sheet, then measure on your own labeled tickets.\n\nA single call can ask three questions over the same state. Pattern from Learn + OpenRouter:\n\n``` python\nimport json, os, urllib.request\n\nbody = {\n    \"model\": os.environ[\"DEPLOYMENT_NAME\"],  # your Foundry deployment name\n    \"state\": \"Help! My payouts have been failing for 3 days.\",\n    \"questions\": {\n        \"is_urgent\": {\n            \"type\": \"noul\",\n            \"instructions\": \"Does this message convey urgency?\",\n            \"criteria\": {\n                \"true\": \"Explicitly time-sensitive\",\n                \"false\": \"No urgency expressed\",\n            },\n        },\n        \"team\": {\n            \"type\": \"choice\",\n            \"instructions\": \"Which team should handle this?\",\n            \"criteria\": {\n                \"billing\": \"Payments, invoicing, refunds\",\n                \"technical\": \"Bugs, outages, integrations\",\n                \"sales\": \"Pricing, upgrades, new accounts\",\n                \"cannot_tell\": \"Not enough information, or not a support request\",\n            },\n        },\n        \"frustration\": {\n            \"type\": \"score\",\n            \"instructions\": \"How frustrated is the customer?\",\n            \"criteria\": [\"Calm\", \"Frustrated\", \"Very angry\"],\n        },\n    },\n}\n\nreq = urllib.request.Request(\n    os.environ[\"AZURE_ENDPOINT\"].rstrip(\"/\") + \"/providers/microsoft/v1/systemone\",\n    data=json.dumps(body).encode(),\n    headers={\n        \"Content-Type\": \"application/json\",\n        \"api-key\": os.environ[\"AZURE_API_KEY\"],\n    },\n    method=\"POST\",\n)\n# with urllib.request.urlopen(req) as resp: print(resp.read().decode())\n```\n\nThree things before production:\n\n`cannot_tell` is deliberate.`choice` always picks one option. Without an abstention label, gibberish still gets a team. Learn says to include abstention when the model should not be forced.`api-key`.` DefaultAzureCredential`; the snippet uses an API key because it is shorter to read.\nMicrosoft and OpenRouter both list **$0.042 / 1M input** and **$0 / 1M output**. Output is free because there are no completion tokens in the chat sense — you get structured answers.\n\nIllustrative only: 100,000 requests × 2,000 billable input tokens ≈ **$8.40** of model input (ignores retries, retrieval, review, platform fees). That is why decision models look attractive for the boring 80% of routing.\n\nOpenRouter lists a **32,768**-token context, text in, structured decision out. No images or audio here (unlike Liquid's multimodal d1-omni).\n\nNo Azure and no OpenRouter key on the box, so I wrote a small preflight that only checks shapes:\n\n`messages` + `temperature=0`) is flagged as the wrong API.` noul` / `score` lints clean.`answers` object parses; a chat-completions-shaped mock raises `ValueError: missing answers object`.\nThat is a smoke test of **your client**, not of Microsoft-Decision-1. Scripts live under `runs/16-microsoft-decision-1/` (`preflight.py`, `run_output.txt`).\n\nMicrosoft says Decision-1 was post-trained from **Qwen3.5-9B**, and that it will **soon rebase** onto other bases including **MAI and OpenAI**. The API shape is supposed to stay put while the weights under it change.\n\nPractical consequences:\n\nAgent stacks are full of \"call an LLM, beg for JSON, parse it.\" A hosted decision endpoint that returns calibrated probabilities, charges nothing for output, and already sits next to Foundry deployments is a concrete alternative for routing, gating, and grading. It does not replace a generative model for writing. It stops you from using one for a multiple-choice question.\n\nKeep Liquid's open d1 for edge and offline. Use Microsoft-Decision-1 when you already live in Azure or OpenRouter. Measure both on the same labeled set before you trust either.\n\n*YongBo Yu is an AI engineer in Toronto building LLM workflows and agent systems. More at [yongbo-yu.vercel.app](https://yongbo-yu.vercel.app) and [GitHub](https://github.com/YongBoYu1).*", "url": "https://wpnews.pro/news/microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the", "canonical_source": "https://dev.to/yong_yu_f98e15562e9b120a0/microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the-qwen-to-mai-1819", "published_at": "2026-10-12 13:43:30+00:00", "updated_at": "2026-10-12 13:48:10.931379+00:00", "lang": "en", "topics": ["large-language-models", "ai-products", "ai-tools", "ai-infrastructure", "developer-tools"], "entities": ["Microsoft", "Microsoft-Decision-1", "Microsoft Foundry", "OpenRouter", "Qwen", "MAI", "Achint Srivastava", "Satya Nadella"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the", "markdown": "https://wpnews.pro/news/microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the.md", "text": "https://wpnews.pro/news/microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the.txt", "jsonld": "https://wpnews.pro/news/microsoft-decision-1-just-landed-first-systemone-call-free-output-tokens-and-the.jsonld"}}