语义内核代理框架

语义内核代理框架在语义内核生态系统中提供了一个平台,允许创建 AI 代理,并且能够基于核心语义内核框架中存在的相同模式和功能将 代理 模式合并到任何应用程序中。

什么是 AI 代理?

蓝色渐变用户图标代表 AI 代理 粉色渐变用户图标代表 AI 代理 橙色渐变用户图标代表 AI 代理 红粉色渐变用户图标代表 AI 代理

AI 代理是一个软件实体,旨在通过接收输入、处理信息并采取措施来实现特定目标,以自主或半自主地执行任务。

代理可以使用模型、工具、人工输入或其他可自定义组件的组合来发送和接收消息、生成响应。

代理旨在协作工作,通过相互交互实现复杂的工作流。 Agent Framework 允许创建简单和复杂的代理,增强模块化和易于维护

AI 代理可以解决哪些问题?

AI 代理为应用程序开发提供了多种优势,特别是启用模块化 AI 组件的创建,这些组件能够进行协作以减少对复杂任务的手动干预。 AI 代理可以自主或半自主运行,从而为一系列应用程序提供强大的工具。

其中部分主要优势如下:

  • 模块化组件:允许开发人员为特定任务(例如数据抓取、API 交互或自然语言处理)定义各种类型的代理。 这样,随着需求的发展或新技术的出现,可以更轻松地适应应用程序。

  • 协作:多个代理可以“协作”处理任务。 例如,一个代理可以处理数据收集,另一个代理可以对其进行分析,另一个代理使用结果做出决策,从而创建具有分布式智能的更复杂的系统。

  • 人机协作:人机在循环交互允许代理与人类一起工作,以增强决策过程。 例如,代理可能会准备数据分析,人类可以审查和微调,从而提高工作效率。

  • 进程业务流程:代理可以跨系统、工具和 API 协调不同的任务,帮助自动化端到端流程,例如应用程序部署、云业务流程,甚至创作和设计等创意流程。

何时使用 AI 代理?

使用代理框架进行应用程序开发可提供对某些类型的应用程序特别有利的优势。 虽然传统 AI 模型通常用作执行特定任务(例如分类、预测或识别)的工具,但代理在开发过程中引入了更多的自主性、灵活性和交互性。

  • 自主性和决策:如果应用程序需要能够做出独立决策并适应不断变化的条件(例如机器人系统、自动驾驶汽车、智能环境)的实体,则代理框架是可取的。

  • 多代理协作:如果应用程序涉及需要多个独立组件协同工作的复杂系统(例如供应链管理、分布式计算或群机器人),代理将提供用于协调和通信的内置机制。

  • 交互式和面向目标:如果应用程序涉及目标驱动行为(例如,自主完成任务或与用户交互以实现特定目标),则基于代理的框架是更好的选择。 示例包括虚拟助手、游戏 AI 和任务规划器。

如何安装语义内核代理框架?

安装 Agent Framework SDK 特定于与编程语言关联的分发通道。

对于 .NET SDK,可以使用多个 NuGet 包。

注释

除了任何代理包之外,还需要核心语义内核 SDK。

封装件 说明
Microsoft.SemanticKernel 这包含用于开始使用 Agent Framework的核心语义内核库。 你的应用必须显式地引用这一点。
Microsoft.SemanticKernel.Agents.Abstractions 定义 Agent Framework的核心代理抽象。 通常不需要指定,因为它包含在Microsoft.SemanticKernel.Agents.CoreMicrosoft.SemanticKernel.Agents.OpenAI两个包中。
Microsoft.SemanticKernel.Agents.Core 包括ChatCompletionAgent
Microsoft.SemanticKernel.Agents.OpenAI 提供通过 使用 OpenAIAssistantAgent 的功能。
Microsoft.SemanticKernel.Agents.Orchestration Agent Framework提供编排框架
模块 说明
semantic-kernel.agents 这是用于快速入门的Agent Framework语义内核库。 你的应用必须显式地引用这一点。 此模块包含ChatCompletionAgentOpenAIAssistantAgentAzureAIAgent、和OpenAIResponsesAgentagent orchestration类。
封装件 说明
semantickernel-agents-core 包括类 ChatCompletionAgent
语义内核-ai服务-OpenAI 其中包含用于开始使用 OpenAI 的 Agent Framework 语义内核服务库。
semantickernel-api 定义 Agent Framework的核心代理抽象。 通常不需要指定,因为它包含在上述两个中。

后续步骤