你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:Azure 逻辑应用(标准)
重要
此功能为预览版,受 Microsoft Azure 预览版补充使用条款限制。
如果你的方案需要支持自然语言的工作流并使用连接到大型语言模型(LLM)的代理做出决策和完成任务,而无需人工交互,请在 Azure 逻辑应用中创建 自治 代理工作流。 此工作流类型是对于需要代理在无人工干预下工作、可能需要长时间运行,并需要更强大的治理、隔离以及自动回滚或补偿策略的情境的最佳选择。
所有代理工作流都使用连接到 LLM 的代理执行任务。 代理使用迭代循环过程来解决复杂的多步骤问题。 LLM 是一个经过训练的程序,可识别模式并执行作业,而无需人工交互。 通过代理工作流,可以将代理的决策逻辑(包括 LLM、提示和业务流程)与集成和任务执行组件分开。
连接到模型时,代理提供以下功能和优势:
- 接受有关代理的角色、如何操作以及如何响应的说明。
- 接收和响应请求或 提示。
- 根据可用信息处理输入、分析数据并做出选择。
- 选择用于完成完成请求所需的任务的工具。 工具是一个序列,包含一个或多个动作以完成任务。
- 适应需要灵活性且本身多变、动态、不可预测或不稳定的环境。
拥有 1,400 多个连接器,提供可用于创建代理使用工具的操作,自主代理工作流支持广泛的场景,这些场景可以大大受益于 AI 的功能。
以下屏幕截图显示了在本指南中创建的示例自治代理工作流。 工作流使用代理获取天气预报,并在电子邮件中发送该预测。 此图显示了代理信息面板,在这里您可以设置代理并提供无需人工交互的说明,以便代理能够遵循这些指示。
有关描述代理工作原理的高级步骤以及有关代理工作流的更多概述信息,请参阅 Azure 逻辑应用中的 AI 代理工作流。
本指南演示如何使用 自治代理 类型创建标准逻辑应用工作流,该工作流无需人工交互或输入即可工作,以及如何更新现有有状态工作流以包含代理。 为了满足请求,代理使用生成的工具来完成实际服务和系统中的必要任务。
先决条件
一个 Azure 帐户和订阅。 如果没有订阅,可以注册免费的 Azure 帐户。
新的或现有的标准逻辑应用资源或项目。 可以在任一开发环境中工作:
Azure 门户:标准逻辑应用资源。
如果没有此资源,请参阅 Azure 门户中的“创建标准”示例工作流。
Visual Studio Code:标准逻辑应用项目。
确保具有 适用于 Visual Studio Code 的最新 Azure 逻辑应用(标准)扩展。 如果没有此项目,请参阅 Visual Studio Code 中的“创建标准”工作流。
本指南中的示例使用 Azure 门户。 但是,打开工作流设计器后,使用设计器的步骤在门户和 Visual Studio Code 之间大致相似。 某些交互存在细微差异。
对于模型源,需要以下源之一:
模型源 Description 已部署 Azure OpenAI 服务模型的 Azure OpenAI 服务资源 在工作流中通过智能体创建与 Azure OpenAI 服务中部署的模型的连接时,需要资源名称。 如果没有此资源和模型,请参阅以下文章:
- 创建和部署 Azure OpenAI 服务资源
- 部署模型
代理工作流仅支持特定模型。 有关详细信息,请参阅 支持的模型。Azure OpenAI 服务资源连接到Azure AI Foundry 项目和Azure AI Foundry 中部署的 Azure OpenAI 模型 请确保具有 Foundry 项目,而不是基于中心的项目。 如果没有此项目、资源和模型,请参阅以下文章:
- 创建和部署 Azure OpenAI 服务资源
- 为 Azure AI Foundry 创建项目
- 创建项目后连接 Azure AI 服务或在 Azure AI Foundry 门户中创建新的连接
- 部署模型
代理工作流仅支持特定模型。 有关详细信息,请参阅 支持的模型。重要
尽管代理工作流在 Azure 逻辑应用中不会产生额外的费用,但模型使用会产生费用。 有关详细信息,请参阅 Azure 定价计算器。
在代理与已部署的模型之间创建新的连接时要使用的身份验证。
注释
对于 Azure AI Foundry 项目,必须使用托管身份进行身份验证。
托管标识身份验证
此连接支持使用具有 托管标识的 Microsoft Entra ID 进行身份验证。 在生产方案中,Microsoft强烈建议尽可能使用托管标识,因为此选项提供最佳且卓越的安全性,无需额外付费。 Azure 会为你管理此标识,因此无需提供或管理凭据或机密等敏感信息。 此信息甚至无法供单个用户访问。 可以使用托管标识对支持 Microsoft Entra 身份验证的任何资源的访问权限进行身份验证。
若要使用托管标识身份验证,标准逻辑应用资源必须启用系统分配的托管标识。 默认情况下,系统分配的托管标识在标准逻辑应用上启用。 此版本当前不支持使用用户分配的托管标识。
注释
如果系统分配的标识已禁用, 请重新启用标识。
根据最小特权原则,系统分配的标识需要 Microsoft Entra 基于角色的访问控制 (RBAC) 的以下角色之一:
模型源 角色 Azure OpenAI 服务资源 - 认知服务 OpenAI 用户 (最低特权)
- 认知服务 OpenAI 参与者Azure AI Foundry 项目 Azure AI 用户 有关托管标识设置的详细信息,请参阅以下资源:
基于 URL 和基于密钥的身份验证
此连接支持使用已部署模型的终结点 URL 和 API 密钥进行身份验证。 但是,在创建连接之前,无需手动查找这些值。 选择模型源时,这些值会自动显示。
重要
仅对本指南中的示例、探索方案、非生产方案或组织的策略指定无法使用托管标识身份验证时使用此身份验证选项。
一般情况下,请确保保护敏感数据和个人数据,例如凭据、机密、访问密钥、连接字符串、证书、指纹以及具有最高可用或受支持的安全级别的类似信息。 不要硬编码敏感数据、与其他用户共享或以纯文本形式保存其他人可以访问的任何位置。 设置计划以轮换或撤销机密,以防机密被盗用。 有关详细信息,请参阅以下资源:
若要遵循这些示例,需要一个电子邮件帐户来发送电子邮件。
本指南中的示例使用 Outlook.com 帐户。 对于自己的方案,可以在 Azure 逻辑应用中使用任何受支持的电子邮件服务或消息应用,例如 Office 365 Outlook、Microsoft Teams、Slack 等。 其他电子邮件服务或应用的设置与示例类似,但存在细微差异。
支持代理工作流的模型
以下列表标识可用于代理工作流的模型:
- gpt-5
- gpt-4.1
- gpt-4.1-mini
- gpt-4.1-nano
- gpt-4o
- gpt-4o-mini
- gpt-4
- gpt-35-turbo
限制和已知问题
下表描述了此版本中的当前限制和任何已知问题。
| 限度 | Description |
|---|---|
| 支持的工作流类型 | 若要创建自治代理工作流,请选择自治代理工作流类型,或向现有有状态工作流添加代理作。 不能使用 无状态 工作流类型,然后添加代理。 |
| Authentication | 对于托管标识身份验证,目前只能使用系统分配的托管标识。 目前不支持用户分配的托管标识。 注意:对于 Azure AI Foundry 项目,必须使用托管标识身份验证。 |
| 代理工具 | - 若要创建工具,只能使用动作,而不能使用触发器。 - 工具从一个动作开始,始终至少包含一个动作。 - 工具仅在存在该工具的代理内工作。 - 不支持控制流操作。 |
| Documentation | 本指南介绍创建自治代理工作流的基本步骤。 高级功能的文档编写正在进行中。 |
| 一般限制 | 有关 Azure OpenAI 服务、Azure AI Foundry 和 Azure 逻辑应用中的限制的一般信息,请参阅以下文章: - Azure OpenAI 服务配额和限制 - Azure AI Foundry 模型中的 Azure OpenAI 配额和限制 - Azure 逻辑应用限制和配置 |
创建自治代理工作流
可以从新工作流开始,也可以将代理添加到一个非代理的有状态工作流。
创建新工作流
若要使用空 代理创建部分工作流,请执行以下步骤:
在 Azure 门户中,打开你的标准逻辑应用资源。
在逻辑应用菜单上的 “工作流”下,选择“ 工作流”。
在“工作流”页工具栏上,选择“添加”。>
在 “创建工作流 ”窗格中,完成以下步骤:
在保存工作流之前,必须完成 代理操作 的以下设置任务:
创建与已部署模型的连接。 在后面的部分中完成此任务。
提供系统说明,描述代理所扮演的角色、代理可以执行的任务以及其他信息,以帮助代理更好地了解作方式。 您也可以在后面部分完成此任务。
将触发器添加到工作流。
工作流需要一个触发器来控制工作流何时开始运行。 您可以使用适合您方案的任何触发器。 有关详细信息,请参阅 触发器。
在设计器上,选择“ 添加触发器”。
在 “添加触发器 ”窗格中,按照以下 常规步骤 为方案添加最佳触发器。
此示例使用名为“收到 HTTP 请求时”的请求触发器。 对于本文,不需要任何额外的触发器设置。
继续到下一部分,以便可设置智能体与模型之间的连接。
将代理添加到非代理工作流
对于现有的 有状态 工作流,可以按照以下步骤添加 代理 动作以包含自治代理和 LLM 能力:
在 Azure 门户中,打开你的标准逻辑应用资源。
在逻辑应用菜单上的 “工作流”下,选择“ 工作流”。
在“工作流”页上,选择要在其中添加智能体的有状态工作流。
设计器打开后,按照常规步骤,将名为代理的动作添加到您的工作流中,例如:
请继续下一节,将代理连接到您的模型。
将代理连接到模型
现在,请按照以下步骤在代理与已部署的模型之间创建连接:
在设计器上,选择 代理 操作上的标题栏,以便打开 "创建连接" 窗格。
仅当没有现有工作连接时,才会打开此窗格。
在 “创建新连接 ”部分中,提供以下信息:
参数 必选 价值 Description 连接名称 是的 < 连接名称> 要用于连接到已部署模型的名称。
此示例使用 fabrikam-azure-ai-connection。代理模型源 是的 - Azure OpenAI
- Foundry 智能体服务已部署模型的源。 身份验证类型 是的 - 托管的标识
- 基于 URL 和基于密钥的身份验证用于验证和授权标识访问已部署模型的权限的身份验证类型。
注意:对于 Azure AI Foundry 项目,必须使用托管标识身份验证。
- “托管标识”要求标准逻辑应用启用托管标识,并设置基于角色的访问所需的角色。 有关详细信息,请参阅先决条件。
- URL 和基于密钥的身份验证 需要已部署模型的终结点 URL 和 API 密钥。 选择模型源时,这些值会自动显示。
重要说明:仅对于示例和探索,可以使用 URL 和基于密钥的身份验证。 对于生产方案,请使用 托管标识。Subscription 是的 < Azure-subscripton> 选择与 Azure OpenAI 服务资源关联的 Azure 订阅。 Azure OpenAI 资源 是,仅当代理模型源为 Azure OpenAI 时 < Azure-OpenAI-Service-resource-name> 选择 Azure OpenAI 服务资源。 AI Foundry 项目 是,仅当智能体模型源为“Foundry 智能体服务”时 < Azure-AI-Foundry-project-name> 在 Azure AI Foundry 中选择项目。
注意:如果最近在项目中分配了必要的角色,则可能会在角色权限生效之前遇到延迟。 同时,将显示一条错误消息,指出您对项目没有正确的权限。API 终结点 是的 自动填充 Azure OpenAI 服务中已部署模型的终结点 URL。
此示例使用https://fabrikam-azureopenai.openai.azure.com/。API 密钥 是,仅当身份验证类型为 URL 和基于密钥的身份验证时 自动填充 Azure OpenAI 服务中已部署模型的 API 密钥。 例如,如果选择 Azure OpenAI 作为模型源和 托管标识 进行身份验证,则连接信息如下所示:
如果您选择 Foundry 代理服务 作为使用 托管身份 进行身份验证的模型源,则您的连接信息如下示例所示:
完成后,选择“ 新建”。
如果要创建另一个连接,请在“ 参数 ”选项卡上向下滚动到底部,然后选择“ 更改连接”。
请继续阅读下一节。
重命名代理
通过更新代理名称,在以下步骤中明确标识代理的用途:
如果代理信息窗格未打开,请在设计器上选择代理标题栏以打开窗格。
在代理信息窗格中,选择代理名称,然后输入新名称,例如 天气代理。
注释
如果与模型的连接不正确,部署模型名称列表将不可用。
继续到下一部分,为智能体提供系统指令。
为智能体设置系统指令
代理需要 系统说明 来描述代理可以扮演的角色以及代理可以执行的任务。 若要帮助代理了解和了解这些职责,还可以包括以下信息:
- 工作流结构
- 可用操作
- 任何限制或限制条件
- 特定情境或特殊情况的交互
若要获得最佳结果,请确保系统指令具有规范性,并且你愿意在多次迭代中优化这些指令。
在 “代理说明”下的“ 系统说明 ”框中,输入代理需要了解其角色和任务的所有信息。
注释
自治代理在运行时不接受通过聊天界面的输入。
对于这个例子,天气代理示例会使用以下示例指令,你之后可以通过提供包含你自己电子邮件地址的订阅者列表来进行测试:
你是一个 AI 代理,它生成天气报告,你向列表中的每个订阅者发送电子邮件。 此列表包括要使用的每个订阅者的名称、位置和电子邮件地址。
在适当情况下使用项目符号列表设置天气报告的格式。 使你的回复简洁有用,但使用对话和友好的语气。 可以包括“携带伞”或“穿层衣服”等建议。
下面显示智能体系统指令的示例效果:
(可选)在智能体上,可提供智能体能用作提示或问题的用户指令。
为了获得更好的结果,请让每个用户指令专注于特定的任务,例如:
在“代理信息”窗格的“ 用户说明 ”部分中,选择“ 添加新项”。
在 “用户说明项 - 1 ”框中,输入问题以询问代理。
若要添加其他说明,请再次选择“ 添加新项 ”。
在 “用户说明”项 - 2 框中,输入另一个问题来询问代理。
重复此步骤,直到添加完要询问智能体的所有问题。
现在,可以保存工作流。 在设计器工具栏上选择“保存”。
若要确保工作流在此阶段没有错误,请执行以下步骤:
在设计器工具栏上,选择“ 运行>运行”。
在工作流菜单上的“工具”下,选择“运行历史记录”。
在 “运行历史记录 ”页上的“ 运行历史记录 ”选项卡上的 “标识符 ”列中,选择最新的工作流运行。
注释
如果页面未显示任何运行,请在工具栏上选择“刷新”。
如果 “状态 ”列显示 “正在运行 ”状态,则代理工作流仍在工作或正在等待。 如果在早期版本中在代理上启用了聊天频道,则会发生后一种行为。 当前版本不再包含聊天频道。
监视视图将打开,并显示工作流操作及其状态。 “代理日志”窗格已打开,并显示前面提供的系统说明。 该窗格还显示代理的响应。 对于自治智能体工作流,聊天框不可用且处于只读模式。
但是,代理目前没有任何要使用的工具,这意味着代理实际上无法执行任何特定作,例如向订阅者列表发送电子邮件,直到创建代理需要完成其任务的工具。 你甚至可以收到电子邮件服务器拒绝该邮件的电子邮件。
返回到设计器。 在监视视图工具栏上,选择“ 编辑”。
创建用于获取天气预报的工具
若要使代理运行 Azure 逻辑应用中可用的预生成作,必须创建一个或多个工具供代理使用。 工具必须至少包含一个操作,并且只能包含操作。 代理使用特定参数调用该工具。
在此示例中,代理需要一个获取天气预报的工具。 可以按照以下步骤生成此工具:
在设计器中,在代理内的“添加工具”下,选择加号 () 以打开可在其中浏览可用操作的窗格+。
在 “添加操作” 窗格中,按照以下 常规步骤 为你的场景添加操作。
此示例使用名为今天的天气预报的MSN 天气操作。
选择动作后,工具以及动作同时显示在设计器上的代理程序内。 这两个信息窗格也同时打开。
在工具信息窗格中,重命名该工具以描述其用途。
此示例使用 “获取天气”。
在“ 详细信息 ”选项卡上,对于 “说明”,输入工具说明。
此示例使用 获取指定位置的天气。
在 “说明”下, “代理参数 ”部分仅适用于特定用例。 有关详细信息,请参阅 “创建代理参数”。
继续阅读下一部分,详细了解代理参数及其用例,以及如何根据这些用例创建它们。
为“获取预测”操作创建代理的参数
操作通常需要参数来指定要使用的值。 除了一个差异之外,工具中的操作几乎相同。 您可以创建代理参数,代理会使用这些参数为工具中的操作指定参数值。 可以指定模型生成的输出、来自非模型源的值或组合。 有关详细信息,请参阅 代理参数。
下表描述了创建代理参数的用例,以及基于用例创建代理参数的位置:
| 目标 | 创建代理参数的位置 |
|---|---|
| 仅使用模型生成的输出。 在同一工具中与其他操作共享。 |
从动作参数开始。 有关详细步骤,请参阅 仅使用模型生成的输出。 |
| 使用非模型值。 | 不需要代理参数。 此体验与 Azure Logic Apps 中的常规动作设置体验相同,但为了方便在使用来自非模型源的值中重复此体验。 |
| 将模型生成的输出与非模型值一起使用。 在同一工具中与其他操作共享。 |
从工具开始,在 “代理参数 ”部分中。 有关详细步骤,请参阅 使用模型输出和非模型值。 |
仅使用模型生成的输出
对于仅使用模型生成的输出的作参数,请按照以下步骤创建代理参数:
在工具中,选择打开信息窗格的操作。
对于本示例,动作是 获取今天的天气预报。
在“ 参数 ”选项卡上,在参数框中选择以显示参数选项。
在 “位置” 框的右边缘,选择“星形”按钮。
此按钮具有以下工具提示: 选择以生成代理参数。
“创建代理参数”窗口显示“名称”、“类型”和“说明”字段,这些字段是从源作参数预填充的。
下表描述了定义代理参数的字段:
参数 价值 Description 名称 < agent-parameter-name> 代理参数名称。 类型 < 代理参数数据类型> 代理参数数据类型。 说明 < agent-parameter-description> 可以轻松标识参数用途的代理参数说明。 注释
Microsoft建议您遵循操作的 Swagger 定义。 例如,对于来自由全球多租户 Azure 托管和管理的 MSN Weather“共享”连接器的“获取今日预报”操作,请参阅 MSN Weather 连接器技术参考文章。
准备就绪后,选择“创建”。
下图展示了使用Location 代理参数执行获取今日天气预报动作为例:
保存工作流。
使用来自非模型源的值
对于仅使用非模型值的作参数值,请选择最适合你的用例的选项:
使用工作流中早期操作的输出
若要浏览并从这些输出中进行选择,请执行以下步骤:
在参数框中选择,然后选择闪电图标以打开动态内容列表。
从列表中,在触发器或操作部分,选择所需的输出。
保存工作流。
使用表达式的结果
若要创建表达式,请执行以下步骤:
在参数框中选择,然后选择函数图标以打开表达式编辑器。
从可用函数中进行选择以创建表达式。
保存工作流。
有关详细信息,请参阅 Azure 逻辑应用中工作流表达式函数的参考指南。
使用模型输出和非模型值
某些场景可能需要指定一个动作参数值,该值使用模型生成的输出和非模型值。 例如,你可能想要创建一个电子邮件正文,该正文使用静态文本、工作流中早期作的非模型输出和模型生成的输出。
对于这些方案,请按照以下步骤在工具上创建代理参数:
在设计器上,选择要在其中创建代理参数的工具。
在“ 详细信息 ”选项卡上的 “代理参数”下,选择“ 创建参数”。
展开 新代理参数,并提供以下信息,确保与动作参数详细信息匹配。
对于此示例,示例作是 “获取当前预测”。
注释
Microsoft建议您遵循操作的 Swagger 定义。 例如,若要查找有关 获取今日天气预报 操作的信息,请参阅 MSN 天气 连接器技术参考文章。 示例作由 MSN Weather 托管的“共享”连接器提供,该连接器托管并在全局多租户 Azure 中运行。
参数 价值 Description 名称 < agent-parameter-name> 代理参数名称。 类型 < 代理参数数据类型> 代理参数数据类型。 说明 < agent-parameter-description> 可以轻松标识参数用途的代理参数说明。 可以从以下选项中进行选择,或将它们组合在一起以提供说明:
- 包含参数用途、允许的值、限制或限制等详细信息的纯文本文本。
- 工作流中先前操作的输出。 若要浏览并选择这些输出,请在 “说明 ”框中选择,然后选择闪电图标以打开动态内容列表。 从列表中选择所需的输出。
- 表达式的结果。 若要创建表达式,请在 “说明 ”框中选择,然后选择函数图标以打开表达式编辑器。 从可用函数中进行选择以创建表达式。完成后,在 “代理参数”下,将显示新的代理参数。
在设计器的工具中,选择要打开操作信息窗格的操作。
在“ 参数 ”选项卡上,在参数框中选择以显示参数选项,然后选择机器人图标。
从 “代理参数 ”列表中选择前面定义的代理参数。
例如,完成的 “获取天气 ”工具如以下示例所示:
保存工作流。
创建用于发送电子邮件的工具
在许多情况下,代理通常需要多个工具。 在此示例中,代理需要一个以电子邮件发送天气报告的工具。
若要生成此工具,请执行以下步骤:
在设计器中,在代理内部,选择现有工具旁边的加号(+)以添加一个操作。
在“添加操作”窗格中,按照以下常规步骤为新工具选择另一项操作。
这些示例使用 Outlook.com 中名为“发送电子邮件”(V2)的操作。
与之前一样,当您选择操作时,新的工具和操作同时显示在设计器上的代理内。 这两个信息窗格同时打开。
在工具信息窗格中,通过更新工具名称使该工具的用途变得明显。
这些示例使用 发送电子邮件。
在“ 详细信息 ”选项卡上,提供以下信息:
对于 “说明”,请输入工具说明。
此示例使用通过电子邮件发送天气预报。
为“发送电子邮件(V2)”操作创建代理参数
本部分中的步骤与 “创建‘获取预测’动作的代理参数”几乎相同,但 “发送电子邮件 (V2)”动作 中的不同参数除外。
按照前面的步骤为名为 “发送电子邮件 (V2)” 的操作中的参数值创建以下代理参数。
该作需要三个名为 To、 Subject 和 Body 的代理参数。 有关操作的 Swagger 定义,请参阅发送电子邮件(V2)。
例如,发送电子邮件(V2) 操作如下例所示:
完成后,示例操作将使用先前定义的代理参数,如下所示:
第二个示例工具现已完成,如以下示例所示:
创建用于提供订阅者列表的工具
最后,对于此示例,请创建一个名为获取订阅者的工具,以提供供代理参数值使用的订阅者列表。 此工具使用 Compose 用于提供订阅者名称、电子邮件地址和位置。 或者,您可以从 BLOB 存储或数据库获取这些输入。 Azure 逻辑应用提供了许多可用于数据源的选项。
以下示例显示了 “获取订阅者 ”工具的外观:
代理和工具的最佳做法
以下部分提供建议、最佳做法和其他指导,可帮助你构建更好的代理和工具。
Agents
以下指南提供了代理的最佳做法。
包含“撰写”操作的原型代理和工具
使用 Compose 动作 来「模拟」或仿真实际动作,而不是使用实际动作和实时连接来原型设计您的代理和工具。 此方法具有以下好处:
撰写 操作不会产生副作用,这使得这些操作在构思、设计和测试中很有用。
可以起草和优化系统说明、提示、工具名称和说明以及代理参数和说明 - 无需设置和使用实时连接。
确认代理和工具仅使用“撰写”操作时,即可切换为实际操作。
切换到实际操作时,需要重新路由或重新创建代理参数以适应实际操作,这可能需要一些时间。
管理聊天历史记录上下文长度
工作流智能体根据对需保留并传入模型用于下一次交互的令牌或消息数的当前限制来维护历史聊天记录或上下文。 随着时间的推移,代理历史记录会增长,并最终超过模型的 上下文长度 限制或输入令牌的最大数目。 模型在上下文长度上有所不同。
例如, gpt-4o 支持 128,000 个输入令牌,其中每个令牌有 3-4 个字符。 当代理历史记录接近模型的上下文长度时,请考虑删除过时或无关的消息,以保持在限制之下。
下面是减少代理历史记录的一些方法:
使用Compose 操作来减小工具结果的大小。 有关详细信息,请参阅 “工具 - 最佳做法”。
仔细制定系统说明并提示来控制模型的行为。
实验性功能:您可以选择尝试对聊天记录进行缩减,以减少保留在聊天历史记录中的最大令牌或消息数量,然后将其输入模型中。
工作流代理具有与 Azure OpenAI 内置服务提供商连接器几乎相同的高级参数,但 代理历史记录减少类型 高级参数除外,该参数仅存在于代理中。 此参数根据令牌或消息的最大数目控制代理维护的历史记录。
此功能处于活动开发阶段,可能不适用于所有方案。 可以更改 “代理历史记录减少类型” 选项以减少对令牌或消息的限制。 然后指定所需的数字限制。
若要试用该功能,请执行以下步骤:
在设计器中,选择代理的标题栏以打开信息窗格。
在“ 参数 ”选项卡上,找到 “高级参数 ”部分。
检查名为 “代理历史记录减少类型 ”的参数是否存在。 如果没有,请打开 “高级参数 ”列表,然后选择该参数。
从 “代理历史记录减少类型” 列表中选择以下选项之一:
选项 Description 令牌计数减少 显示名为 “最大令牌计数”的参数。 指定代理历史记录中要保留的最大令牌数,这些令牌将传送到模型中以用于下一次交互。 默认值因 Azure OpenAI 服务中当前使用的模型而异。 默认限制为 128,000。 消息数量减少 显示名为 Message Count Limit 的参数。 指定代理历史记录中要保留和传入模型的最大消息数,以便进行下一次交互。 不存在默认限制。
Tools
以下指南提供了工具的最佳实践。
名称是工具最重要的值。 确保名称简洁且描述性。
工具说明为该工具提供了有用且有用的上下文。
工具名称和说明都具有字符限制。
某些限制是在运行时由 Azure OpenAI 服务中的模型强制实施的,而不是在工作流中保存代理中的更改时。
同一代理中的工具过多可能会对代理质量产生负面影响。
一个通用良好准则建议,一个智能体最多包含 10 个工具。 但是,本指南因 Azure OpenAI 服务中使用的模型而异。
在工具中,动作不需要所有输入都来自模型。
可以精细控制哪些作输入来自非模型源,哪些输入来自模型。 例如,假设某个工具具有发送电子邮件的动作。 可以提供简单且大部分静态的电子邮件正文,但对该电子邮件正文的一部分使用模型生成的输出。
在将工具结果传递给模型之前,请对其进行自定义或转换。
可以在工具结果传入模型之前使用
Compose 操作更改这些结果。 此方法具有以下好处:通过减少传入模型的不相关的 上下文 来提高响应质量。 仅从大型响应中发送所需的字段。
减少传入模型的令牌的计费费用,并避免超过 模型对上下文长度的限制(传入模型的最大令牌数)。 您只需发送必要的字段。
在工具中合并多个动作的结果。
可以伪造工具结果来模拟实际操作的预期结果。 模拟操作不会更改源数据,并且不会对 Azure 逻辑应用外部的资源使用计费。
代理参数
以下指南提供了代理参数的最佳做法。
名称是代理参数最重要的值。 确保名称简洁且描述性。
代理参数说明为该工具提供了有用且有用的上下文。
故障排查
本部分介绍如何帮助解决生成或运行代理工作流时可能遇到的错误或问题。
查看工具执行数据
工作流运行历史记录提供了有用的信息,可帮助你了解特定运行期间发生的情况。 对于代理工作流,可以找到特定代理循环迭代的工具执行输入和输出。
在工作流菜单上的 “工具”下,选择“ 运行历史记录 ”以打开 “运行历史记录 ”页。
在“ 运行历史记录 ”选项卡上的 “标识符 ”列中,选择所需的工作流运行。
此时会打开监视视图以显示每个步骤的状态。
选择要检查的代理。 右侧会显示 “代理日志 ”窗格。
此窗格显示代理日志,包括交互期间的工具执行。
若要在特定点获取工具执行数据,请在代理日志中找到该点,然后选择工具执行参考,例如:
这个操作会将您切换到监控视图中的匹配工具。 代理显示当前迭代次数。
在监控视图中,选择带有您要查看的输入、输出和属性的代理或动作。
以下示例显示了先前所选工具执行的选定操作:
如果选择代理,可以查看传入模型并从模型返回的以下信息,例如:
- 传入模型的输入消息。
- 从模型返回的输出消息。
- 模型要求代理调用的工具。
- 传回模型的工具结果。
- 每个请求使用的令牌数。
若要查看其他代理循环迭代,请在代理中选择向左或向右箭头。
Application Insights 中的日志
如果为工作流设置了 Application Insights 或高级遥测,则可以像查看任何其他操作一样查看代理事件的日志。 有关详细信息,请参阅 在 Azure Logic Apps 的标准工作流中启用并查看 Application Insights 中增强的遥测。
超出模型最大上下文长度
如果代理的日志历史记录超过模型的 上下文长度或输入令牌的最大数目,则会收到类似于以下示例的错误:
此模型的最大上下文长度为 4097 个标记。 但是,你请求了 4927 个令牌(消息中 3927 个,完成时为 1000 个)。 请减少消息长度或完成。
尝试降低代理在日志中保留令牌数或消息数的上限,以便在下一次交互中传递给模型。 对于此示例,可以选择 “减少令牌计数 ”并将 “最大令牌计数 ”设置为错误规定的最大上下文长度( 即 4097)下面的数字。
有关详细信息,请参阅 管理聊天历史记录上下文长度。
清理示例资源
如果不需要为示例创建的资源,请确保删除资源,以免继续收费。 可以按照以下步骤删除包含这些资源的资源组,也可以单独删除每个资源。
在 Azure 搜索框中,输入 资源组,然后选择 资源组。
查找并选择包含此示例的资源的资源组。
在“ 概述 ”页上,选择“ 删除资源组”。
出现确认窗格时,输入资源组名称,然后选择“ 删除”。