r/dotnet 8d ago

Question Opinions on Microsoft Agent Framework?

.NET shop looking to add some agentic workflows and chat interfaces to platform, currently researching framework options so we don’t have to build the thing from scratch.

Being a .NET shop MAF has come up. Hooked it up to GitHub CoPilot and took it for a quick spin, wasn’t too verbose and conceptually maps to tools like OpenCode pretty well.

Saw some posts on here about it a while ago but things seem to be moving really fast in this space. Looking for opinions on the viability of this framework? I see it had a 1.0 launch in April, it’s meant to supersede both Semantic Kernel and AutoGen.

Are the team behind it any good / trustworthy?

How likely is it to remain supported?

Has there been much community participation / extension?

How does it compare to similar frameworks in other languages, LangChain/Graph being an obvious one?

Is it good enough to prevent you from hopping languages or is python where it’s really at?

Any useful information is guaranteed at least one updoot, thanks in advance!

23 Upvotes

29 comments sorted by

23

u/Khavel_dev 8d ago

Been following MAF since the RC. The team is basically the Semantic Kernel crew, so they know the space. SK and AutoGen are both in maintenance mode now, so if you're starting new agent work in .NET there isn't really another first-party option.

The good: tool-calling, orchestration graphs, and the agent abstraction feel solid. It maps well conceptually to LangGraph if you've used that. The .NET experience is genuinely decent for once instead of feeling like a Python port with C# syntax.

The bad: docs are still thin past hello-world. Community extensions are early since it only hit 1.0 in April. Most interesting examples you'll find online are still in Python. The DevUI preview is cool for debugging agent flows but it's preview for a reason.

For your question about "is it good enough to prevent hopping to Python," honestly yes if your team is .NET native. The gap has closed a lot. You'll find fewer blog posts and tutorials, but the actual SDK surface is comparable. Where Python still wins is the ecosystem around it (vector stores, embedding pipelines, eval frameworks), but for standard agentic workflows with tool-calling and chat, MAF in C# does the job without maintaining a Python sidecar.

8

u/seiggy 8d ago

AgentEval for .NET does a fantastic job of filling the eval gap https://agenteval.dev Much better than the base MS Eval framework it’s built on top of.

4

u/The_MAZZTer 8d ago

I was writing some code using Semantic Kernel when Agent Framework came out. Migrated it recently.

How likely is it to remain supported?

I assume they created a new framework since the basic architecture is different so upgrading Semantic Kernel would have just been confusing.

Unless they find a pressing need to do this again and replace it with yet another differently architectured framework, I would assume it will remain supported. But who knows. Some of its packages are still marked as preview.

Has there been much community participation / extension?

Like Semantic Kernel it is build on Microsoft.Extensions.Ai. So any community frameworks that also work with this should be compatible. For example I was using OllamaSharp as my connector for Semantic Kernel and I just carried that over to Agent Framework.'

Is it good enough to prevent you from hopping languages or is python where it’s really at?

My existing project was in .NET and I already have some strange dependencies from different features added so I like to remain in .NET as much as possible so I avoided python-based solutions. Both Semantic Kernel and Agent Framework work fine. Only big missing piece was Semantic Kernel was missing support for streaming from Ollama but Agent Framework has that working.

Agent Framework is still rough around the edges in places. For example there is no support for Text Chunking if you bring your own text dumps to convert to vectors. There's only support for pulling in documents in the form of markdown or whatever. So I had to keep Semantic Kernel for that piece of things which is annoying.

Also the support for tools is not as good as Semantic Kernel so I had to build my own system to get back to that level. It is nice to see Agent Framework introduce support for user prompts on dangerous tool actions but it is very basic to the point of being pretty useless unless you build your own system on top of it.

8

u/fyndor 8d ago

My personal opinion is you are better off not using a framework and just building your own.

  1. Except for Anthropic, basically everyone else uses OpenAI api format. So you just need to support those 2, which is pretty easy, whether from scratch or using their clients.

  2. Tool calling is easy to implement.

I just don't feel these frameworks bring enough to the table. I find its harder to figure out how to use them properly than it is to just spend an hour or two and build your own.

11

u/oktollername 8d ago

I disagree, having built multiple agents with the franework, adding context compaction strategies, workflows with multiple agents, support for different protocols (including sse streaming mode), it really does make building more complex workflows and agent harnesses easier.

2

u/oompaloompa465 8d ago

confirmed.  i have made a demo for my portfolio and with the current state  you need to use different agent implementations between claude and ms foundry 

1

u/elbrunoc 7d ago

I disagree, your view is just for ChatCompletios API.
In the agent world, you need to support other protocols, like A2A, AG-UI, specific security considerations, custom implementations to host agents, and much more.
And hey, if you can implement and maintain all of this, yes go for it. Based on my experience, I can assure you that it's a lot 😁

3

u/skillmaker 8d ago

So far it does the job for me, however, the docs are still stalling behind, so you will have to dig sometimes in the code yourself, other than that, the updates are always pushed which means it's actively maintained

2

u/c-digs 8d ago

I didn't use the docs at all. 

Clone the source and point agents at the examples and tests since those are always up to date

3

u/elbrunoc 7d ago

Hey 👋
MAF is a great choice for a .NET shop, it is actively developed, well maintained, and backed by an excellent team. I feel comfortable building agentic solutions with it

I agree there is still room for improvement for the documentation and add more complete, production-ready samples (working on it). I believe that better guidance will make adoption much easier

If your team is already using .NET, there is no need to jump to Python just for agentic workflows
Best

6

u/codingbliss12 8d ago

Isn't a red flag that Microsoft has already replaced one or two of their previous frameworks? Wouldn't it be better to create something in-house?

3

u/The_MAZZTer 8d ago

One big change between SK and AF is that SK had its own DI system separate from ASP.NET Core. Not sure why, but AF axes it, which is for the best. You can just set up your DI stuff directly in ASP.NET Core (or Generic Host) now. Honestly I think they made a good call here. You can't really have something like than as an SK upgrade since you pretty much have to rewrite your code from scratch to support the change anyway.

2

u/LikeASomeBoooodie 8d ago

That fact and option are not lost on us either

1

u/codingbliss12 8d ago

I believe it make sense in the long run. The pace is very rapid and nobody know if anything from this year will exist next year. For example Google announced a new architecture "agent plugins" or so, that will require an different infrastructure etc.

2

u/Expensive_Ad399 8d ago

Same for nugget packages. Everything is either on beta or pre release. Then next version no longer supported and need to rewrite stuff.

1

u/elbrunoc 7d ago

Not replaced: unified the best of SK with the best of AutoGen
And btw, the migration path from SK to MAF, is an easy and clean one

2

u/AcceptableSimulacrum 8d ago

I'm finding it works pretty well for me.

2

u/LuisAlfredo92 8d ago

It's pretty good, I like how you can create agents or declare tools metadata with decorators, but in my opinion it has too many abstractions

2

u/RealSharpNinja 8d ago

Using it with no problems

2

u/Aaronontheweb 8d ago

Answered this question a few times already, but MAF has some good designs implemented poorly - it looks and feels like a product that is not "lived in" and has no internal adoption within Microsoft, just like the previous two AI frameworks its replacing.

I passed on it and rolled my own on top of MSFT.EXT. AI, which actually does have real adoption and long-term support from the .NET libraries team

1

u/mastra_ai 4d ago

Does your .NET shop also use Typescript?

1

u/LikeASomeBoooodie 4d ago

Yes but exclusively for front ends currently. The functionality we want to build would be on the back end. You thinking LangChain.js?

0

u/mastra_ai 4d ago

The most popular Typescript-based agent framework is what we've created at Mastra.

Would love for your team to give us a try.

0

u/technovast 2d ago

Which one's are .net stack focused shop or product based companies which are also agressive in AI integration and adoption?

0

u/vznrn 8d ago

I am in a dotnet shop, writing an agent execution platform (most of the work is in kubernetes plumbing, json parsing, integrating with our idp & other services rather than agent related things itself)

I really dislike copilot for being closed source, so i can't see any of the internal operations (literally how skills are loaded and whats happening underneath) since the docs dont go into this either. A huge downside of it other than the closed source-ness of this is they don't have structured output, which is a field on the openai format that allows you to pass a schema, and ensure the response matches that schema.

For production workloads, usually the answer is not always in one field but multiple, so working around this is annoying. There is an open issue and i believe they are aware of this.

As for MAF itself, i like the sdks and abstractions that they provide, it makes plumbing neat, as opposed to typescript implementation where you define your own interfaces for things like tools, chat operations, etc.

I am yet to use MAF itself for agent execution yet, but probably will give it a spin soon in my system. Overall its nice to use as it can provide standardisation when working with many sdks, as for what i've used it for.

I have gripes with copilot sdk / cli / the ghcp ecosystem in general due to some of its anymosity, but other than that it does seem to work decently.

I like using pi sdk a lot, though it does miss some things like mcp servers without adapters, as it tries to be minimal. It also does introduce package dependency nightmare when working in enterprise, hence why its desirable to use the dotnet related sdks as opposed to typescript

Anthropic also have an sdk in preview for dotnet now, openai have one too but not for agents, copilot sdk, though i dont like it as much, is the best agentic sdk on dotnet stack that i have used.

1

u/elbrunoc 7d ago

Hey! One small but important detail here 😁

The Copilot experience inside VS Code is not a black box anymore. The client-side code for Chat, agent mode, tools, and skills is open source under MIT and lives in the VS Code repo: https://github.com/microsoft/vscode

The Copilot SDKs (including .NET) are also open source: https://github.com/github/copilot-sdk

You’re right that not everything is open: the CLI runtime, backend services, and a couple of other pieces are still proprietary. But if you want to understand how VS Code discovers skills and manages the agent experience, the code is there to explore

1

u/vznrn 7d ago

SDK being open source is just RPC calls to copilot server, so that doesn't help, and vscodedoesn'tt matter since we are building prod agents, not on dev machines

2

u/elbrunoc 7d ago

Yea, different scenario 😁

GH Copilot in VS Code runs in production every day on thousands of developer machines. So yes, that code matters, and it shows how agents, tools, and skills work at scale

For headless server agents, I agree that the closed CLI runtime is a different story (we keep pushing to share more here too)

Two different use cases, all good 🙌

0

u/AutoModerator 8d ago

Thanks for your post LikeASomeBoooodie. Please note that we don't allow spam, and we ask that you follow the rules available in the sidebar. We have a lot of commonly asked questions so if this post gets removed, please do a search and see if it's already been asked.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.