AI
From generated code to trusted code with a unit-test agent
Meet the open-source polyglot testing agent that learns from a repository, writes unit tests, and checks that they build and pass.
Announcing v2.0 of the official MCP C# SDK
MCP C# SDK v2.0 implements the 2026-07-28 specification with a stateless-first protocol, standardized HTTP headers, and Multi Round-Trip Requests for interactive tools, all while staying backward compatible.
Analyze MSBuild Binary Logs with Copilot in VS Code
Meet the MSBuild Binlog Analyzer for VS Code - a Copilot-powered way to read MSBuild binary logs, explain and fix build failures with one click, compare builds, and catch regressions, backed by the Microsoft.AITools.BinlogMcp MCP server.
Native Agent Memory for Microsoft Agent Framework, Powered by Azure Cosmos DB
Recently we introduced the Agent Memory Toolkit and the Agentic Retrieval Toolkit for Azure Cosmos DB. The Agent Memory Toolkit gives your agents durable, Cosmos-backed memory: it stores raw conversation turns and then distills them into higher-value derived memories (thread summaries, extracted facts, and cross-thread user profiles), all searchable with vector, full-text, and hybrid search in the one database you already use. Today we're taking the next step. With the latest release of Microsoft Agent Framework, you can now drop that memory into an agent with a single object: the , shipped in the new package f...
Introducing the ETW MCP: AI-assisted ETL trace analysis, headless and in your terminal
If you’ve ever opened an ETL trace with hundreds of data tables and wondered “where do I even start?” This post is for you. We’re releasing an early preview of the ETW MCP, a Model Context Protocol server that lets GitHub Copilot, or any MCP-aware AI assistant, read, query, and reason over Event Tracing for Windows (ETW) traces the same way an experienced engineer would. No UI required. This is a companion to the WPA MCP (coming soon), which brings the same AI-assisted experience inside Windows Performance Analyzer. The ETW MCP server is the headless sibling, same data layer, no WPA needed, works anywhere you ...
How to test agent experience changes without shipping them
Most changes you think will improve AI agent behavior won't. We tested a dozen hypotheses on a real project upgrade scenario and the majority failed. Learn how to emulate documentation, API, and MCP server changes locally so you can validate what works before shipping anything to production.
AI agents, meet the Azure Cosmos DB vNext emulator
If you use the Azure Cosmos DB vNext emulator, you probably know the local development loop: start the emulator, connect to it, create some resources, load test data, run queries, and inspect the results. Each step is straightforward, but together they add setup work before you can test the application you are actually building. How agents work with the emulator The emulator includes the Azure Cosmos DB Shell, an open-source CLI for working with databases, containers, and items. It runs inside the emulator container and handles the local endpoint and well-known key, giving developers a direct, scr...
How to test agent skills without hitting real APIs
Your agent skill calls an API. The moment you start evaluating it, every run either costs money or mutates production data. Learn how to mock APIs transparently so you can run evals without changing your skill or hitting real endpoints.
Teaching a Vision Model to See Like a Human Annotator—and Catching It When It Lies
A multimodal LLM enrichment pipeline that extracts structured metadata from visual assets, constrains output to predefined values to minimize hallucinations, and uses a ground truth evaluation template to measure quality—all as a plug-and-play module.
Building AX evals that actually work
This is the eighth and final article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. You've read seven articles about what to measure, why benchmarks don't transfer, and what hidden variables can do to your results. Now you actually have to build the thing. Most teams build an eval, run it, get scores, and feel good about the numbers. The trouble is that these evals produ...
Microsoft Agent Framework for Go public preview
Microsoft Agent Framework for Go is entering public preview, bringing Agent Framework concepts to Go developers building agents and multi-agent workflows.
Modernize .NET applications in the GitHub Copilot app
Modernize .NET applications in the GitHub Copilot app. Follow your upgrade from assessment through execution in an interactive upgrade canvas.
From Noisy Queries to Precise Frames: Query Decomposition for Media Asset Search
How query decomposition separates metadata filters from visual intent to significantly improve media asset retrieval quality.
Building on Vercel’s eve + Azure Cosmos DB: An Agent That Remembers
Most "AI agent" demos forget everything the moment the process exits. That's fine for a toy project, but useless for anything real. An agent that helps you write, triage, or support needs two things a language model alone can't give it: durable state and the ability to recall the right context by meaning. This post shows how to build exactly that by integrating two pieces that fit together surprisingly well: Eve — Vercel's filesystem-first agent platform. Drop a file in agent/tools/, and it becomes a tool the model can call. Azure Cosmos DB JavaScript SDK — the official, promise-based client for Cosmos DB N...
The hidden variables in your agent eval
This is the seventh article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. You build an eval. You run it on your machine. You get a score. Your colleague runs the same eval on their machine and gets a different score. Same scenario, same setup. What changed? In the previous article, we covered why public benchmarks can't tell you which model works best for your stack. T...
Don’t rewrite your CLI for agents
There's advice making the rounds: replace your CLI args with a single payload so agents can use your tool more effectively. The thinking being, that agents already think in structured formats, and nested data maps cleanly to JSON. Flat args on the other hand, force awkward conventions like repeating to delimit multi-value groups, which is inherently ambiguous. Not to mention, that the agent needs to get the types of all values right. It's a reasonable hypothesis, and we wanted to know if it holds up under measurement. The data we collected, showed something interesting. What we tested We built a synthetic CL...
Not all model upgrades are upgrades
A new model drops with lower per-token pricing and better benchmarks. You switch. A week later someone asks why the agent is burning 12x more tokens on the same task while producing worse output. We ran 150 agent tasks across 15 scenarios on two models, Claude Sonnet 4.6 and Claude Sonnet 5, using GitHub Copilot Chat in VS Code on Windows. The scenarios covered two types of work: architecture and design tasks grounded in Microsoft Learn documentation, and SharePoint Framework project upgrades. Sonnet 5 is the newer model with 33% lower per-token pricing across every token category. The assumption we wanted to te...
Enabling MLflow OpenAI Autolog on PySpark Workers
When distributing LLM calls across PySpark workers via mapInPandas, MLflow autolog silently fails. Here is how to fix it.
What AI benchmarks are not telling you
This is the sixth article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. We love benchmarks. A new model drops, the leaderboard says 92% on SWE-bench, and your timeline declares it "the best coding model." You switch to it, run your agent on your codebase, and outcomes are... the same. Maybe worse. The leaderboard said 92%, so what happened? In the previous article, we ...
What’s new across Microsoft SQL in 2026 so far (SQL Server, Azure SQL, and SQL database in Fabric)
We’re halfway through 2026, and Microsoft SQL has not slowed down. Since SQLCon/FabCon in March (where we released a ton of things, and those updates can be found in this updates video), we shipped a wave of updates across SQL Server, Azure SQL, and SQL database in Fabric, with Microsoft Build 2026 as the centerpiece. If you want the details on Build, start with my recap blog, The Era of the Agentic Database Developer. This post collects everything new from mid-March through today, organized by service so you can find what matters to you. Every item is tagged Preview or Generally Available with a link. You can...
MCP Beyond the Chat Window: Build Diagnostics in CI
A practical tour of the Model Context Protocol tools for .NET build diagnostics - the full Binlog MCP toolset, how those tools run inside a GitHub Actions workflow, and what the evaluation data says about the efficiency gains.
Spring AI 2.0 is GA: Vector Search, Memory, and Agents on Azure Cosmos DB
The wait is over. Spring AI 2.0 is generally available, and Azure Cosmos DB is right there with it. With this release, Spring AI graduates into a mature, production-ready framework for building AI applications in Java, and Azure Cosmos DB ships dedicated, vendor-maintained integrations that plug straight into the Spring AI ecosystem. The Spring AI 2.0 GA announcement names Azure Cosmos DB among its vendor-maintained modules, maintained directly by Microsoft rather than the core Spring AI team. This means the integration is built and supported by the engineers who work on Cosmos DB itself, bringing deep, first-ha...
Your agent already has a plan
If an agent isn't doing the right thing, the obvious move is to make the docs clearer. Add a tip, spell out the correct command, describe the right approach more prominently. You do all of that, and the agent still ignores it. It does what it had already decided to do. The tip wasn't ignored because it was unclear, it was ignored because the agent had already made its plan before it read the page. The agent plans before it reads An AI coding agent doesn't arrive at your documentation as a blank slate. The moment you give it a task, it forms a plan based on what it learned during training, before it goes and...
Learn from Microsoft: Transform software development through an agentic platform
See how Microsoft is transforming software development with agentic workflows, AI-powered automation, and specialized agents across the engineering lifecycle.
When the model has never seen your code
This is the fifth article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. Everything we've covered so far assumed the model has some training data about your technology. Maybe it's outdated, maybe it's biased toward a competitor, but there's something in the weights to work with. For proprietary code, internal SDKs, and custom frameworks, there's nothing. In the previous...
Models don’t have preferences, they have context
You open a fresh chat, type "What framework should I use for a web app?", and the model says "React." You screenshot it, share it, and write "Claude prefers React." It gets engagement. People nod along. A few reply with their own results. And now we have a consensus: Claude prefers React. Except it doesn't. The model doesn't prefer anything. You're reading the room, not the mind. The genre There's a whole genre of this. Run N prompts in a bare chat window, tabulate the answers, maybe build a heatmap, publish it as a blog post or a thread. "Which frameworks do LLMs prefer?" "What languages do models recommend mo...
Stop overloading your skills
You built a skill for your technology. API references, authentication flows, SDK patterns, error handling, version info, all packed into one skill. The agent calls it, gets all that context, and generates code. The kicker? You've just wasted a lot of tokens. It already knows Models have ingested your documentation, your Stack Overflow answers, your GitHub repos, your blog posts. The default imports, the standard auth flow, the common CRUD operations: the model already has all of that baked in. When your skill repeats what the model already knows, you're not helping, you're adding weight. Every token your skill...
AI-Powered MSBuild Investigation with the Microsoft Binlog MCP Server
Diagnose MSBuild build failures and performance issues with AI using the new Microsoft Binlog MCP Server - 15 specialized tools that let your AI assistant investigate binary logs.
How to diagnose conflicts between AI agent extensions
Your extension works in isolation. You measured it, confirmed it creates lift. Then a developer installs it alongside 14 other extensions, and outcomes get worse. The symptoms look like a bug in your code, but the problem is elsewhere: extensions fighting each other for the same context window and model attention.
Why AI coding agents keep using deprecated CLIs and SDKs
You deprecated the old CLI and shipped something better. Developers are migrating, but AI coding agents aren't. They keep reaching for the deprecated tool, confidently scaffolding projects with something you sunset months ago. The agent isn't broken, your docs aren't wrong. The model is doing exactly what ten years of training data told it to do, and once you understand why, you can fix it. Training data gravity Models learn from the internet. If your technology has been around for a decade, there are thousands of blog posts, Stack Overflow answers, tutorials, and GitHub repos that document the old way of doi...