你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 逻辑应用中使用聊天交互创建聊天代理工作流

适用于:Azure 逻辑应用(消耗型 + 标准型)

如果需要与人类交互的 AI 驱动的自动化,请在 Azure 逻辑应用中创建 对话代理 工作流。 这些工作流使用自然语言、代理 循环大型语言模型 (LLM)根据人工提供的输入和问题(称为 提示)做出决策和完成任务。 这些工作流最适合用户驱动、短期或基于会话的自动化。

以下示例工作流使用对话代理获取当前天气并发送电子邮件通知:

屏幕截图显示了 Azure 门户、工作流设计器和示例聊天代理工作流。

本指南演示如何使用 对话代理 工作流类型创建消耗或标准逻辑应用。 此工作流使用生成的人工提示和工具运行,以完成任务。 有关代理工作流的高级概述,请参阅 Azure 逻辑应用中的 AI 代理工作流

重要

消耗型对话代理工作流目前处于预览阶段,受 Microsoft Azure 预览版补充使用条款约束。

先决条件

根据是要创建消耗型还是标准逻辑应用,以下先决条件适用:

  • 使用名为“对话代理”的工作流类型的消耗型逻辑应用资源。 请参阅 Azure 门户中的“创建消耗逻辑应用工作流”。

    消费型会话代理工作流不需要您手动设置单独的 AI 模型。 工作流会自动包含一个代理操作,该操作使用托管在 Azure AI Foundry 中的 Azure OpenAI 服务模型。 代理工作流仅支持特定模型。 请参阅支持的模型

    注释

    只能使用 Azure 门户生成对话代理工作流,而不是 Visual Studio Code。

对于外部聊天的身份验证和授权,消费型会话代理工作流使用 由 Microsoft Entra ID 支持的 OAuth 2.0

  • 若要遵循这些示例,需要一个电子邮件帐户来发送电子邮件。

    本指南中的示例使用 Outlook.com 帐户。 对于自己的方案,可以在 Azure 逻辑应用中使用任何受支持的电子邮件服务或消息应用,例如 Office 365 Outlook、Microsoft Teams、Slack 等。 其他电子邮件服务或应用的设置与示例类似,但存在细微差异。

限制和已知问题

下表描述了此版本中的当前限制和任何已知问题。

逻辑应用程序 限制或已知问题
推送、请求和匿名 若要为代理创建工具,可应用以下限制:

- 只能添加动作,不能添加触发器。
- 工具必须以一个操作开始,并且始终包含至少一个操作。
- 工具仅在存在该工具的代理内工作。
- 不支持控制流操作。
消耗 - 只能在 Azure 门户中创建消耗代理工作流,而不是 Visual Studio Code。
- 代理使用的 AI 模型可以源自任何区域,因此模型处理的数据不能保证特定区域的数据驻留。
- 根据使用的令牌数量对代理操作进行限制。
标准 - 不支持的工作流类型: 无状态

有关 Azure OpenAI 服务和 Azure 逻辑应用中的常规限制,请参阅:

- Azure OpenAI 服务配额和限制
- Azure 逻辑应用限制和配置

代理工作流支持的 Azure OpenAI 服务模型

以下列表指定可用于代理工作流的 AI 模型:

代理会自动使用以下 Azure OpenAI 服务模型之一:

  • gpt-4o-mini
  • gpt-5o-mini

重要

代理使用的 AI 模型可以源自任何区域,因此模型处理的数据不能保证特定区域的数据驻留。

账单管理

  • 消耗:计费使用即用即付模型。 代理循环定价基于每个代理操作使用的令牌数计算,并在你的帐单上显示为企业单位。 有关特定定价信息,请参阅 Azure 逻辑应用定价

  • 标准:尽管代理工作流不会产生额外费用,但 AI 模型使用会产生费用。 有关详细信息,请参阅 Azure 定价计算器

创建聊天代理工作流

以下部分演示如何开始创建聊天代理工作流。

对话代理工作流类型会创建一个部分工作流,这个工作流以一个必需的触发器开头,此触发器名为“新的聊天会话启动时”。 工作流还包括一个空的默认代理操作。

若要打开此部分工作流,请执行以下步骤:

  1. Azure 门户中,打开你的消耗逻辑应用资源。

  2. 在资源边栏上的 “开发工具”下,选择设计器以打开部分代理工作流。

    设计器显示一个部分工作流,该工作流以名为“新聊天会话开始时”的必需触发器开头。 在触发器下方,会显示一个名为“默认代理”的空代理操作。 对于该场景,您不需要进行任何其他触发器设置。

    屏幕截图显示了消耗型工作流设计器,其中包含必需的聊天会话触发器和空的默认代理操作。

  3. 接下来,请进入下一部分以设置智能助手。

注释

如果现在尝试保存工作流,设计器工具栏会显示“ 错误” 按钮上的红点。 设计器会提醒你出现此错误情况,因为代理需要设置,然后才能保存任何更改。 但是,现在无需设置代理。 可以继续创建工作流。 只需记住在保存工作流之前设置代理即可。

屏幕截图显示了工作流设计器工具栏和带有红点的“错误”按钮,以及代理操作信息窗格中的错误。

设置或查看 AI 模型

若要为代理设置或查看 AI 模型,请根据逻辑应用类型执行以下步骤:

默认情况下,代理会自动使用逻辑应用区域中提供的 Azure OpenAI 模型。 某些区域支持 gpt-4o-mini,而另一些区域则支持 gpt-5o-mini

若要查看代理使用的模型,请执行以下步骤:

  1. 在设计器中,选择 默认代理 操作上的标题栏以打开信息窗格。

  2. 在“ 参数 ”选项卡上, 模型 ID 参数显示工作流使用的 Azure OpenAI 模型,例如:

    屏幕截图显示了消费代理与 Azure OpenAI 模型。

  3. 请继续到下一部分以重命名代理。

重命名代理

按照以下步骤更新代理名称以明确标识代理的目的:

  1. 在设计器上,选择代理标题栏以打开代理信息窗格。

  2. 在信息窗格中,选择代理名称,然后输入新名称, Weather agent例如。

    屏幕截图显示了工作流设计器、工作流触发器和重命名的代理。

  3. 继续进行下一部分,为代理提供系统指令。

设置代理指令

代理需要说明,说明代理可以扮演的角色以及代理可以执行的任务。 若要帮助代理了解和了解这些职责,还可以包括以下信息:

  • 工作流结构
  • 可用操作
  • 任何限制或限制条件
  • 特定情境或特殊情况的交互

为了获得最佳结果,请提供规范性说明,并准备好以迭代方式优化说明。

  1. 在“代理指令”框中,输入代理了解其角色和任务所需的相关指令。

    对于此示例,天气代理程序示例使用以下样本指令,随后您可以提出问题并提供自己的电子邮件地址以进行测试:

    You're an AI agent that answers questions about the weather for a specified location. You can also send a weather report in email if you're provided email address. If no address is provided, ask for an email address.
    
    Format the weather report with bullet lists where appropriate. Make your response concise and useful, but use a conversational and friendly tone. You can include suggestions like "Carry an umbrella" or "Dress in layers".
    

    下面是一个示例:

    屏幕截图显示了工作流设计器和代理说明。

  2. 现在,可以保存工作流。 在设计器工具栏上选择“保存”。

检查是否有错误

若要确保工作流在此阶段没有错误,请根据逻辑应用和开发环境执行这些步骤。

  1. 在设计器工具栏上,选择 “聊天”。

  2. 在聊天客户端界面中,提出以下问题: What is the current weather in Seattle?

  3. 检查响应是否为预期,例如:

    屏幕截图显示了门户集成的消费代理工作流聊天界面。

  4. 返回设计器中的工作流。

  5. 在工作流边栏上的 “开发工具”下,选择“ 运行历史记录”。

  6. 运行历史记录 页面的运行表中,选择最新的工作流运行。

    注释

    如果页面未显示任何运行,请在工具栏上选择“刷新”。

    如果 “状态 ”列显示 “正在运行 ”状态,代理工作流仍在工作。

    监视视图将打开,并显示工作流操作及其状态。 “代理日志”窗格已打开,并显示前面提供的代理说明。 该窗格还显示代理的响应。

    屏幕截图显示了消耗工作流、操作状态与代理日志的监控视图。

    代理目前没有任何要使用的工具,这意味着代理实际上无法执行任何特定作,例如向订阅者列表发送电子邮件,直到创建代理需要完成任务的工具。

  7. 返回到设计器。 在监视视图工具栏上,选择“ 编辑”。

创建“获取天气”工具

若要使代理运行 Azure 逻辑应用中可用的预生成作,必须创建一个或多个工具供代理使用。 工具必须至少包含一个操作,并且只能包含操作。 代理使用特定参数调用该工具。

在此示例中,代理需要一个获取天气预报的工具。 可以按照以下步骤生成此工具:

  1. 在设计器中,在代理内的“添加工具”下,选择加号 () 以打开可在其中浏览可用操作的窗格+

  2. “添加操作”窗格中,按照您的逻辑应用的常规步骤添加最适合您方案的操作。

    此示例使用名为“获取当前天气”MSN 天气操作。

    选择该作后, 工具 容器和所选作将显示在设计器上的代理中。 这两个信息窗格也同时打开。

    屏幕截图显示了工作流设计器,其中包含重命名的代理和一个工具,该工具包含名为“获取当前天气”的动作。

  3. 在工具信息窗格中,重命名该工具以描述其用途。 对于此示例,请使用 Get weather

  4. 在“ 详细信息 ”选项卡上,对于 “说明”,输入工具说明。 对于此示例,请使用 Get the weather for the specified location.

    屏幕截图显示了已完成的“获取天气”工具,其中包含说明。

    “说明”下, “代理参数 ”部分仅适用于特定用例。 有关详细信息,请参阅 “创建代理参数”。

  5. 继续阅读下一部分,详细了解代理参数及其用例,以及如何根据这些用例创建它们。

为“获取当前天气”的动作创建代理参数

操作通常需要参数来指定要使用的值。 除了一个差异之外,工具中的操作几乎相同。 您可以创建代理参数,代理会使用这些参数为工具中的操作指定参数值。 可以指定模型生成的输出、来自非模型源的值或组合。 有关详细信息,请参阅 代理参数

下表描述了创建代理参数的用例,以及基于用例创建代理参数的位置:

目标 创建代理参数的位置
仅使用模型生成的输出。
在同一工具中与其他操作共享。
从动作参数开始。 有关详细步骤,请参阅 仅使用模型生成的输出
使用非模型值。 不需要代理参数。

此体验与 Azure Logic Apps 中的常规动作设置体验相同,但为了方便在使用来自非模型源的值中重复此体验。
将模型生成的输出与非模型值一起使用。
在同一工具中与其他操作共享。
从工具开始,在 “代理参数 ”部分中。 有关详细步骤,请参阅 使用模型输出和非模型值
仅使用模型生成的输出

对于仅使用模型生成的输出的作参数,请按照以下步骤创建代理参数:

  1. 在工具中,选择打开信息窗格的操作。

    对于此示例,动作是获取当前天气

  2. 在“ 参数 ”选项卡上,在参数框中选择以显示参数选项。

  3. “位置” 框的右边缘,选择“星形”按钮。

    此按钮具有以下工具提示: 选择以生成代理参数

    屏幕截图显示了操作,其中鼠标光标位于参数框内,并显示参数选项及生成代理参数的选定选项。

    “创建代理参数”窗口显示“名称”、“类型”和“说明”字段,这些字段是从源作参数预填充的。

    下表描述了定义代理参数的字段:

    参数 价值 Description
    名称 < agent-parameter-name> 代理参数名称。
    类型 < 代理参数数据类型> 代理参数数据类型。
    说明 < agent-parameter-description> 可以轻松标识参数用途的代理参数说明。

    注释

    Microsoft建议您遵循操作的 Swagger 定义。 例如,对于来自由全球多租户 Azure 托管和管理的 MSN 天气“共享”连接器的“获取当前天气”操作,请参阅 MSN 天气连接器技术参考一文

  4. 准备就绪后,选择“创建”

    以下示例显示了使用 Location 代理参数获取当前天气作:

    屏幕截图显示了天气代理、获取天气工具以及名为“获取当前天气”的选定动作。位置动作参数包括创建的代理参数。

  5. 保存工作流。

使用来自非模型源的值

对于仅使用非模型值的作参数值,请选择最适合你的用例的选项:

使用工作流中早期操作的输出

若要浏览并从这些输出中进行选择,请执行以下步骤:

  1. 在参数框中选择,然后选择闪电图标以打开动态内容列表。

  2. 从列表中,在触发器或操作部分中,选择所需的输出。

  3. 保存工作流。

利用表达式结果

若要创建表达式,请执行以下步骤:

  1. 在参数框中选择,然后选择函数图标以打开表达式编辑器。

  2. 从可用函数中进行选择以创建表达式。

  3. 保存工作流。

有关详细信息,请参阅 Azure 逻辑应用中工作流表达式函数的参考指南

使用模型输出和非模型值

某些方案可能需要指定一个动作参数值,该值结合了模型生成的输出和非模型值。 例如,你可能想要创建一个电子邮件正文,该正文使用静态文本、工作流中早期作的非模型输出和模型生成的输出。

对于这些方案,请按照以下步骤在工具上创建代理参数:

  1. 在设计器上,选择要在其中创建代理参数的工具。

  2. 在“ 详细信息 ”选项卡上的 “代理参数”下,选择“ 创建参数”。

  3. 展开“新代理参数”,然后提供以下信息,但匹配操作参数详细信息。

    对于此示例,示例操作是获取当前天气

    注释

    Microsoft建议您遵循操作的 Swagger 定义。 例如,要查找“获取当前天气”操作的此信息,请参阅MSN 天气连接器技术参考文章。 示例作由 MSN Weather 托管连接器提供,该连接器托管并在多租户 Azure 上的共享群集中运行。

    参数 价值 Description
    名称 < agent-parameter-name> 代理参数名称。
    类型 < 代理参数数据类型> 代理参数数据类型。
    说明 < agent-parameter-description> 可以轻松标识参数用途的代理参数说明。 可以从以下选项中进行选择,或将它们组合在一起以提供说明:

    - 包含参数用途、允许的值、限制或限制等详细信息的纯文本文本。

    - 工作流中较早操作的输出。 若要浏览并选择这些输出,请在 “说明 ”框中选择,然后选择闪电图标以打开动态内容列表。 从列表中选择所需的输出。

    - 表达式的结果。 若要创建表达式,请在 “说明 ”框中选择,然后选择函数图标以打开表达式编辑器。 从可用函数中进行选择以创建表达式。

    完成后,在 “代理参数”下,将显示新的代理参数。

  4. 在设计器的工具中,选择要打开操作信息窗格的操作。

  5. 在“ 参数 ”选项卡上,在参数框中选择以显示参数选项,然后选择机器人图标。

  6. “代理参数 ”列表中选择前面定义的代理参数。

    完成的 “获取当前天气 ”工具如以下示例所示:

    屏幕截图显示了代理和已完成的“获取天气”工具。

  7. 保存工作流。

创建“发送电子邮件”工具

在许多情况下,代理通常需要多个工具。 在此示例中,代理需要一个以电子邮件发送天气报告的工具。

若要生成此工具,请执行以下步骤:

  1. 在设计器的代理中,在现有工具旁边选择加号 (+) 以添加操作。

  2. “添加操作”窗格中,按照以下 常规步骤 为新工具选择另一个操作。

    这些示例使用Outlook.com中的操作名为“发送电子邮件 (V2)”

    与之前一样,当您选择操作后,新的工具和动作都会同时显示在设计器上的代理内。 这两个信息窗格同时打开。

    屏幕截图显示了工作流设计器,其中包含天气代理、获取天气工具以及执行“发送电子邮件(V2)”操作的新工具。

  3. 在工具信息窗格中,重命名该工具以描述其用途。 对于此示例,请使用 Send email

  4. 在“ 详细信息 ”选项卡上,对于 “说明”,输入工具说明。 对于此示例,请使用 Send current weather by email.

    屏幕截图显示了包含说明的已完成的“发送电子邮件”工具。

创建“发送电子邮件(V2)”操作的代理参数

除了为 “发送电子邮件”作设置的不同代理参数(V2) 之外,本部分中的步骤与 为“获取当前天气”作创建代理参数几乎相同。

  • 按照前面的常规步骤为 “发送电子邮件”(V2) 作中的参数值创建代理参数。

    该作需要三个名为 ToSubjectBody 的代理参数。 有关操作的 Swagger 定义,请参阅发送电子邮件(V2)。

    完成后,示例操作将使用先前定义的代理参数,如下所示:

    屏幕截图显示了名为“发送电子邮件 V2”的作的信息窗格,以及前面定义的代理参数“To”、“主题”和“正文”。

    完成的 发送电子邮件 工具如以下示例所示:

    屏幕截图展示了代理和已完成的“发送电子邮件”工具。

代理和工具的最佳做法

以下部分提供建议、最佳做法和其他指导,可帮助你构建更好的代理和工具。

Agents

以下指南提供了代理的最佳做法。

包含“撰写”操作的原型代理和工具

使用 Compose 动作 来「模拟」或仿真实际动作,而不是使用实际动作和实时连接来原型设计您的代理和工具。 此方法具有以下好处:

  • 撰写 操作不会产生副作用,这使得这些操作在构思、设计和测试中很有用。

  • 可以起草和优化代理说明、提示、工具名称和说明以及代理参数和说明 - 无需设置和使用实时连接。

  • 确认代理和工具仅使用“撰写”操作时,即可切换为实际操作。

  • 切换到实际操作时,需要重新路由或重新创建代理参数以适应实际操作,这可能需要一些时间。

管理聊天历史记录上下文长度

工作流代理根据对要保留并传入模型以进行下一次交互的令牌或消息数的当前限制来维护历史聊天记录或上下文(包括工具调用)。 随着时间的推移,代理历史记录会增长,并最终超过模型的 上下文长度 限制或输入令牌的最大数目。 模型在上下文长度上有所不同。

例如, gpt-4o 支持 128,000 个输入令牌,其中每个令牌有 3-4 个字符。 当代理历史记录接近模型的上下文长度时,请考虑删除过时或无关的消息,以保持在限制之下。

下面是减少代理历史记录的一些方法:

  • 使用Compose 操作来减小工具结果的大小。 有关详细信息,请参阅 “工具 - 最佳做法”。

  • 仔细制定代理指令和提示,以控制模型的行为。

  • 实验性功能:您可以选择尝试对聊天记录进行缩减,以减少保留在聊天历史记录中的最大令牌或消息数量,然后将其输入模型中。

    工作流代理具有与 Azure OpenAI 内置服务提供商连接器几乎相同的高级参数,但 代理历史记录减少类型 高级参数除外,该参数仅存在于代理中。 此参数根据令牌或消息的最大数目控制代理维护的历史记录。

    此功能处于活动开发阶段,可能不适用于所有方案。 可以更改 “代理历史记录减少类型” 选项以减少对令牌或消息的限制。 然后指定所需的数字限制。

    若要试用该功能,请执行以下步骤:

    1. 在设计器中,选择代理的标题栏以打开信息窗格。

    2. 在“ 参数 ”选项卡上,找到 “高级参数 ”部分。

    3. 检查名为 “代理历史记录减少类型 ”的参数是否存在。 如果没有,请打开 “高级参数 ”列表,然后选择该参数。

    4. “代理历史记录减少类型” 列表中选择以下选项之一:

      选项 Description
      令牌计数减少 显示名为 “最大令牌计数”的参数。 指定代理历史记录中要保留的最大令牌数,这些令牌将传送到模型中以用于下一次交互。 默认值因 Azure OpenAI 服务中当前使用的模型而异。 默认限制为 128,000
      消息数量减少 显示名为 Message Count Limit 的参数。 指定代理历史记录中要保留和传入模型的最大消息数,以便进行下一次交互。 不存在默认限制。

Tools

以下指南提供了工具的最佳实践。

  • 名称是工具最重要的值。 确保名称简洁且描述性。

  • 工具说明为该工具提供了有用且有用的上下文。

  • 工具名称和说明都具有字符限制。

    某些限制是在运行时由 Azure OpenAI 服务中的模型强制实施的,而不是在工作流中保存代理中的更改时。

  • 同一代理中的工具过多可能会对代理质量产生负面影响。

    良好的一般准则建议代理包含的工具不超过 10 个。 但是,本指南因 Azure OpenAI 服务中使用的模型而异。

  • 在工具中,动作不需要所有输入都来自模型。

    可以精细控制哪些作输入来自非模型源,哪些输入来自模型。 例如,假设某个工具具有发送电子邮件的动作。 可以提供简单且大部分静态的电子邮件正文,但对该电子邮件正文的一部分使用模型生成的输出。

  • 在将工具结果传递给模型之前,请对其进行自定义或转换。

    可以在工具结果传入模型之前使用 Compose 操作更改这些结果。 此方法具有以下好处:

    • 通过减少传入模型的不相关的 上下文 来提高响应质量。 仅从大型响应中发送所需的字段。

    • 减少传入模型的令牌的计费费用,并避免超过 模型对上下文长度的限制(传入模型的最大令牌数)。 您只需发送必要的字段。

    • 在工具中合并多个动作的结果。

    • 可以伪造工具结果来模拟实际操作的预期结果。 模拟操作不会更改源数据,并且不会对 Azure 逻辑应用外部的资源使用计费。

代理参数

以下指南提供了代理参数的最佳做法。

  • 名称是代理参数最重要的值。 确保名称简洁且描述性。

  • 代理参数说明为该工具提供了有用且有用的上下文。

身份验证和授权

对于非生产活动(如设计、开发和快速测试),Azure 门户提供、管理和使用 开发人员密钥 来运行工作流并代表你执行作。 以下列表建议处理此开发人员密钥的一些最佳做法:

  • 严格对待开发人员密钥,仅将其视为一种进行身份验证和授权的设计时便利措施。

  • 在向其他代理、自动化或更广泛的用户群体公开聊天代理之前,请根据聊天代理工作流类型迁移到具有网络限制的已签名 SAS,或者使用以下身份验证和授权方法进行外部聊天:

    Workflow Authentication
    消耗 具有 Microsoft Entra ID 的 OAuth 2.0
    标准 托管标识 、简易身份验证(应用服务身份验证)

    基本上,如果 Azure 门户会话外部的任何人或任何内容需要调用你的工作流或与之交互,开发人员密钥将不再适用。

准备好将代理工作流发布到生产环境时,请确保按照 迁移步骤准备生产身份验证和授权。 有关详细信息,请参阅身份验证和授权

迁移到生产身份验证

  1. 在逻辑应用资源上,根据工作流类型设置以下身份验证:

    Workflow Authentication
    消耗 通过在逻辑应用资源上创建代理授权策略,使用基于 Microsoft Entra ID 的 OAuth 2.0 进行身份验证。

    若要创建此策略,请执行以下步骤:
    1.请按照一般步骤创建策略,但请改为执行以下步骤。
    2.选择 Azure Active Directory (AAD)。
    3.选择代理授权规则(对于对话代理)。
    4.在 对象 ID 下,输入可以访问代理的每个用户、应用或企业应用的对象 ID。
    5. 完成后,在工具栏上,选择“ 保存”。

    有关详细信息,请参阅:
    - 查找用户的重要标识符
    - Microsoft Entra ID 中的应用程序和服务主体对象
    标准 托管身份、简易验证(应用服务身份验证)
  2. 强制实施需要身份验证的任何访问模式。

  3. (可选)通过禁用或重新生成任何未使用的 SAS URL 来锁定任何触发器终结点 URL。

  4. 若要在网站或任何其他位置中包含外部聊天客户端界面以支持人工交互,请按照以下步骤获取聊天客户端 URL 并在 iFrame HTML 元素 中嵌入 URL:

    1. 在设计器工具栏或工作流边栏上,选择 “聊天”。

    2. “概要” 部分中,复制或选择 “聊天客户端 URL ”链接,该链接将在新的浏览器选项卡中打开。

    3. iFrame HTML 元素中嵌入聊天客户端 URL,该元素使用以下格式:

      Workflow iFrame HTML 元素
      消耗 <iframe src="https://agents.<region>.logic.azure.com/scaleunits/<scale-unit-ID>/flows/<workflow-ID>/agentChat/IFrame" title="<chat-client-name>"></iframe>
      标准 <iframe src="https://<logic-app-name>.azurewebsites.net/api/agentsChat/<workflow-name>/IFrame" title="<chat-client-name>"></iframe>

排查身份验证迁移问题

下表描述了在尝试从开发人员密钥迁移到 Easy Auth 时可能会遇到的常见问题、可能的原因以及可以执行的作:

症状 可能的原因 Action
门户测试工作,但外部调用获得 401 响应。 外部调用没有有效的签名 SAS 令牌或简易身份验证访问令牌(仅限标准工作流)。 将工作流触发器 URL 与已签名的 SAS 配合使用或设置简易身份验证(仅限标准工作流)。
设计器测试工作,但 Azure API 管理调用失败。 API 管理调用缺少预期的标头信息。 在 API 管理策略中添加 OAuth 2.0 令牌获取,或使用受支持的托管标识身份验证。
角色更改后访问不一致。 Azure 门户中的缓存会话 - 注销并重新登录。

- 获取新的令牌。

故障排查

本部分介绍如何帮助解决生成或运行代理工作流时可能遇到的错误或问题。

查看工具执行数据

工作流运行历史记录提供了有用的信息,可帮助你了解特定运行期间发生的情况。 对于代理工作流,可以找到特定代理循环迭代的工具执行输入和输出。

  1. 在工作流菜单上的 “工具”下,选择“ 运行历史记录 ”以打开 “运行历史记录 ”页。

  2. 在“ 运行历史记录 ”选项卡上的 “标识符 ”列中,选择所需的工作流运行。

    此时会打开监视视图以显示每个步骤的状态。

  3. 选择要检查的代理。 右侧会显示 “代理日志 ”窗格。

    此窗格显示代理日志,包括交互期间的工具执行。

  4. 若要在特定点获取工具执行数据,请在代理日志中找到该点,然后选择工具执行参考,例如:

    屏幕截图显示了代理日志和所选工具执行链接。

    这个操作会将您切换到监控视图中的匹配工具。 代理显示当前迭代次数。

  5. 在监控视图中,选择带有您要查看的输入、输出和属性的代理或动作。

    以下示例显示了先前所选工具执行的选定操作:

    屏幕截图显示了监视视图、当前代理循环迭代以及选定动作在此时的输入和输出。

    如果选择代理,可以查看传入模型并从模型返回的以下信息,例如:

    • 传入模型的输入消息。
    • 从模型返回的输出消息。
    • 模型要求代理调用的工具。
    • 传回模型的工具结果。
    • 每个请求使用的令牌数。
  6. 若要查看其他代理循环迭代,请在代理中选择向左或向右箭头。

Application Insights 中的日志

如果为工作流设置了 Application Insights 或高级遥测,则可以像查看任何其他操作一样查看代理事件的日志。 有关详细信息,请参阅 在 Azure Logic Apps 的标准工作流中启用并查看 Application Insights 中增强的遥测

超出模型最大上下文长度

如果代理的日志历史记录超过模型的 上下文长度或输入令牌的最大数目,则会收到类似于以下示例的错误:

此模型的最大上下文长度为 4097 个标记。 但是,你请求了 4927 个令牌(消息中 3927 个,完成时为 1000 个)。 请减少消息长度或完成。

尝试降低代理在日志中保留令牌数或消息数的上限,以便在下一次交互中传递给模型。 对于此示例,可以选择 “减少令牌计数 ”并将 “最大令牌计数 ”设置为错误规定的最大上下文长度( 即 4097)下面的数字。

有关详细信息,请参阅 管理聊天历史记录上下文长度

清理示例资源

如果不需要为示例创建的资源,请确保删除资源,以免继续收费。 可以按照以下步骤删除包含这些资源的资源组,也可以单独删除每个资源。

  1. 在 Azure 搜索框中,输入 资源组,然后选择 资源组

  2. 查找并选择包含此示例的资源的资源组。

  3. 在“ 概述 ”页上,选择“ 删除资源组”。

  4. 出现确认窗格时,输入资源组名称,然后选择“ 删除”。