On July 7, Microsoft removed the [Experimental] attribute from the Agent Skills API in Microsoft Agent Framework 1.13.0. It is a quiet change in the changelog, but it is the green light thousands of .NET developers have been waiting on. If you have been holding off on building production agents with MAF Skills because the API felt unstable, that blocker is gone.
What Agent Skills Actually Are
Agent Skills are reusable packages of domain expertise — instructions, reference documents, and optional scripts — that agents discover and use on demand. The mental model is closer to a plugin with governance built in than a standard function tool. Each skill ships as a standalone unit: a SKILL.md file with YAML frontmatter and markdown instructions, optionally paired with scripts the agent can execute and reference documents it can read.
The production release locks in three authoring styles:
- File-based: A directory containing
SKILL.md, scripts, and reference docs. Designed for skills maintained by cross-functional teams or non-developers. - Class-based: A C# class packaged as a NuGet package. Ship it to an internal feed and reference it like any dependency.
- Code-defined: Inline C# in application code. Fast to write, good for skills that do not need to be reused across agents.
All three styles compose freely in a single SkillsProvider. Your agent does not care which style a skill was authored in.
Why "Stable" Is the News Here
The [Experimental] C# attribute is a compiler-level signal that an API is subject to change without notice. Microsoft used it throughout the Agent Skills surface since its introduction. Removing it is a formal commitment: the Skills API is now under the same backward-compatibility guarantee as the rest of MAF.
What that means in practice: you can upgrade MAF minor versions going forward without expecting the Skills interface to break. Teams that had "wait for stable Skills" on their internal blocklist can clear it.
Critically, stability covers the full Skills surface — not just the API shape. Caching, approval, and script execution are all included. The CachingSkillsSource ensures concurrent callers for the same key share a single in-flight fetch; the inner source is queried at most once per key. In production, leave caching enabled — it is the default.
Governance Is the Differentiator
Every skill interaction goes through an approval gate by default. All three skill tools — load_skill, read_skill_resource, and run_skill_script — require explicit approval before execution. Nothing loads or runs without oversight. This is not bureaucratic overhead; it is the feature that makes the difference between "AI thing we built" and "AI thing we are allowed to deploy."
The 1.13.0 release makes the default-approval harness configurable, so you can tailor approval policies per skill, per tenant, or per agent without rewriting the plumbing. Microsoft’s own Agent Governance Toolkit integrates directly with this approval layer for teams that need audit trails and policy enforcement at scale.
What Else Changed in 1.13.0
The stable Skills API is the headline, but there are several other changes worth checking before you upgrade:
- Foundry Hosting: Session isolation now works when running locally without user identity — useful for CI pipelines and local development loops.
- FileAccess tools: Directory discovery and recursive search added, aligned with the Python SDK. This is a breaking change if your agent uses FileAccess.
AddFoundryToolboxesnow requires an explicitTokenCredential. Previously it could fall back silently; now it fails at startup. Audit your Foundry integrations before upgrading.
Two breaking changes in a single release is not unusual for a framework this active, but both require explicit code changes. Budget time to test your Foundry-connected agents before rolling 1.13.0 to production. The full release notes are on GitHub.
The Semantic Kernel and AutoGen Question
If you are still running a Semantic Kernel or AutoGen project and wondering whether now is the time to migrate: it is, but you are not in a fire drill. Both projects remain supported. AutoGen is in maintenance mode — meaning bug fixes and security patches, but no new features. Semantic Kernel is similar; Microsoft’s investment has consolidated into MAF.
The migration path is well-documented. From AutoGen, AssistantAgent maps to ChatAgent and FunctionTool wrappers move to AIFunctionFactory.Create(). Microsoft provides migration assistants that analyze your existing code and generate step-by-step upgrade plans. From Semantic Kernel, your session state, middleware, and telemetry patterns transfer without major rewrites.
To add the package:
dotnet add package Microsoft.Agents.AI
What Is Still Not Stable
CodeAct — the mode where the agent writes a Python program that calls tools in a single sandbox pass — is still in alpha under the agent-framework-hyperlight package. The performance numbers are compelling: 52.4% faster execution and 63.9% fewer tokens on representative workloads. But it is not production-ready. Do not build on it yet.
Agent Skills for Python has also received recent additions (Code Skills, Script Execution, Approval) that are newer than the .NET surface. Python teams should review the Python Skills release notes independently.
The Bottom Line
Agent Skills graduating to stable is the moment MAF becomes a complete production platform for .NET teams. The Skills system handles what raw LLM tool-calling does not: distributing, governing, and composing domain expertise across agents at enterprise scale. Before you upgrade, audit your Foundry integrations for the TokenCredential change and check any FileAccess tool usage. Otherwise, 1.13.0 is a clear upgrade. The full announcement is on the Microsoft Agent Framework dev blog.













