马赛克 AI 同时支持简单和复杂的生成式 AI 应用,从检索扩充生成(RAG)聊天机器人到工具调用代理程序。 了解第一代 AI 应用和代理系统背后的关键概念,探索常见的设计模式,并掌握有关生成、评估和缩放 Gen AI 应用的教程。
了解第一代 AI 应用概念
熟悉基础第一代 AI 应用概念。
了解马赛克 AI 如何在第一代 AI 开发过程中应对关键挑战。
尝试使用 Mosaic AI 构建生成式 AI 应用程序
请从以下笔记本教程开始:
当你准备好挑战更复杂内容时,请查看高级指南和教程:
什么是生成式人工智能应用?
Gen AI 应用是一个应用程序,它使用生成 AI 模型(如 LLM、图像生成模型和文本转语音模型)创建新输出、自动化复杂任务或基于用户输入进行智能交互。 虽然第一代 AI 应用可以使用各种模型,但本指南侧重于 LLM 支持的应用程序。
虽然 LLM 支持的 GEN AI 应用可以采用不同的方式构建,但它们通常属于两种体系结构模式之一:
类型 1:一体化 LLM + 提示 | 类型 2(建议):代理系统 | |
---|---|---|
它是什么? | 具有精心设计的提示的单个 LLM。 | 多个交互组件(LLM 调用、检索器、API 调用)协调在一起 - 从简单的链到复杂的多代理系统。 |
示例用例 | 内容分类: 使用 LLM 将客户支持票证分类为预定义主题。 | 智能助手: 结合文档检索、多个 LLM 调用和外部 API 来研究、分析和生成全面的报告。 |
最适用于 | 简单、专注的任务、快速原型以及清晰明确的提示。 | 复杂的工作流、需要多种功能的任务,以及需要对前面的步骤进行反射的任务。 |
主要优点 | 更简单的实现、更快的开发和较低的作复杂性。 | 更可靠、更易于维护、更好地控制和灵活性、更易于测试和验证以及组件级优化。 |
局限性 | 不太灵活,更难优化,功能有限。 | 更复杂的实现、更多的初始设置和需要组件协调。 |
对于大多数企业用例,Databricks 建议使用 代理系统。 通过将系统分解为更小、定义完善的组件,开发人员可以更好地管理复杂性,同时保持企业应用程序所需的高级别控制和合规性。
马赛克 AI 具有适用于整体系统和代理系统的工具和功能,本文档的其余部分介绍如何构建这两种类型的 GEN AI 应用。
若要详细了解代理系统与整体模型背后的理论, 请参阅 Databricks 创始人的博客文章:
什么是代理系统?
代理系统是一个 AI 驱动的系统,可以自主感知、决定和采取行动,在环境中实现目标。 与仅在出现提示时生成输出的独立 LLM 不同,代理系统拥有一定程度的 代理。 基于现代 LLM 的代理系统使用 LLM 作为“大脑”,来解释上下文、推理下一步应该做什么,并进行 API 调用、信息检索和工具使用等操作以完成任务。
代理系统是具有 LLM 核心的系统。 该系统:
- 接收来自其他代理的用户请求或消息。
- 有关如何进行的理由:要提取哪些数据、要应用的逻辑、要调用的工具,或者是否需要从用户请求更多输入。
- 执行计划,并可能调用多个工具或委托给子代理。
- 返回答案或提示用户进行其他说明。
通过桥接常规智能(LLM的预训练能力)和数据智能(特定于企业的专业知识和数据API),代理系统能够启用高影响力的企业用例,例如高级客户服务流程、数据丰富的分析机器人,以及用于复杂操作任务的多代理调度。
代理系统可以做什么?
代理系统可以:
- 动态规划行动
- 将状态从一个步骤传递到下一步
- 在不持续人工干预的情况下根据新信息调整其策略
当被询问时,独立 LLM 可能会输出旅行行程,而代理系统可以通过利用工具和 API 自动检索客户信息并自主完成航班预订。 通过将 LLM 中的“常规智能”与“数据智能”(特定于域的数据或 API)相结合,代理系统可以处理单个静态模型难以解决的复杂企业用例。
代理是一个连续性;提供模型来控制系统行为的自由度越多,应用程序就越具有代理性。 在实践中,大多数生产系统仔细限制代理的自主性,以确保合规性和可预测性,例如,要求人工批准风险作。
常规智能与数据智能
- 一般智能: 是指 LLM 从广泛的多样文本预训练中固有掌握的知识。 这对于语言流畅性和一般推理非常有用。
- 数据智能: 指组织的特定于域的数据和 API。 这可能包括客户记录、产品信息、知识库或反映独特业务环境的文档。
代理系统将这两种观点混合在一起:它们从 LLM 的广泛、通用的知识开始,然后引入实时或特定于域的数据来回答详细问题或执行专用作。
代理系统示例
考虑客户与生成式 AI 代理之间的呼叫中心场景:
客户提出请求:“你能帮我退回最后一个订单吗?
- 原因和计划:鉴于查询的意图,代理“打算”:“查找用户最近的订单并检查我们的退货政策”。
- 查找信息 (数据智能):代理查询订单数据库以检索相关顺序并引用策略文档。
-
原因:代理检查该顺序是否适合返回窗口。
- 可选的人工介入: 代理核实其他规则:如果项目属于特定类别或超出正常退货时限,请转交给人工处理。
- 作:代理触发退货过程并生成发货标签。
- 原因:客服代表会生成对客户的响应。
AI 代理响应客户:“完成! 下面是发货标签...”
这些步骤在 人工 呼叫中心环境中是自然而然的。 在代理系统的上下文中,LLM在系统调用专用工具或数据源以补充细节时进行推理。
复杂性级别:从 LLM 到代理系统
生成 AI 系统时,可能会遇到多个级别的复杂性。
LLM (LLM + 提示)
- 独立运行的 LLM 根据从大量训练数据集中获得的知识来响应文本提示。
- 适用于简单查询或泛型查询,但通常与实际业务数据断开连接。
硬编码代理系统(“Chain”)
- 开发人员协调确定性的预定义步骤。 例如,RAG 应用程序始终可以从向量存储中检索,并将结果与用户提示组合在一起。
- 逻辑是固定的,LLM 不决定下一步调用的工具。
工具调用代理系统
- LLM 决定在运行时使用哪个工具以及何时使用它。
- 此方法支持有关要调用的工具(例如 CRM 数据库或 Slack 发布 API)的动态上下文感知决策。
多代理系统
- 多个专用代理,每个代理都有自己的函数或域。
- 协调器(有时是 AI 主管,有时基于规则)决定在每个步骤中调用哪个代理。
- 代理可以相互传递任务,同时保留整个聊天流。
在构建任何 LLM 驱动的应用程序时,从简单开始。 在真正需要代理行为时引入更复杂的代理行为,以提高灵活性或模型驱动的决策。 确定性链为定义完善的任务提供可预测的基于规则的流,而更多的代理方法则以额外的复杂性和潜在延迟为代价。
马赛克 AI 代理框架 与这些模式无关,因此,随着应用程序需求的增长,可以轻松开始简单并朝着更高级别的自动化和自主发展。
代理系统中的工具
在代理系统的上下文中,工具是 LLM 可以调用的单 交互函数 来完成定义完善的任务。 AI 模型通常为每个工具调用生成参数,该工具提供简单的输入输出交互。 工具端没有多回合记忆功能。
一些常见的工具类别包括:
-
检索或分析数据的工具
- 矢量检索工具: 查询矢量索引以查找最相关的文本区块。
- 结构化检索工具: 查询 Delta 表或使用 API 检索结构化信息。
- 网络搜索工具: 搜索互联网或内部网络语料库。
- 经典 ML 模型: 调用 ML 模型以执行分类或回归预测的工具,例如 scikit-learn 或 XGBoost 模型。
- Gen AI 模型: 执行专用生成的工具,例如代码或图像生成,并返回结果。
-
修改外部系统状态的工具
- API 调用工具: CRM 接口、内部服务或其他第三方集成用于“更新运输状态”等任务。
- 代码执行工具: 在沙盒中运行用户提供的(或在某些情况下,LLM 生成的)代码。
- Slack 或电子邮件集成: 发布消息或发送通知。
-
运行逻辑或执行特定任务的工具
- 代码执行程序工具: 在沙盒(如 Python 脚本)中运行用户提供的或 LLM 生成的代码。
若要了解有关马赛克 AI 代理工具的详细信息,请参阅 AI 代理工具。
工具的主要特征
代理系统中的工具:
- 执行单个明确的操作。
- 不要保留超出该调用的持续上下文。
- 允许代理系统访问 LLM 无法访问的外部数据或服务。
工具错误处理和安全
由于每个工具调用都是外部操作,例如调用 API,因此系统应正常处理故障,例如超时、处理格式不正确的响应或无效输入。 在生产中,限制允许的工具调用数,如果所有工具调用都失败,请进行回退响应,并应用防护措施以确保代理系统不会重复尝试相同的失败作。