数据截至 (上游 commit 1f738cdeb7f5)
Microsoft Agent Framework — 架构与原理
30 秒导读: Microsoft Agent Framework(MAF)是微软给「把 AI agent 做到能上生产」用的框架,同时提供 .NET 和 Python 两套一致的 API。它有两个层次:下层是单个 agent(一个会调工具、能被中间件包裹、带会话记忆的 LLM 循环);上层是多 agent 图工作流(把多个 agent/函数连成一张有向图,按数据流一步步跑)。两层站在同一套「类型化消息」抽象上。它最值钱的部分是工作流引擎:用 Pregel 超步(把整张图切成一轮一轮离散的计算步)驱动执行,并在每个超步边界落检查点,于是整条多 agent 流程可以持久化、崩溃后恢复、暂停等人回话、甚至回到某一步重跑。
1. 这是什么(零基础也能懂)
-
一句话定义: 一个用来搭建并运行 AI agent、以及把多个 agent 编排成工作流的生产级框架,.NET 与 Python 双语言、API 对齐。
-
解决什么问题 / 给谁用: 假设你已经能让一个 LLM「聊天 + 调几个工具」,但真要上线时会撞到一堆硬问题——多个 agent 怎么协作、流程跑一半崩了怎么接着跑、要不要人来审一下再继续、换个模型供应商要不要重写。MAF 就是替这些「从原型到生产」的活儿铺底座的,给的是要把 agent 系统运营起来的团队用。
-
它能做什么(功能):
- 建单个 agent:接各家模型(Foundry / Azure OpenAI / OpenAI / Anthropic / Gemini / Ollama…),挂工具、挂中间件、带会话记忆。
- 建多 agent 工作流:把 agent 和普通函数连成图,支持顺序、并发、交接(handoff)、群聊等模式。
- 生产能力:检查点与断点续跑、流式事件、人在环路(human-in-the-loop)、时间旅行(回到某个检查点重跑)、OpenTelemetry 可 观测性、YAML 声明式定义。
-
用起来什么样: 最小的一个 agent(Python,来自 README):
# 示意,源自 README 快速上手from agent_framework import Agentfrom agent_framework.foundry import FoundryChatClientfrom azure.identity import AzureCliCredentialagent = Agent( # 一个 agent = 客户端 + 指令 + (工具)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."))把两个 agent 串成一条最小工作流也只要一行 builder:
# 示意,源自 python/samples/03-workflows/_start-here/step2_agents_in_a_workflow.pyfrom agent_framework import WorkflowBuilderworkflow = WorkflowBuilder(start_executor=writer_agent).add_edge(writer_agent, reviewer_agent).build()events = await workflow.run("Create a slogan for a new electric SUV.") -
一句话直觉/类比: 把它想成 agent 世界的主板 + 流水线控制器。单个 agent 是插在主板上的芯片;工作流引擎是流水线控制器,它不关心每颗芯片内部怎么算,只按「谁产出什么类型的数据 → 该送给谁」把料一节一节往下传,每传完一节存一次档。