08 · 微软阵营:一个 60k star 项目被冻结的故事
这一篇不只是介绍三个框架,更是本专题里最好的一个选型风险案例。
一、AutoGen:星最多,但已经冻结
| 仓库 | microsoft/autogen |
| Star | 60.5k |
| 最后提交 | 2026-04-15 |
| 状态 | 冻结,能力迁往 Microsoft Agent Framework |
图片来源:AutoGen 0.2 文档
它的核心贡献:把多智能体做成「群聊」
AutoGen 的范式在 2023 年是新鲜的 —— 多个 Agent 像人一样在一个房间里轮流发言,直到问题解决:
# AutoGen v0.4 AgentChat 风格
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
# AutoGen 把「模型客户端」和「Agent」分开:一个 client 可以给多个 Agent 共用
model_client = OpenAIChatCompletionClient(model="gpt-4o")
# 两个 Agent 的差别只有 system_message —— 这就是「角色」的全部实现
writer = AssistantAgent("writer", model_client=model_client, system_message="你负责写作。")
critic = AssistantAgent("critic", model_client=model_client, system_message="你负责挑刺,满意就说 APPROVE。")
# RoundRobinGroupChat = 轮流发言:writer 说一句 → critic 说一句 → writer 再改 → ……
# 直到满足终止条件(比如 critic 说出 APPROVE,或达到最大轮数)
team = RoundRobinGroupChat([writer, critic])
await team.run(task="写一首关于秋天的短诗")
这个「写手 + 批评者」的循环几乎定义了后来所有多智能体框架的范式 —— CrewAI、CAMEL、MetaGPT 都能看到它的影子。
它还带了一个 AutoGen Studio 低代码 GUI:

图片来源:microsoft/autogen
两次断裂
- v0.2 → v0.4:完全重写成事件驱动 Actor 架构,API 不兼容。大量教程、博客、课程一夜过期。
- v0.4 → 冻结:并入 Microsoft Agent Framework,官方提供迁移指南。
社区分叉出了 AG2(4.9k star,"formerly AutoGen"),继续维护 v0.2 血脉。60k star 的原仓库停更,4.9k star 的分叉在活跃 —— star 数在这里彻底失去了指示意义。
评估框架时,pushed_at 和「背后组织的战略连续性」比 star 数重要。
AutoGen 是微软研究院的项目,Semantic Kernel 是微软产品部门的项目 —— 两个团队各做各的,最后必然要合并。这种「同一家公司做两套」的信号,在任何生态里都值得警惕。
同样的信号也出现在别处:Google 有 ADK 也有各种 Gemini 工具链,OpenAI 有 Agents SDK 也有 Assistants API 的历史包袱。选框 架时问一句:这是这家公司的战略主线,还是众多实验之一?
二、Semantic Kernel:企业 .NET 的老兵
| 仓库 | microsoft/semantic-kernel |
| Star | 28.5k |
| 版本 | 1.44.1 |
| 主语言 | C#(也有 Python / Java) |
| 状态 | 活跃维护,但新项目官方推荐迁到 MAF |
SK 的定位一直很清楚:给已经在 .NET / Azure 生态里的企业开发者,一个能把 LLM 塞进现有系统的 SDK。 它的抽象(Kernel、Plugin、Function、Planner、Memory)非常「企业软件」:依赖注入、强类型、和 ASP.NET 无缝对接。
它在中文社区存在感低,但在欧美传统企业 IT 里装机量很大 —— 因为那些公司的后端就是 C#。
官方现在给的路径是从 SK 迁移到 MAF。
三、Microsoft Agent Framework:合流之后的产物

| 仓库 | microsoft/agent-framework |
| Star | 12.9k(新项目,增长快) |
| 版本 | agent-framework 1.14.0 / NuGet Microsoft.Agents.AI |
| 语言 | Python + C#/.NET 双一等公民 |
| 许可证 | MIT |
| 一句话 | AutoGen 的多智能体编排 + SK 的企业工程能力,重新做一遍 |
最小代码
import asyncio
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
async def main():
agent = Agent(
# client 决定「模型从哪来」。FoundryChatClient 走 Azure Foundry,
# AzureCliCredential 表示复用你 `az login` 的身份,不用在代码里放密钥。
# 端点和模型名可以从环境变量读,也可以直接传参
client=FoundryChatClient(credential=AzureCliCredential()),
name="HaikuAgent",
instructions="You are an upbeat assistant that writes beautifully.",
)
print(await agent.run("Write a haiku about Microsoft Agent Framework."))
asyncio.run(main())
.NET 侧是对等的一等公民:
using Microsoft.Agents.AI;
// DefaultAzureCredential 会依次尝试环境变量、托管标识、az login 等方式取凭据
AIAgent agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())
// AsAIAgent 把一个 Foundry 项目客户端「变成」一个 Agent
.AsAIAgent(model: deploymentName,
instructions: "You are an upbeat assistant that writes beautifully.",
name: "HaikuAgent");
// 和 Python 版的 agent.run(...) 完全对应 —— 这就是「双一等公民」的意思
Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework."));
「Python 和 .NET API 一致」是它在本专题里的独特卖点 —— ADK 有五种语言但以 Python 为主导;MAF 是真的把 .NET 当第一梯队做。
官方自己给的适用判断
MAF 文档里直接列了「什么情况适合你」,很少见地诚实:
- 你构建的 Agent / 工作流预期要跑在生产环境
- 你需要超出单次提示或无状态聊天循环的编排
- 你要基于图的模式:sequential、concurrent、handoff、group collaboration
- 你在意持久性、可重启、可观测性、治理、人工介入控制
- 你需要供应商灵活性,架构演进时不用大改
翻译成人话:它是冲着「LangGraph 那一层能力 + 企业治理」去的,不是冲着快速原型。
生态覆盖
支持 Microsoft Foundry、Azure OpenAI、OpenAI、GitHub Copilot SDK。托管上有 A2A、Foundry hosted agents,以及独立的 Durable Agent Framework extension(Durable Task / Azure Functions 集成)—— 持久执行被拆成了扩展包,这一点和 LangGraph 把 checkpointer 做进核心不同。
四、三者怎么选
| 你的处境 | 选择 |
|---|---|
| 新项目,微软生态 | Microsoft Agent Framework |
| 老项目在 AutoGen v0.4 | 走官方迁移指南到 MAF |
| 老项目在 AutoGen v0.2,不想大改 | AG2 分叉 |
| 老项目在 Semantic Kernel,跑得好好的 | 不急着动,SK 仍在维护;新模块用 MAF |
| 不在微软生态 | 说实话,LangGraph / ADK 社区更大,除非你要 .NET |