Why Microsoft Has Three Overlapping Frameworks
Semantic Kernel launched first, as a lightweight SDK for composing 'plugins' (functions, prompts, and connectors) around LLM calls with enterprise concerns — dependency injection, telemetry, and multi-language support (C#, Python, Java) — built in from day one. It was designed for teams that wanted LLM orchestration to feel like normal enterprise software engineering: typed, testable, and instrumentable.
AutoGen emerged from Microsoft Research as an experimentation-first framework for multi-agent conversation patterns: multiple agents (each with a role, a system prompt, and optionally tool access) converse with each other to solve a task, with patterns like group chat, hierarchical delegation, and human-in-the-loop checkpoints. AutoGen's strength was rapid research-style prototyping of novel agent-to-agent interaction patterns, and it built a large open-source community around exactly that flexibility.
Having two frameworks with overlapping but philosophically different goals — Semantic Kernel's engineering rigor versus AutoGen's flexible multi-agent experimentation — created real confusion for enterprise teams trying to pick one for production. Microsoft's answer is the Microsoft Agent Framework, announced as the convergence of Semantic Kernel's enterprise-grade plugin/connector model and AutoGen's multi-agent orchestration patterns into a single, actively developed SDK — effectively the successor most new projects should target, with Semantic Kernel's core abstractions carried forward and AutoGen's multi-agent patterns reimplemented on top of the same production-grade foundation.
This kind of framework consolidation is not unusual in Microsoft's developer-tools history — similar convergences have happened before as research prototypes matured into production platforms — but it does mean architects evaluating 'Semantic Kernel vs AutoGen' as a static, permanent choice are asking a slightly outdated question. The more useful question for a project starting today is: does Agent Framework already cover my needs, or is there a specific capability gap (a connector, a language SDK, a community integration) that still makes one of its two predecessors the better near-term choice, with a deliberate plan to reassess as Agent Framework matures.