Microsoft released the Agent Framework Harness on July 22, 2026, giving developers a stable, batteries-included runtime that turns a plain chat model into a working agent. Shipping for both Python and .NET, the harness bundles ten production concerns, the tool-calling loop, planning, memory, context compaction, approvals, and telemetry, into a single component you configure with instructions and a list of tools. It is the newest addition to the Microsoft Agent Framework (MAF), the open, multi-language stack Microsoft first shipped as version 1.0 in April 2026.
For anyone building agentic tools, the release matters because it standardizes the plumbing every serious agent needs. Most teams rebuild the same loop, retry logic, history trimming, and approval gates from scratch. The harness treats that scaffolding as a solved problem so you can spend your time on tools and prompts instead.
What Microsoft actually shipped
The harness is described by Microsoft as "the scaffolding that turns a language model into an agent." It wraps a chat client with a complete agentic pipeline so a model can run multi-step tasks on its own rather than returning a single block of text. In Python you reach for the agent_framework module; in .NET the type lives under the Microsoft.Agents.AI namespace, where the HarnessAgent has now graduated to a stable API.
Ten built-in, customizable features ship inside it:
- Function invocation with configurable iteration limits
- History persistence saved after every model call for crash recovery
- Compaction that manages the context window during long tool-calling loops
- Planning and execution through a todo list with plan and execute modes
- File memory for durable session notes that survive across turns
- Skills for progressive discovery of packaged domain expertise
- Web search wired to the inference service search tools
- Tool approval with "don't ask again" rules and heuristic auto-approval
- Telemetry via built-in OpenTelemetry support
- Minimal configuration, where only instructions and tools are required
A minimal Python agent is a few lines. You import create_harness_agent, pass a chat client such as FoundryChatClient, hand it instructions and tools, and call run. Everything from the loop to the memory files is handled underneath. Full samples live in the repository under python/samples/02-agents/harness and dotnet/samples/02-agents/Harness, and the reference docs are on Microsoft Learn.

The harness versus rolling your own
The value is easiest to see against the do-it-yourself baseline. Below is what each of the ten concerns costs when you build an agent by hand instead of adopting the harness.
| Concern | Hand-built agent | Agent Framework Harness |
|---|---|---|
| Tool-calling loop | Custom while-loop, easy to leave unbounded | Built in, with iteration limits |
| Crash recovery | You wire your own persistence | History saved after each call |
| Long-context runs | Manual truncation, often lossy | Automatic compaction |
| Planning | Prompt tricks and hope | Todo list with plan and execute modes |
| Approvals | Ad hoc conditionals | Rules plus heuristic auto-approval |
| Observability | Bolt-on logging | OpenTelemetry out of the box |
None of these are novel ideas on their own. What is new is having all of them stabilized in one supported component, in two languages, with the same mental model. That consistency is the point: a Python prototype and a .NET production service now describe an agent the same way.
How it compares to other agent frameworks
The harness lands in a crowded field. The OpenAI Agents SDK, LangGraph, and Anthropic's Claude Agent SDK all offer their own take on the same loop. The differences come down to language reach, how much comes preassembled, and how tightly each ties to a single model provider.
| Framework | Languages | Model coverage | Built-in memory and skills |
|---|---|---|---|
| MAF Harness | Python and .NET | Foundry, Azure OpenAI, OpenAI, Copilot SDK | Yes, file memory and skills |
| OpenAI Agents SDK | Python and JavaScript | Primarily OpenAI models | Sessions, lighter on skills |
| LangGraph | Python and JavaScript | Provider agnostic | Graph state, you assemble memory |
| Claude Agent SDK | Python and TypeScript | Anthropic models | Yes, files and subagents |
The standout for MAF is that it is the only one of the four with first-class .NET support, and its broad model coverage across Microsoft Foundry, Azure OpenAI, OpenAI, and the GitHub Copilot SDK means you are not locked to one vendor. If your shop already runs .NET, this is the first agent harness that meets you where you are. The tradeoff is gravity toward Azure and Foundry for the richest experience, much as the others pull toward their home providers.

What this enables for builders
If you make tools, internal apps, or client work, the harness shortens the path from idea to a running agent. Here is how to integrate it into a first project:
- Install the framework from the agent-framework releases, choosing the Python package or the .NET libraries.
- Pick a chat client for your provider, such as a Foundry, Azure OpenAI, or OpenAI client, and authenticate it.
- Write instructions and register tools, ordinary functions the model may call, then create the harness agent with just those two inputs.
- Turn on the features you need: enable file memory for durable notes, add skills for packaged domain knowledge, and set approval rules for any tool that writes or spends.
- Wire telemetry to your OpenTelemetry backend so you can watch token use, tool calls, and failures in production from day one.
The result is a research assistant, a data-processing agent, or a domain expert that remembers context across sessions and asks before doing anything risky, without you writing the loop. For creative and content workflows, that means you can stand up an agent that drafts, calls your own APIs, and keeps notes between runs in an afternoon rather than a sprint. If you are weighing this against parallel coding agents, our look at running Claude Code, Codex, and Cursor in parallel covers the multi-agent angle, and the release fits the broader shift we tracked in Gemini 3.6 Flash becoming an agent workhorse.

Frequently asked questions
What is the Microsoft Agent Framework Harness?
It is a batteries-included agent runtime released on July 22, 2026 that wraps a chat model with the full agentic pipeline, the tool-calling loop, memory, planning, compaction, approvals, and telemetry, so the model can run multi-step tasks. It ships for Python and .NET as part of the Microsoft Agent Framework.
How is the harness different from the Agent Framework itself?
The Agent Framework is the broader stack for building and orchestrating agents and multi-agent workflows, first shipped as 1.0 in April 2026. The harness is a specific, stable component inside it that preassembles the ten runtime concerns most single agents need, so you do not build them yourself.
Which languages and models does it support?
The harness runs on Python through the agent_framework module and on .NET through the Microsoft.Agents.AI namespace. It supports Microsoft Foundry, Azure OpenAI, OpenAI, and the GitHub Copilot SDK, so you are not tied to a single provider.
Do I need Azure to use it?
No. You can point the harness at OpenAI or other supported clients. Azure and Foundry give the deepest integration, but the framework is open source on GitHub and works with several providers.
How does it compare to LangGraph or the OpenAI Agents SDK?
LangGraph is provider agnostic and gives you graph state to assemble yourself, while the OpenAI Agents SDK leans toward OpenAI models with lighter skill support. The MAF Harness is the only one of the group with first-class .NET support and ships more of the runtime, including file memory and skills, preassembled.
Where do I find working examples?
Samples live in the GitHub repository under python/samples/02-agents/harness and dotnet/samples/02-agents/Harness, and the reference documentation is on Microsoft Learn.