代理框架提供两个主要类别的功能:
| Description | |
|---|---|
| 代理 | 使用 LLM 处理输入、调用 工具和MCP 服务器的单个代理,并生成响应。 支持 Azure OpenAI、OpenAI、Anthropic、Ollama 等。 |
| 流程 | 基于图形的工作流,将代理和函数连接到具有类型安全的路由、检查点和人机循环支持的多步骤任务。 |
该框架还提供基础构建基块,包括模型客户端(聊天完成和响应)、状态管理的代理会话、代理内存的上下文提供程序、用于截获代理作的中间件,以及用于工具集成的 MCP 客户端。 这些组件可让你灵活地构建交互式、可靠且安全的 AI 应用程序。
开始
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
AIAgent agent = new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.AsAIAgent(instructions: "You are a friendly assistant. Keep your answers brief.");
Console.WriteLine(await agent.RunAsync("What is the largest city in France?"));
pip install agent-framework --pre
credential = AzureCliCredential()
client = AzureOpenAIResponsesClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
deployment_name=os.environ["AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME"],
credential=credential,
)
agent = client.as_agent(
name="HelloAgent",
instructions="You are a friendly assistant. Keep your answers brief.",
)
# Non-streaming: get the complete response at once
result = await agent.run("What is the largest city in France?")
print(f"Agent: {result}")
就是这样, 一个调用 LLM 并返回响应的代理。 在这里,可以 添加工具、 多轮对话、 中间件和 工作流 来生成生产应用程序。
何时使用代理与工作流
| 使用代理时... | 使用工作流... |
|---|---|
| 任务是开放式或对话性质的 | 该过程具有定义完善的步骤 |
| 你需要自主工具的使用和计划 | 你需要显式控制执行顺序 |
| 单个 LLM 调用(可能配备工具)就足够了 | 多个代理或函数必须协调 |
如果可以编写函数来处理任务,请执行该作,而不是使用 AI 代理。
为什么使用代理框架?
代理框架将 AutoGen 的简单代理抽象与语义内核的企业功能(基于会话的状态管理、类型安全性、中间件、遥测)相结合,并为显式多代理业务流程添加基于图形的工作流。
语义内核 和 AutoGen 开创了 AI 代理和多代理业务流程的概念。 代理框架是由同一团队创建的直接继承者。 它将 AutoGen 针对单代理和多代理模式的简单抽象与语义内核的企业级功能相结合,例如会话基础上的状态管理、类型安全、筛选器、遥测以及广泛的模型和嵌入支持。 除了合并这两者之外,Agent Framework 还引入了工作流,使开发人员能够显式控制多代理执行路径,以及一个可靠的状态管理系统,用于长时间运行和人机循环方案。 简言之,Agent Framework 是语义内核和 AutoGen 的新一代产品。
若要详细了解如何从语义内核或 AutoGen 迁移,请参阅 语义内核的迁移指南 和 AutoGen 的迁移指南。
语义内核和 AutoGen 都受益于开源社区,并且代理框架预期也是如此。 Microsoft代理框架欢迎贡献,并将不断改进新功能。
注释
Microsoft Agent Framework 目前以公共预览版提供。 请在 GitHub 存储库上提交任何反馈或问题。
重要
如果使用 Microsoft Agent Framework 生成使用第三方服务器或代理运行的应用程序,则自行承担风险。 建议查看与第三方服务器或代理共享的所有数据,并识别第三方保留和位置数据的做法。 作为负责人,您需要管理贵组织的数据是否将超出其 Azure 合规性和地理界限,并承担任何相关的影响。
后续步骤
更深入: