如何利用Microsoft Agent Framework开发AI美女聊天群组?
摘要:前言 在AI快速发展的今天,微软推出了多个AI开发框架,从早期的AutoGen到Semantic Kernel,再到最新的Microsoft Agent Framework。很多开发者可能会有疑问:为什么微软要推出这么多框架?它们之间有什么
前言
在AI快速发展的今天,微软推出了多个AI开发框架,从早期的AutoGen到Semantic Kernel,再到最新的Microsoft Agent Framework。很多开发者可能会有疑问:为什么微软要推出这么多框架?它们之间有什么区别?本文将通过一个实际的AI美女聊天群组项目,带你深入理解Microsoft Agent Framework,掌握多智能体开发的核心概念。
本文的示例代码已开源:agent-framework-tutorial-code/agent-groupchat
视频演示
为什么微软要推出Microsoft Agent Framework?
AutoGen vs Semantic Kernel vs Agent Framework
在讲解新框架之前,我们先理解一下微软AI框架的演进路径:
AutoGen(研究导向)
最早期的多智能体研究框架
侧重学术研究和实验性功能
Python为主,生态相对独立
Semantic Kernel(应用导向)
面向生产环境的AI应用开发框架
强大的插件系统和内存管理
多语言支持(C#、Python、Java)
适合单一智能体应用
Microsoft Agent Framework(企业导向)
专为多智能体协作设计
内置工作流编排能力(Sequential、Concurrent、Handoff、GroupChat)
支持Handoff转移模式和GroupChat管理模式
与Azure AI Foundry深度集成
同时支持.NET和Python
Agent Framework的核心优势
原生多智能体支持:无需手动管理智能体间的通信,框架自动处理消息路由
声明式工作流:通过AgentWorkflowBuilder构建复杂协作场景
内置编排模式:
Handoff模式:智能体通过function calling实现控制权转移
GroupChat模式:通过GroupChatManager选择下一个发言智能体(支持RoundRobin、Prompt-based等策略)
状态管理:支持checkpoint存储,可恢复中断的工作流
大模型基础知识科普
在使用框架之前,我们需要理解大模型的工作原理。很多开发者对大模型有神秘感,其实它本质上就是一个HTTP API调用。
LLM API的本质
让我们用curl演示一个最简单的OpenAI API调用:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "你好,请介绍一下自己"
}
]
}'
响应结果:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4o-mini",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我是一个AI助手,可以回答问题、提供建议..."
},
"finish_reason": "stop"
}]
}
关键点:
LLM就是一个普通的HTTP接口
输入:对话历史(messages数组)
输出:AI生成的回复(content字段)
所有复杂的Agent功能都是框架基于这个简单API构建的
函数调用(Function Calling)
函数调用是让LLM能够操作外部工具的关键机制。
