AI个人学习
和实操指南
资源推荐1

微软 AI Agent 入门课程:探索 AI Agent 框架

AI Agent 框架是旨在简化 AI Agent 的创建、部署和管理的软件平台。这些框架为开发者提供了预构建的组件、抽象和工具,从而简化复杂 AI 系统的开发过程。

这些框架通过为 AI Agent 开发中的常见挑战提供标准化方法,帮助开发者专注于其应用程序的独特方面。它们增强了构建 AI 系统的可扩展性、可访问性和效率。

简介

本课程将涵盖:

  • 什么是 AI Agent 框架,它们能让开发者做什么?
  • 团队如何使用这些框架来快速原型设计、迭代和改进 Agent 的能力?
  • Microsoft 创建的框架和工具 AutoGen、Semantic Kernel 和 Azure AI Agent 之间有什么区别?
  • 是否可以直接集成现有的 Azure 生态系统工具,还是需要独立的解决方案?
  • 什么是 Azure AI Agents 服务,它如何提供帮助?

 

学习目标

本课程的目标是帮助您理解:

  • AI Agent 框架在 AI 开发中的作用。
  • 如何利用 AI Agent 框架构建智能 Agent。
  • AI Agent 框架实现的关键功能。
  • AutoGen、Semantic Kernel 和 Azure AI Agent Service 之间的区别。

什么是 AI Agent 框架,它们能让开发者做什么?

传统的 AI 框架可以帮助您将 AI 集成到您的应用程序中,并通过以下方式使这些应用程序更好:

  • 个性化:AI 可以分析用户行为和偏好,以提供个性化的推荐、内容和体验。例如:像 Netflix 这样的流媒体服务使用 AI 根据观看历史推荐电影和节目,从而提高用户参与度和满意度。
  • 自动化和效率:AI 可以自动化重复性任务,简化工作流程,并提高运营效率。例如:客户服务应用程序使用 AI 驱动的聊天机器人处理常见查询,减少响应时间,并让人工座席处理更复杂的问题。
  • 增强的用户体验:AI 可以通过提供智能功能(如语音识别、自然语言处理和预测文本)来改善整体用户体验。例如:像 Siri 和 Google Assistant 这样的虚拟助手使用 AI 来理解和响应语音命令,使用户更容易与他们的设备进行交互。

这一切听起来都很棒,对吧?那么为什么我们需要 AI Agent 框架呢?

AI Agent 框架不仅仅是 AI 框架。它们旨在创建能够与用户、其他 Agent 和环境交互以实现特定目标的智能 Agent。这些 Agent 可以表现出自主行为、做出决策并适应不断变化的条件。让我们看看 AI Agent 框架实现的一些关键功能:

  • Agent 协作与协调:支持创建多个 AI Agent,这些 Agent 可以协同工作、通信和协调以解决复杂的任务。
  • 任务自动化和管理:提供自动化多步骤工作流程、任务委派和 Agent 之间动态任务管理的机制。
  • 上下文理解和适应:使 Agent 能够理解上下文、适应不断变化的环境,并根据实时信息做出决策。

总而言之,Agent 可以让您做更多的事情,将自动化提升到一个新的水平,创建更智能的系统,这些系统可以适应环境并从中学习。


 

如何快速原型设计、迭代和改进 Agent 的能力?

这是一个快速发展的领域,但大多数 AI Agent 框架都有一些共同点,可以帮助您快速原型设计和迭代,即模块化组件、协作工具和实时学习。让我们深入了解这些:

  • 使用模块化组件:AI 框架提供预构建的组件,如提示、解析器和内存管理。
  • 利用协作工具:设计具有特定角色和任务的 Agent,使他们能够测试和改进协作工作流程。
  • 实时学习:实现反馈循环,Agent 从交互中学习并动态调整其行为。

使用模块化组件

LangChain 和 Microsoft Semantic Kernel 等框架提供了预构建的组件,如提示、解析器和内存管理。

团队如何使用这些:团队可以快速组装这些组件来创建一个功能原型,而无需从头开始,从而实现快速实验和迭代。

它在实践中如何工作:您可以使用预构建的解析器从用户输入中提取信息,使用内存模块存储和检索数据,使用提示生成器与用户交互,所有这些都无需从头开始构建这些组件。

示例代码。让我们看一个如何使用预构建的解析器从用户输入中提取信息的示例:

// Semantic Kernel 示例
ChatHistory chatHistory = [];
chatHistory.AddUserMessage("I'd like to go To New York");
// 定义一个包含预订旅行功能的插件
public class BookTravelPlugin(
IPizzaService pizzaService,
IUserContext userContext,
IPaymentService paymentService)
{
[KernelFunction("book_flight")]
[Description("Book travel given location and date")]
public async Task<Booking> BookFlight(
DateTime date,
string location,
)
{
// 根据日期、地点预订旅行
}
}
IKernelBuilder kernelBuilder = new KernelBuilder();
kernelBuilder..AddAzureOpenAIChatCompletion(
deploymentName: "NAME_OF_YOUR_DEPLOYMENT",
apiKey: "YOUR_API_KEY",
endpoint: "YOUR_AZURE_ENDPOINT"
);
kernelBuilder.Plugins.AddFromType<BookTravelPlugin>("BookTravel");
Kernel kernel = kernelBuilder.Build();
/*
在后台,它识别要调用的工具、它已经具有的参数 (location) 和它需要的参数 (date)
{
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "BookTravelPlugin-book_flight",
"arguments": "{\n\"location\": \"New York\",\n\"date\": \"\"\n}"
}
}
]
*/
ChatResponse response = await chatCompletion.GetChatMessageContentAsync(
chatHistory,
executionSettings: openAIPromptExecutionSettings,
kernel: kernel)
Console.WriteLine(response);
chatHistory.AddAssistantMessage(response);
// AI 响应:"Before I can book your flight, I need to know your departure date. When are you planning to travel?"
// 也就是说,在前面的代码中,它找出了要调用的工具,它已经拥有的参数 (location) 以及它从用户输入中需要的参数 (date),此时它最终会向用户询问缺失的信息

从此示例中您可以看到如何利用预构建的解析器从用户输入中提取关键信息,例如航班预订请求的出发地、目的地和日期。这种模块化方法使您可以专注于高级逻辑。

利用协作工具

CrewAI 和 Microsoft AutoGen 等框架促进了多个可以协同工作的 Agent 的创建。

团队如何使用这些:团队可以设计具有特定角色和任务的 Agent,使他们能够测试和改进协作工作流程并提高整体系统效率。

它在实践中如何工作:您可以创建一个 Agent 团队,其中每个 Agent 都有一个专门的功能,例如数据检索、分析或决策。这些 Agent 可以通信和共享信息以实现共同目标,例如回答用户查询或完成任务。

示例代码 (AutoGen)

# 创建 Agent,然后创建一个循环调度,让他们可以协同工作,在本例中是按顺序
# 数据检索 Agent
# 数据分析 Agent
# 决策 Agent
agent_retrieve = AssistantAgent(
name="dataretrieval",
model_client=model_client,
tools=[retrieve_tool],
system_message="Use tools to solve tasks."
)
agent_analyze = AssistantAgent(
name="dataanalysis",
model_client=model_client,
tools=[analyze_tool],
system_message="Use tools to solve tasks."
)
# 当用户说 "APPROVE" 时,对话结束
termination = TextMentionTermination("APPROVE")
user_proxy = UserProxyAgent("user_proxy", input_func=input)
team = RoundRobinGroupChat([agent_retrieve, agent_analyze, user_proxy], termination_condition=termination)
stream = team.run_stream(task="Analyze data", max_turns=10)
# 在脚本中运行时使用 asyncio.run(...)。
await Console(stream)

您在前面的代码中看到的是如何创建一个涉及多个 Agent 协同工作以分析数据的任务。每个 Agent 执行特定的功能,并通过协调 Agent 来执行任务以实现所需的结果。通过创建具有专门角色的专用 Agent,您可以提高任务效率和性能。

实时学习

高级框架提供了实时上下文理解和适应的能力。

团队如何使用这些框架:团队可以实现反馈循环,使智能体 (Agents) 从交互中学习并动态调整其行为,从而实现能力的持续改进和完善。

实际应用:智能体 (Agents) 可以分析用户反馈、环境数据和任务结果,以更新其知识库,调整决策算法,并随着时间的推移提高性能。这种迭代学习过程使智能体 (Agents) 能够适应不断变化的条件和用户偏好,从而提高整体系统效率。

 

AutoGen、Semantic Kernel 和 Azure AI Agent Service 框架之间有什么区别?

有很多方法可以比较这些框架,但让我们从它们的设计、功能和目标用例等方面来看一些关键的区别:

AutoGen

由 Microsoft Research 的 AI Frontiers 实验室开发的开源框架。专注于事件驱动、分布式的 agentic 应用程序,支持多个大语言模型 (LLMs) 和 SLM、工具以及高级多智能体 (Multi-Agent) 设计模式。

AutoGen 的核心概念是智能体 (Agents),它们是能够感知环境、做出决策并采取行动以实现特定目标的自主实体。智能体 (Agents) 通过异步消息进行通信,允许它们独立并行工作,从而增强系统的可扩展性和响应能力。

智能体 (Agents) 基于 actor 模型。根据维基百科,actor 是 并发计算的基本构建块。在响应收到的消息时,actor 可以:做出本地决策、创建更多 actor、发送更多消息,并确定如何响应下一个收到的消息

用例:自动化代码生成、数据分析任务,以及构建用于规划和研究功能的自定义智能体 (Agents)。

以下是 AutoGen 的一些重要核心概念:

  • 智能体 (Agents)。智能体 (Agent) 是一个软件实体,它:
    • 通过消息进行通信,这些消息可以是同步的或异步的。
    • 维护自己的状态,该状态可以通过传入消息进行修改。
    • 执行操作 以响应收到的消息或其状态的变化。这些操作可能会修改智能体 (Agent) 的状态并产生外部影响,例如更新消息日志、发送新消息、执行代码或进行 API 调用。

    下面是一个简短的代码片段,您可以在其中创建具有聊天功能的智能体 (Agent):

    from autogen_agentchat.agents import AssistantAgent
    from autogen_agentchat.messages import TextMessage
    from autogen_ext.models.openai import OpenAIChatCompletionClient
    class MyAssistant(RoutedAgent):
    def __init__(self, name: str) -> None:
    super().__init__(name)
    model_client = OpenAIChatCompletionClient(model="gpt-4o")
    self._delegate = AssistantAgent(name, model_client=model_client)
        @message_handler
    async def handle_my_message_type(self, message: MyMessageType, ctx: MessageContext) -> None:
    print(f"{self.id.type} received message: {message.content}")
    response = await self._delegate.on_messages(
    [TextMessage(content=message.content, source="user")], ctx.cancellation_token
    )
    print(f"{self.id.type} responded: {response.chat_message.content}")
    

    在前面的代码中,MyAssistant 已被创建并继承自 RoutedAgent。它有一个消息处理程序,用于打印消息的内容,然后使用 AssistantAgent 委托发送响应。特别注意我们如何将 AssistantAgent 的实例分配给 self._delegateAssistantAgent 是一个可以处理聊天补全的预构建智能体 (Agent)。
    接下来,让 AutoGen 了解此智能体 (Agent) 类型并启动程序:

    # main.py
    runtime = SingleThreadedAgentRuntime()
    await MyAgent.register(runtime, "my_agent", lambda: MyAgent())
    runtime.start()  # Start processing messages in the background.
    await runtime.send_message(MyMessageType("Hello, World!"), AgentId("my_agent", "default"))
    

    在前面的代码中,智能体 (Agents) 已向运行时注册,然后向智能体 (Agent) 发送消息,从而产生以下输出:

    # Output from the console:
    my_agent received message: Hello, World!
    my_assistant received message: Hello, World!
    my_assistant responded: Hello! How can I assist you today?
    
  • 多智能体 (Multi Agents)。AutoGen 支持创建多个可以协同工作以完成复杂任务的智能体 (Agents)。智能体 (Agents) 可以通信、共享信息并协调其行动,从而更有效地解决问题。要创建多智能体 (Multi-Agent) 系统,您可以定义具有专门功能和角色的不同类型的智能体 (Agents),例如数据检索、分析、决策和用户交互。让我们看看这样的创建是什么样子的,以便我们了解它:
editor_description = "Editor for planning and reviewing the content."
# Example of declaring an Agent
editor_agent_type = await EditorAgent.register(
runtime,
editor_topic_type,  # Using topic type as the agent type.
lambda: EditorAgent(
description=editor_description,
group_chat_topic_type=group_chat_topic_type,
model_client=OpenAIChatCompletionClient(
model="gpt-4o-2024-08-06",
# api_key="YOUR_API_KEY",
),
),
)
# remaining declarations shortened for brevity
# Group chat
group_chat_manager_type = await GroupChatManager.register(
runtime,
"group_chat_manager",
lambda: GroupChatManager(
participant_topic_types=[writer_topic_type, illustrator_topic_type, editor_topic_type, user_topic_type],
model_client=OpenAIChatCompletionClient(
model="gpt-4o-2024-08-06",
# api_key="YOUR_API_KEY",
),
participant_descriptions=[
writer_description, 
illustrator_description, 
editor_description, 
user_description
],
),
)

在前面的代码中,我们有一个 GroupChatManager,它已向运行时注册。此管理器负责协调不同类型智能体 (Agents) 之间的交互,例如编写者、插图画家、编辑和用户。

  • 智能体运行时 (Agent Runtime)。该框架提供了一个运行时环境,支持智能体 (Agents) 之间的通信,管理它们的身份和生命周期,并强制执行安全和隐私边界。这意味着您可以在安全且受控的环境中运行您的智能体 (Agents),确保它们可以安全高效地交互。有两种值得关注的运行时:
    • 独立运行时 (Stand-alone runtime)。对于单进程应用程序来说,这是一个不错的选择,其中所有智能体 (Agents) 都以相同的编程语言实现并在同一进程中运行。下面是它如何工作的图示:
      Stand-alone runtime
      应用程序堆栈
      智能体 (Agents) 通过运行时通过消息进行通信,运行时管理智能体 (Agents) 的生命周期
    • 分布式智能体运行时 (Distributed agent runtime),适用于多进程应用程序,其中智能体 (Agents) 可以用不同的编程语言实现并在不同的机器上运行。下面是它如何工作的图示:
      Distributed runtime

Semantic Kernel + Agent Framework

Semantic Kernel 包含两个部分,Semantic Kernel Agent Framework 和 Semantic Kernel 本身。

让我们先谈谈 Semantic Kernel。它具有以下核心概念:

  • 连接 (Connections):这是与外部 AI 服务和数据源的接口。
using Microsoft.SemanticKernel;
// Create kernel
var builder = Kernel.CreateBuilder();
// Add a chat completion service:
builder.Services.AddAzureOpenAIChatCompletion(
"your-resource-name",
"your-endpoint",
"your-resource-key",
"deployment-model");
var kernel = builder.Build();

这里有一个简单的示例,说明如何创建内核并添加聊天补全服务。Semantic Kernel 创建与外部 AI 服务(在本例中为 Azure OpenAI 聊天补全)的连接。

  • 插件 (Plugins):封装应用程序可以使用的函数。既有现成的插件,也有您可以自己创建的插件。这里有一个名为“语义函数 (Semantic functions)”的概念。使其具有语义的原因是,您向其提供语义信息,以帮助 Semantic Kernel 确定需要调用此函数。下面是一个示例:
var userInput = Console.ReadLine();
// Define semantic function inline.
string skPrompt = @"Summarize the provided unstructured text in a sentence that is easy to understand.
Text to summarize: {{$userInput}}";
// Register the function
kernel.CreateSemanticFunction(
promptTemplate: skPrompt,
functionName: "SummarizeText",
pluginName: "SemanticFunctions"
);

在这里,您首先有一个模板提示 skPrompt,它为用户留出输入文本 $userInput 的空间。然后,您使用插件 SemanticFunctions 注册函数 SummarizeText。请注意函数的名称,该名称有助于 Semantic Kernel 了解函数的作用以及何时应调用它。

  • 本机函数 (Native function):还有本机函数,框架可以直接调用这些函数来执行任务。下面是此类函数从文件中检索内容的示例:
public class NativeFunctions {
[SKFunction, Description("Retrieve content from local file")]
public async Task<string> RetrieveLocalFile(string fileName, int maxSize = 5000)
{
string content = await File.ReadAllTextAsync(fileName);
if (content.Length <= maxSize) return content;
return content.Substring(0, maxSize);
}
}
//Import native function
string plugInName = "NativeFunction";
string functionName = "RetrieveLocalFile";
var nativeFunctions = new NativeFunctions();
kernel.ImportFunctions(nativeFunctions, plugInName);
  • 规划器 (Planner):规划器根据用户输入编排执行计划和策略。其思想是表达应该如何执行,然后将其作为 Semantic Kernel 遵循的指令。然后,它调用必要的函数来执行任务。下面是此类计划的示例:
string planDefinition = "Read content from a local file and summarize the content.";
SequentialPlanner sequentialPlanner = new SequentialPlanner(kernel);
string assetsFolder = @"../../assets";
string fileName = Path.Combine(assetsFolder,"docs","06_SemanticKernel", "aci_documentation.txt");
ContextVariables contextVariables = new ContextVariables();
contextVariables.Add("fileName", fileName);
var customPlan = await sequentialPlanner.CreatePlanAsync(planDefinition);
// Execute the plan
KernelResult kernelResult = await kernel.RunAsync(contextVariables, customPlan);
Console.WriteLine($"Summarization: {kernelResult.GetValue<string>()}");

特别注意 planDefinition,这是规划器遵循的简单指令。然后根据此计划调用适当的函数,在本例中是我们的语义函数 SummarizeText 和本机函数 RetrieveLocalFile

  • 内存 (Memory):抽象并简化 AI 应用程序的上下文管理。内存的思想是这是大语言模型 (LLM) 应该知道的东西。您可以将此信息存储在向量存储中,最终成为内存数据库或向量数据库或类似的东西。下面是一个非常简化的场景示例,其中 事实 (facts) 被添加到内存中:
var facts = new Dictionary<string,string>();
facts.Add(
"Azure Machine Learning; https://learn.microsoft.com/azure/machine-learning/",
@"Azure Machine Learning is a cloud service for accelerating and
managing the machine learning project lifecycle. Machine learning professionals,
data scientists, and engineers can use it in their day-to-day workflows"
);
facts.Add(
"Azure SQL Service; https://learn.microsoft.com/azure/azure-sql/",
@"Azure SQL is a family of managed, secure, and intelligent products
that use the SQL Server database engine in the Azure cloud."
);
string memoryCollectionName = "SummarizedAzureDocs";
foreach (var fact in facts) {
await memoryBuilder.SaveReferenceAsync(
collection: memoryCollectionName,
description: fact.Key.Split(";")[1].Trim(),
text: fact.Value,
externalId: fact.Key.Split(";")[2].Trim(),
externalSourceName: "Azure Documentation"
);
}

然后,这些事实 (facts) 存储在内存集合 SummarizedAzureDocs 中。这是一个非常简化的示例,但您可以看到如何将信息存储在内存中以供大语言模型 (LLM) 使用。

这就是 Semantic Kernel 框架的基础知识,那么 Agent Framework 呢?

 

Azure AI Agent Service

Azure AI Agent Service 是一个较新的成员,在 Microsoft Ignite 2024 上推出。它允许开发和部署具有更灵活模型的 AI 智能体 (Agents),例如直接调用开源大语言模型 (LLMs),如 Llama 3、Mistral 和 Cohere。

Azure AI Agent Service 提供了更强大的企业安全机制和数据存储方法,使其适用于企业应用程序。

它可以与 AutoGen 和 Semantic Kernel 等多智能体 (Multi-Agent) 编排框架开箱即用。

此服务目前处于公开预览阶段,支持 Python 和 C# 来构建智能体 (Agents)

核心概念

Azure AI Agent Service 具有以下核心概念:

  • 智能体 (Agent)。Azure AI Agent Service 与 Azure AI Foundry 集成。在 AI Foundry 中,AI 智能体 (Agent) 充当“智能”微服务,可用于回答问题 (RAG)、执行操作或完全自动化工作流程。它通过将生成式 AI 模型的功能与允许其访问和与真实世界数据源交互的工具相结合来实现这一点。下面是一个智能体 (Agent) 的示例:
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)

在此示例中,创建了一个具有模型 gpt-4o-mini、名称 my-agent 和指令 You are helpful agent 的智能体 (Agent)。该智能体 (Agent) 配备了工具和资源来执行代码解释任务。

  • 线程和消息 (Thread and messages)。线程是另一个重要的概念。它表示智能体 (Agent) 和用户之间的对话或交互。线程可用于跟踪对话进度、存储上下文信息以及管理交互状态。下面是一个线程的示例:
thread = project_client.agents.create_thread()
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
)
# Ask the agent to perform work on the thread
run = project_client.agents.create_and_process_run(thread_id=thread.id, agent_id=agent.id)
# Fetch and log all messages to see the agent's response
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")

在前面的代码中,创建了一个线程。此后,向线程发送一条消息。通过调用 create_and_process_run,要求智能体 (Agent) 在线程上执行工作。最后,获取并记录消息以查看智能体 (Agent) 的响应。消息指示用户和智能体 (Agent) 之间对话的进度。同样重要的是要理解,消息可以是不同的类型,例如文本、图像或文件,即智能体 (Agents) 的工作导致了例如图像或文本响应。作为开发人员,您可以使用此信息来进一步处理响应或将其呈现给用户。

  • 与其他 AI 框架集成。Azure AI Agent Service 可以与其他框架(如 AutoGen 和 Semantic Kernel)进行交互,这意味着您可以在其中一个框架中构建应用程序的一部分,例如将 Agent Service 用作编排器,或者您可以在 Agent Service 中构建所有内容。

用例:Azure AI Agent Service 专为需要安全、可扩展和灵活的 AI 智能体 (Agent) 部署的企业应用程序而设计。

 

这些框架之间有什么区别?

听起来这些框架之间有很多重叠,但在它们的设计、功能和目标用例方面存在一些关键差异:

  • AutoGen:专注于事件驱动、分布式的 agentic 应用程序,支持多个大语言模型 (LLMs) 和 SLM、工具以及高级多智能体 (Multi-Agent) 设计模式。
  • Semantic Kernel:专注于通过捕获更深层次的语义含义来理解和生成类似人类的文本内容。它旨在自动化复杂的工作流程并根据项目目标启动任务。
  • Azure AI Agent Service:提供更灵活的模型,例如直接调用开源大语言模型 (LLMs),如 Llama 3、Mistral 和 Cohere。它提供更强大的企业安全机制和数据存储方法,使其适用于企业应用程序。

仍然不确定选择哪一个?

用例

让我们通过一些常见的用例来看看我们是否可以帮助您:

问:我的团队正在开发一个涉及自动化代码生成和数据分析任务的项目。我们应该使用哪个框架?

答:AutoGen 在这种情况下是一个不错的选择,因为它专注于事件驱动、分布式的 agentic 应用程序,并支持高级多智能体 (Multi-Agent) 设计模式。

问:对于此用例,是什么让 AutoGen 比 Semantic Kernel 和 Azure AI Agent Service 更好?

答:AutoGen 专为事件驱动、分布式的 agentic 应用程序而设计,使其非常适合自动化代码生成和数据分析任务。它提供了高效构建复杂多智能体 (Multi-Agent) 系统所需的工具和功能。

问:听起来 Azure AI Agent Service 在这里也可以工作,它有代码生成等工具?

答:是的,Azure AI Agent Service 也支持代码生成和数据分析任务,但它可能更适合需要安全、可扩展和灵活的 AI 智能体 (Agent) 部署的企业应用程序。AutoGen 更专注于事件驱动、分布式的 agentic 应用程序和高级多智能体 (Multi-Agent) 设计模式。

问:所以你是说如果我想进入企业级,我应该选择 Azure AI Agent Service?

答:是的,Azure AI Agent Service 专为需要安全、可扩展和灵活的 AI 智能体 (Agent) 部署的企业应用程序而设计。它提供更强大的企业安全机制和数据存储方法,使其适用于企业用例。

让我们在表格中总结一下关键区别:

框架 重点 核心概念 用例
AutoGen 事件驱动、分布式的 agentic 应用程序 智能体 (Agents)、角色 (Personas)、函数 (Functions)、数据 (Data) 代码生成、数据分析任务
Semantic Kernel 理解和生成类人文本内容 智能体 (Agents)、模块化组件 (Modular Components)、协作 (Collaboration) 自然语言理解、内容生成
Azure AI Agent Service 灵活的模型、企业安全性、代码生成、工具调用 (Tool calling) 模块化 (Modularity)、协作 (Collaboration)、流程编排 (Process Orchestration) 安全、可扩展和灵活的 AI 智能体 (Agent) 部署

这些框架中每一个的理想用例是什么?

  • AutoGen:事件驱动、分布式的 agentic 应用程序,高级多智能体 (Multi-Agent) 设计模式。非常适合自动化代码生成、数据分析任务。
  • Semantic Kernel:理解和生成类人文本内容,自动化复杂的工作流程,根据项目目标启动任务。非常适合自然语言理解、内容生成。
  • Azure AI Agent Service:灵活的模型、企业安全机制、数据存储方法。非常适合在企业应用程序中进行安全、可扩展和灵活的 AI 智能体 (Agent) 部署。

 

我可以直接集成我现有的 Azure 生态系统工具,还是需要独立的解决方案?

答案是肯定的,您可以直接将现有的 Azure 生态系统工具与 Azure AI Agent Service 集成,特别是因为它旨在与其他 Azure 服务无缝协作。例如,您可以集成 Bing、Azure AI 搜索和 Azure Functions。还与 Azure AI Foundry 进行了深度集成。

对于 AutoGen 和 Semantic Kernel,您也可以与 Azure 服务集成,但这可能需要您从代码中调用 Azure 服务。另一种集成方法是使用 Azure SDK 从您的智能体 (Agents) 与 Azure 服务进行交互。此外,如前所述,您可以使用 Azure AI Agent Service 作为在 AutoGen 或 Semantic Kernel 中构建的智能体 (Agents) 的编排器,这将使您可以轻松访问 Azure 生态系统。

内容2
未经允许不得转载:首席AI分享圈 » 微软 AI Agent 入门课程:探索 AI Agent 框架

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文