AI 智能体框架是专为简化 AI 智能体的创建、部署和管理而设计的软件平台。这些框架为开发者提供预构建的组件、抽象层和工具,从而简化复杂 AI 系统的开发流程。
这些框架通过为 AI 智能体开发中的常见挑战提供标准化方法,帮助开发者专注于其应用程序的独特之处。它们增强了构建 AI 系统的可扩展性、易用性和效率。
简介
本课程将涵盖:
- 什么是 AI 智能体框架,它们能帮助开发者实现什么?
- 团队如何使用这些框架快速进行原型设计、迭代并提升智能体的能力?
- 微软创建的框架和工具(Azure AI Agent 服务和 Microsoft Agent Framework)之间有什么区别?
- 我可以直接集成现有的 Azure 生态系统工具,还是需要独立的解决方案?
- 什么是 Azure AI Agents 服务,它对我有什么帮助?
学习目标
本课程旨在帮助您了解:
- AI 智能体框架在 AI 开发中的作用。
- 如何利用 AI 智能体框架构建智能体。
- AI 智能体框架启用的核心能力。
- Microsoft Agent Framework 与 Azure AI Agent 服务之间的区别。
什么是 AI 智能体框架,它们能让开发者做什么?
传统的 AI 框架可以帮助您将 AI 集成到应用程序中,并通过以下方式使这些应用变得更好:
- 个性化:AI 可以分析用户行为和偏好,以提供个性化的推荐、内容和体验。示例:Netflix 等流媒体服务利用 AI 根据观看历史推荐电影和节目,从而提高用户的参与度和满意度。
- 自动化与效率:AI 可以自动化重复性任务,简化工作流程并提高运营效率。示例:客户服务应用使用 AI 驱动的聊天机器人来处理常见查询,从而缩短响应时间,并让客服人员腾出时间处理更复杂的问题。
- 增强用户体验:AI 可以通过提供语音识别、自然语言处理和预测性文本等智能功能来改善整体用户体验。示例:Siri 和 Google Assistant 等虚拟助手使用 AI 来理解和响应语音命令,使用户更容易与设备交互。
这些听起来都很棒,那么为什么我们还需要 AI 智能体框架呢?
AI 智能体框架代表了超越普通 AI 框架的东西。它们旨在实现智能体的创建,这些智能体可以与用户、其他智能体和环境互动以实现特定目标。这些智能体可以表现出自主行为、做出决策并适应不断变化的条件。让我们看看 AI 智能体框架启用的一些核心能力:
- 智能体协作与协同:允许创建多个 AI 智能体,它们可以一起工作、通信和协调以解决复杂的任务。
- 任务自动化与管理:提供自动化多步工作流、任务委派以及智能体间动态任务管理的机制。
- 上下文理解与自适应:赋予智能体理解语境、适应不断变化的环境并根据实时信息做出决策的能力。
简而言之,智能体允许您做更多的事情,将自动化提升到一个新水平,创建能够适应其环境并从中学习的更智能的系统。
如何快速进行原型设计、迭代并提升智能体的能力?
这是一个快速发展的领域,但在大多数 AI 智能体框架中都有一些共通之处可以帮助您快速进行原型设计和迭代,即:模块化组件、协作工具和实时学习。让我们深入了解一下:
- 使用模块化组件:AI SDK 提供预构建的组件,例如 AI 和记忆连接器、使用自然语言或代码插件的函数调用、提示词模板等。
- 利用协作工具:设计具有特定角色和任务的智能体,使它们能够测试和完善协作工作流。
- 实时学习:实现反馈循环,让智能体从交互中学习并动态调整其行为。
使用模块化组件
像 Microsoft Agent Framework 这样的 SDK 提供了预构建的组件,例如 AI 连接器、工具定义和智能体管理。
- 团队如何使用这些组件:团队可以快速组装这些组件来创建一个功能原型,而无需从头开始,从而实现快速实验和迭代。
- 实际应用:您可以使用预构建的解析器从用户输入中提取信息,使用记忆模块存储和检索数据,使用提示词生成器与用户交互,所有这些都不需要您从零开始构建。
代码示例。让我们看一个示例,了解如何将 Microsoft Agent Framework 与 AzureAIProjectAgentProvider 结合使用,让模型通过调用工具来响应用户输入:
Python
# Microsoft Agent Framework Python 示例
import asyncio
import os
from typing import Annotated
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential
# 定义一个模拟预订旅行的工具函数
def book_flight(date: str, location: str) -> str:
"""给定地点和日期预订旅行。"""
return f"已预订 {date} 前往 {location} 的旅行"
async def main():
provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
agent = await provider.create_agent(
name="travel_agent",
instructions="帮助用户预订旅行。准备好后使用 book_flight 工具。",
tools=[book_flight],
)
response = await agent.run("我想在2025年1月1日去纽约")
print(response)
# 示例输出: 您在 2025 年 1 月 1 日飞往纽约的航班已成功预订。旅途平安!✈️🗽
if __name__ == "__main__":
asyncio.run(main())
# Microsoft Agent Framework Python Example
import asyncio
import os
from typing import Annotated
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential
# Define a sample tool function to book travel
def book_flight(date: str, location: str) -> str:
"""Book travel given location and date."""
return f"Travel was booked to {location} on {date}"
async def main():
provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
agent = await provider.create_agent(
name="travel_agent",
instructions="Help the user book travel. Use the book_flight tool when ready.",
tools=[book_flight],
)
response = await agent.run("I'd like to go to New York on January 1, 2025")
print(response)
# Example output: Your flight to New York on January 1, 2025, has been successfully booked. Safe travels! ✈️🗽
if __name__ == "__main__":
asyncio.run(main())
从这个示例中您可以看到,如何利用预构建的解析器从用户输入中提取关键信息(例如机票预订请求中的出发地、目的地和日期)。这种模块化方法让您能够专注于高层级逻辑。
利用协作工具
像 Microsoft Agent Framework 这样的框架有助于创建协同工作的多个智能体。
团队如何使用这些工具:团队可以设计具有特定角色和任务的智能体,从而测试和完善协作工作流并提高系统的整体效率。
实际应用:您可以创建一个智能体团队,其中每个智能体都有一项专门的功能,例如数据检索、分析或决策。这些智能体可以交流并共享信息以实现共同的目标,例如回答用户的查询或完成一项任务。
代码示例 (Microsoft Agent Framework):
Python
# 使用 Microsoft Agent Framework 创建协同工作的多个智能体
import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential
provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
# 数据检索智能体
agent_retrieve = await provider.create_agent(
name="dataretrieval",
instructions="使用可用工具检索相关数据。",
tools=[retrieve_tool],
)
# 数据分析智能体
agent_analyze = await provider.create_agent(
name="dataanalysis",
instructions="分析检索到的数据并提供见解。",
tools=[analyze_tool],
)
# 按顺序运行智能体执行任务
retrieval_result = await agent_retrieve.run("检索第四季度的销售数据")
analysis_result = await agent_analyze.run(f"分析此数据:{retrieval_result}")
print(analysis_result)
# Creating multiple agents that work together using the Microsoft Agent Framework
import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential
provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
# Data Retrieval Agent
agent_retrieve = await provider.create_agent(
name="dataretrieval",
instructions="Retrieve relevant data using available tools.",
tools=[retrieve_tool],
)
# Data Analysis Agent
agent_analyze = await provider.create_agent(
name="dataanalysis",
instructions="Analyze the retrieved data and provide insights.",
tools=[analyze_tool],
)
# Run agents in sequence on a task
retrieval_result = await agent_retrieve.run("Retrieve sales data for Q4")
analysis_result = await agent_analyze.run(f"Analyze this data: {retrieval_result}")
print(analysis_result)
在前面的代码中,您可以看到如何创建一个需要多个智能体协作分析数据的任务。每个智能体执行一个特定功能,通过协调智能体来实现预期的结果。通过创建具有专业角色的专用智能体,您可以提高任务效率和性能。
实时学习
高级框架提供实时上下文理解和自适应能力。
团队如何使用这些能力:团队可以实施反馈循环,让智能体从交互中学习并动态调整行为,从而实现能力的持续改进和完善。
实际应用:智能体可以分析用户反馈、环境数据和任务结果,以更新其知识库、调整决策算法并随着时间的推移提高性能。这种迭代学习过程使智能体能够适应不断变化的条件和用户偏好,从而增强系统的整体有效性。
Microsoft Agent Framework 和 Azure AI Agent 服务之间有什么区别?
有很多方法可以比较这些方法,但让我们从设计、功能和目标用例方面来看一些关键差异:
Microsoft Agent Framework (MAF)
Microsoft Agent Framework 提供了一个精简的 SDK,用于使用 AzureAIProjectAgentProvider 构建 AI 智能体。它使开发者能够创建利用 Azure OpenAI 模型的智能体,具备内置工具调用、对话管理功能,并通过 Azure 身份验证提供企业级安全性。
适用场景:构建具有工具使用、多步工作流和企业集成场景的生产就绪型 AI 智能体。
以下是 Microsoft Agent Framework 的一些重要核心概念:
智能体 (Agents)。智能体通过 AzureAIProjectAgentProvider 创建,并配置名称、指令和工具。智能体可以:
- 处理用户消息并使用 Azure OpenAI 模型生成响应。
- 根据对话上下文自动调用工具。
- 在多次交互中保持对话状态。
以下是创建智能体的代码片段:
Python
import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential
provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())
agent = await provider.create_agent(
name="my_agent",
instructions="你是一个有用的助手。",
)
response = await agent.run("Hello, World!")
print(response)
工具 (Tools)。该框架支持将工具定义为 Python 函数,智能体可以自动调用这些函数。
在创建智能体时注册工具:
Python
。您可以创建具有不同专长的多个智能体并协调它们的工作:
Python
planner = await provider.create_agent(
name="planner",
instructions="将复杂任务分解为多个步骤。",
)
executor = await provider.create_agent(
name="executor",
instructions="使用可用工具执行计划的步骤。",
tools=[execute_tool],
)
plan = await planner.run("制定去巴黎的旅行计划")
result = await executor.run(f"执行此计划:{plan}")
Azure 身份集成。该框架使用 AzureCliCredential(或 DefaultAzureCredential)进行安全、无密钥的身份验证,从而无需直接管理 API 密钥。
Azure AI Agent 服务
Azure AI Agent 服务是最近新增的功能,在 Microsoft Ignite 2024 上推出。它允许使用更灵活的模型开发和部署 AI 智能体,例如直接调用 Llama 3、Mistral 和 Cohere 等开源大语言模型。
- Azure AI Agent 服务提供更强的企业安全机制和数据存储方法,使其非常适合企业应用程序。
- 它开箱即用,可与 Microsoft Agent Framework 配合用于构建和部署智能体。
- 此服务目前处于公共预览阶段,支持使用 Python 和 C# 构建智能体。
使用 Azure AI Agent Service Python SDK,我们可以使用用户定义的工具创建一个智能体:
Python
import asyncio
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
# 定义工具函数
def get_specials() -> str:
"""提供菜单中的特色菜列表。"""
return """
特色汤:蛤蜊浓汤
特色沙拉:科布沙拉
特色饮品:印度奶茶
"""
def get_item_price(menu_item: str) -> str:
"""提供所请求的菜单项的价格。"""
return "$9.99"
async def main() -> None:
credential = DefaultAzureCredential()
project_client = AIProjectClient.from_connection_string(
credential=credential,
conn_str="你的连接字符串",
)
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="Host",
instructions="回答关于菜单的问题。",
tools=[get_specials, get_item_price],
)
thread = project_client.agents.create_thread()
user_inputs = [
"你好",
"特色汤是什么?",
"那个多少钱?",
"谢谢"
]
for user_input in user_inputs:
print(f"# 用户: '{user_input}'")
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content=user_input,
)
run = project_client.agents.create_and_process_run(
thread_id=thread.id, agent_id=agent.id
)
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"# 智能体: {messages.data[0].content[0].text.value}")
if __name__ == "__main__":
asyncio.run(main())
核心概念
Azure AI Agent 服务具有以下核心概念:
智能体 (Agent)。Azure AI Agent 服务与 Microsoft Foundry 集成。在 AI Foundry 中,AI 智能体充当“智能”微服务,可用于回答问题 (RAG)、执行操作或完全自动化工作流。它通过结合生成式 AI 模型的力量与允许其访问真实世界数据源并与之交互的工具来实现这一点。以下是智能体的一个示例:
Python
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="my-agent",
instructions="你是一个有用的智能体",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
在此示例中,创建了一个使用 gpt-4o-mini 模型、名称为 my-agent、指令为 你是一个有用的智能体 的智能体。该智能体配备了执行代码解释任务的工具和资源。
- 线程和消息 (Thread and messages)。线程是另一个重要概念。它代表智能体与用户之间的对话或交互。线程可用于跟踪对话进度、存储上下文信息并管理交互状态。以下是线程的一个示例:
Python
thread = project_client.agents.create_thread()
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="你能根据以下数据创建一个营业利润的条形图,并把文件发给我吗?公司A:120万美元,公司B:250万美元,公司C:300万美元,公司D:180万美元",
)
# 要求智能体在线程上执行工作
run = project_client.agents.create_and_process_run(thread_id=thread.id, agent_id=agent.id)
# 获取并记录所有消息以查看智能体的响应
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"消息: {messages}")
在前面的代码中,创建了一个线程。此后,向线程发送了一条消息。通过调用 create_and_process_run,要求智能体在线程上执行工作。最后,获取并记录消息以查看智能体的响应。消息指示用户与智能体之间对话的进度。同样重要的是要了解消息可以是不同类型的,例如文本、图像或文件,即智能体的工作产生了例如图像或文本响应。作为开发者,您可以利用这些信息进一步处理响应或将其呈现给用户。
- 与 Microsoft Agent Framework 集成。Azure AI Agent 服务与 Microsoft Agent Framework 无缝协作,这意味着您可以使用 AzureAIProjectAgentProvider 构建智能体,并通过 Agent 服务部署它们以用于生产场景。
- 适用场景:Azure AI Agent 服务专为需要安全、可扩展且灵活部署 AI 智能体的企业应用程序而设计。
这些方法之间有什么区别?
听起来确实有重叠之处,但在设计、功能和目标用例方面有一些关键区别:
- Microsoft Agent Framework (MAF):是一个用于构建 AI 智能体的生产就绪型 SDK。它提供了一个精简的 API,用于创建具有工具调用、对话管理和 Azure 身份集成功能的智能体。
- Azure AI Agent 服务:是 Azure Foundry 中用于智能体的平台和部署服务。它提供与 Azure OpenAI、Azure AI Search、Bing 搜索和代码执行等服务的内置连接。
仍然不确定选择哪一个?
适用场景
让我们看看能否通过探讨一些常见用例来帮助您:
问:我正在构建生产级 AI 智能体应用程序,希望快速入门。
- 答:Microsoft Agent Framework 是一个很好的选择。它通过 AzureAIProjectAgentProvider 提供了一个简单的、Python 风格的 API,让您只需几行代码即可使用工具和指令定义智能体。
问:我需要企业级部署,并具有 Azure 搜索和代码执行等集成功能。
- 答:Azure AI Agent 服务是最合适的。它是一个平台服务,提供支持多模型、Azure AI Search、Bing 搜索和 Azure Functions 的内置功能。它可以让您轻松地在 Foundry 门户中构建智能体并进行大规模部署。
问:我还是有点困惑,请直接给我一个选择。
- 答:首先使用 Microsoft Agent Framework 构建您的智能体,然后在需要于生产环境中部署和扩展它们时,使用 Azure AI Agent 服务。这种方法让您能够快速迭代智能体逻辑,同时拥有一条清晰的企业部署路径。
让我们在表格中总结关键差异:
框架 核心重点 核心概念 适用场景
Microsoft Agent Framework 精简的智能体 SDK,支持工具调用 智能体、工具、Azure 身份 构建 AI 智能体、工具使用、多步工作流
Azure AI Agent Service 灵活的模型、企业级安全、代码生成、工具调用 模块化、协作、流程编排 安全、可扩展且灵活的 AI 智能体部署
我可以直接集成现有的 Azure 生态系统工具,还是需要独立的解决方案?
答案是肯定的,您可以将现有的 Azure 生态系统工具直接与 Azure AI Agent 服务集成,特别是因为它在构建时就旨在与其他 Azure 服务无缝协作。例如,您可以集成 Bing、Azure AI Search 和 Azure Functions。它还与 Microsoft Foundry 深度集成。
Microsoft Agent Framework 也通过 AzureAIProjectAgentProvider 和 Azure 身份验证与 Azure 服务集成,允许您直接从智能体工具中调用 Azure 服务。
你可能也喜欢
- ♥ 探索微软智能代理框架12/26
- ♥ AI 智能体与智能体用例简介03/06
- ♥ 工具使用设计模式01/19
- ♥ AI 智能体协议:MCP, A2A 与 NLWeb09/18
- ♥ 构建值得信赖的 AI 智能体04/19
- ♥ 智能体的上下文工程09/06

