Every time Microsoft ships a new model into Foundry, I ask myself the same boring-but-important question: does this change anything for the way I actually write code? Most of the time the answer is “cool demo, doesn’t affect my day job.” This time it’s different.

MAI-Thinking-1 — Microsoft’s first reasoning model — just went into public preview in Microsoft Foundry. It’s not a chat model with a “think harder” flag bolted on. It’s built from the ground up for multi-step reasoning: the kind of work where the model has to plan, reconsider, call tools, and stitch together a long chain of context before it gives you an answer worth trusting.

If you’ve read anything else I’ve written, you know where this is going: no Python required, no notebook gymnastics, just Microsoft.Extensions.AI and a dotnet run.

What MAI-Thinking-1 Actually Is

A few things worth knowing before you touch any code:

  • Mixture-of-Experts (MoE) architecture. Instead of activating the entire model for every request, it only activates the parts it needs. Translation for us: you get reasoning depth without paying full-model compute cost on every call.
  • Trained from scratch, no distillation. Microsoft trained it on clean data rather than distilling from a third-party model — worth knowing if procurement ever asks “where did this model come from.”
  • Competitive on SWE-Bench Pro at a lower price point than other models in its weight class. Translation: it’s genuinely usable for coding-adjacent agent workloads, not just benchmark bragging rights.
  • Pricing: $2 per 1M input tokens, $8 per 1M output tokens through the Foundry Model Catalog. Cheap enough that “always-on reasoning agent” stops being a scary line item.

None of that matters if you can’t get it working in fifteen minutes, so let’s do that.

Why This Matters for .NET Developers Specifically

Most “reasoning model” content is written for people gluing together Python scripts and LangChain. That’s not how most of us ship software. If you’re building:

  • Agents that call tools — CRM lookups, ERP queries, ticketing systems — and need to reason across the results before responding
  • Long-document analysis — contracts, filings, transcripts — where the model needs to hold context and reason step-by-step instead of pattern-matching a summary
  • Decision-support features — root-cause analysis, recommendation generation, anything where “just guess the most likely next token” isn’t good enough

MAI-Thinking-1 is aimed squarely at you, and it slots into the same IChatClient interface you’re already using for GPT-4o or any other Foundry model. Swapping models is a config change, not a rewrite.

Getting Started: The Boring Setup Part

Deploy MAI-Thinking-1 from the Foundry Model Catalog to your Foundry project, same as you would any other model. Grab your endpoint and deployment name.

A Multi-Step Reasoning Example

Here’s the thing about reasoning models: the interesting part isn’t a single prompt/response, it’s giving the model something that actually requires reasoning across steps. Let’s build a small “contract risk triage” service — the kind of long-document, multi-step reasoning task MAI-Thinking-1 is designed for.

Notice what’s not here: no special “reasoning mode” flag, no separate SDK, no different message format. It’s the exact same IChatClient call you’d make against any Foundry model. The reasoning happens because of how the model was built, not because of extra plumbing you have to write.

Sample output

Tool-Augmented Reasoning (The Agentic Part)

The use case Microsoft calls out explicitly — connecting to CRM, ERP, and ticketing systems through native tool calling — is where reasoning models earn their keep. A non-reasoning model will happily call a tool with garbage arguments and move on. A reasoning model is far more likely to check its own work before it commits to a tool call.

Here’s a minimal tool-calling setup using Microsoft.Extensions.AI‘s function tools:

The model decides whether it needs to call GetTicketStatus based on its own reasoning about the request — not because you hardcoded “if the user mentions a ticket ID, call the tool.” That’s the actual value proposition here: less prompt-engineering gymnastics to force sensible tool use.

Output

Where This Fits (and Where It Doesn’t)

Be honest with yourself about when you need this:

Reach for MAI-Thinking-1 when:

  • The task genuinely requires multi-step reasoning — plan → check → revise → answer
  • You’re processing long documents where a shallow summary isn’t good enough
  • Your agent needs to reason about whether and how to call a tool, not just execute a fixed script

Don’t reach for it when:

  • You need a fast autocomplete-style response (use a smaller/cheaper model — reasoning models trade latency for depth)
  • The task is simple classification or extraction with no ambiguity to reason through
  • You’re cost-sensitive on high-volume, low-complexity calls — the MoE efficiency helps, but it’s still priced above a lightweight model

Structured output, defensive parsing, and resilience patterns all still apply here exactly like they do with any other Foundry model — if you’ve read the earlier chapters on that, nothing changes; you’re not throwing away any of the patterns you already have.

Wrapping Up

MAI-Thinking-1 is Microsoft’s first real swing at a reasoning model, and the fact that it drops straight into the same IChatClient abstraction as every other Foundry model is, frankly, the best part. No new SDK to learn, no separate reasoning-specific message format — just a model that’s better at the multi-step, tool-calling, long-context work that “just answer the prompt” models tend to fumble.

If you’ve been holding off on agentic workloads because the reasoning quality wasn’t there yet, this is worth a real evaluation — not just a demo.

Source code can be found at : https://github.com/taswar/MaiThinkingDemo


Building AI features in C#? I write about practical, no-hype prompt engineering and Azure AI patterns for .NET developers. Check out Prompt Engineering for .NET Developers — free, no Python required. Also subscibe to my mailing for latest blogs, tips and tricks I share.