生成式编排的指导说明

本文提供有关在代理使用生成式业务流程时如何为代理编写最佳指令的指南。 在代理的概览页面上定义指令。

代理概览页面的屏幕截图,突出显示指令字段。

代理使用指令的方式如下:

  • 当代理决定需要调用哪些工具或知识来解决用户查询或自主触发器时,将使用指令。

  • 指令还可用于根据可用上下文为任何工具填充输入。

  • 指令用于代理向最终用户生成响应。

指令上下文

请务必了解,如果代理没有这些工具或知识源,代理无法按照说明使用 工具知识源 搜索。 首先,您必须使用适当的工具和知识库来配置代理程序。 例如,如果向代理提供搜索网站常见问题解答的说明,代理无法执行该操作,除非在主题中将网站常见问题解答添加为知识源。 确保为代理提供的任何说明都基于为其配置的工具和知识。

备注

为了使生成业务流程能够搜索特定的知识源,这些知识源必须合并到主题中的 生成答案节点 中。 否则,生成式编排会在代理级别搜索所有的知识源,也就是说,这些知识源在知识页面中列出。

基于对话的指令

下面的示例说明了如何使用约束回复格式指导构建基于对话的指令格式。 三者合而为一,为代理提供了一套完整的指令。

约束

Only respond to requests to provide information about educational, legal, wellness, wellbeing, health, dental care, and newborn benefits for employees and dependents. Respond to benefit types with details, health plan comparisons available for employees and dependents in tabular format. Answer in bold and underline fonts as necessary.

响应格式

Respond to inquiries by providing benefit types along with details, health plan comparisons available for employees and dependents in tabular format. Add a column for available options. Include insurance provider details and provide a link for enrollment. Answer in bold and underline fonts as necessary.

指南

Search only within specific country folders relevant to the employee's country.

帮助智能体确定要调用的适当工具和知识

在添加说明以调用代理的正确工具和知识源之前,请确保每个工具和知识源都遵循 创作说明的最佳做法。 为了达到最佳效果,名称和描述必须准确且具体,因为代理使用这些字段来确定要调用什么。 此外,如果您发现代理在错误的时间调用了这些操作和知识源,请使用描述来说明不要做的事情。

无需在说明中定义可用的工具或知识源,因为此信息已可供代理使用。 可以在编写说明时使用 / ,以指定代理的特定工具、主题或变量或 Power Fx 表达式。 但是,您的代理还会使用工具或知识源的名称和说明来确定应使用哪些,因此无需为代理指定特定名称。

相反,只有在正确的工具或知识源可能不明确的情况下,您想给智能体提示时,才需要添加说明。 还可以提供引用多个工具或知识源的说明。

Use the FAQ documents only if the question is not relevant to Hours, Appointments, or Billing.

Only use the ticket creation topic for creating tickets, for other requests related to fixing issues, use the troubleshooting topic.

帮助智能体填写工具输入

代理可能会调用具有需要填充的输入参数的工具。 在这种情况下,它使用对话历史记录和之前对工具和知识源的调用来确定输入应是什么。 如果它无法识别所有输入,它会要求用户帮助填写缺少的信息。

在此场景中,首先确保根据您期望智能体处理的交互类型为智能体配置输入。 然后,只有在智能体应填写最佳可用输入的情况下,它才会使用指令来帮助填写输入。

Use the email address from the contact field of the lead when helping the user to draft an email to follow-up on a lead.

帮助智能体生成回复

首先,您可以使用指令为代理提供防护,让它知道何时不应作出回应。 代理在调用与当前方案相关的工具或知识源后,将生成响应。 如果启用 “允许 AI 使用自己的常规知识”(预览版),代理可以生成响应,而无需调用任何工具或知识源。

以下是一个如何使用防护指令的示例:

Only respond to messages that are relevant to Contoso corporation and ordering coffee. Otherwise tell the user you can't help with their inquiry.

如果您有一个不希望代理讨论的特定主题,可以为此场景添加一个包含手动创作回复的主题。 此方法可避免仅依赖指令来规避该主题。

其次,您可以向代理提供应该如何设置回复格式或构建回复的指令。 例如:

Always give responses about order status in a table format.

如果您希望代理专业且说话礼貌,不一定要为这种语气提供指令,因为这是代理的默认行为。 仅针对特定用例提供语气指令。

基于自主性的指令

下图说明了智能体根据自主指令执行的步骤:

图示显示了示例设备采购智能体自动执行设备订购流程的四步流程。

帮助代理选择正确的工具序列

您的智能体会尝试选择正确的工具,而且一般都会成功,但在指令中明确说明这一点会有所帮助。 例如,如果希望代理使用“创建订单”工具在 Dataverse 中创建采购订单记录,请使用 / 该特定工具并将其添加到说明中。 在此方案中,请提供明确的说明:“当用户提供其首选笔记本电脑的详细信息时,请使用 /Purchase Order 创建采购订单。在将大量工具(超过 5 个)添加到代理时,此特定性非常有用。

编号或项目符号会列出您的指定,并指定必须按顺序执行指令。 您还可以应用 Markdown 格式,这不仅可以提高指令的可读性,还可以帮助生成式 AI 理解和处理您的指令。

备注

如果您不希望智能体联系用户,在说明中明确说明这一点可能会有所帮助。 例如,“不要向用户询问任何详细信息。”

在说明中命名工具时,请确保使用与工具本身完全相同的名称。 命名的细微差异会对结果产生负面影响。

如果您需要代理在响应用户输入时非常具体,创建一个主题来处理此特定用例可能比较合适。 例如,创建一个主题,该主题可识别类似于“还有其他可用选项吗?”然后,代理特别回应,“目前没有其他可用选项,请从可用列表中选择”。

代理使用该工具的说明来了解为何使用该工具。 填写工具说明能极大地帮助智能体选择正确的工具。 填充工具说明以在调用特定工具时通知代理,例如“当用户要求检索客户预订历史记录时调用此工具”。

触发器可能会受到越狱攻击。 攻击者利用此类攻击通过触发器有效负载向智能体发送要求其执行的指令。 例如,攻击者可能会要求代理通过电子邮件发送代理可以访问的信息。

若要保护代理免受此风险,请确保其说明包含以下信息:

  • 限制引用知识源时代理应采用的工具。 例如,仅在检查知识源的上下文后才通过电子邮件发送信息。

  • 限制应用于工具的参数。 例如,仅向指定的个人列表发送电子邮件。

如果您注意到智能体阻止了内容筛选的正常行为,可以更新智能体指令,指示该行为应正常发生。

写作说明的语言

使用获取使用等动词检索和解析数据,使用依据利用等动词对结果采取行动。

以下动词通常用于创建简单的指令:

目标 词汇表
条件 何时、如果、确保、比较
筛选器 从、包括、排除、比较、识别
数据​ 提供、检索、获取、使用、分析、提取
工具 通知、指导、询问、分配

帮助智能体选择正确的知识源

为帮助确保智能体成功从知识源检索信息,请务必在说明中说明要查找哪些文档,例如“在知识库中搜索员工入职文档”。虽然这种类型的特异性并不是绝对必要的,但它对指导您的智能体可能会有所帮助。 当智能体需要搜索大量文档时,这种特异性非常有用。

包括触发器

修改默认触发器有效载荷,帮助代理了解触发器被调用时要做什么。 使用变量来减小有效负载的大小。 创建触发器,然后使用 Power Automate 编辑它以选择特定变量。 例如,仅发送收到的电子邮件的主题字段,而不是发送整个邮件有效负载。

备注

触发器不能直接在 Copilot Studio 中编辑。 创建后,必须通过 Power Automate 进行编辑。

在触发器指令中告诉智能体如何处理触发器有效负载会很有帮助。 例如,如果您的智能体帮助新员工加入您的公司,可以将触发器有效负载定义为“帮助以下员工入职”。此指令之后将跟随触发器的正文,其中包含新员工的详细信息。 当您的代理收到有效负载后,它会立即按照您定义的代理指定处理员工入职。

多个触发器

您可以添加多个触发器,每个触发器都有自己的指令。 这些指令可以补充您的整体代理指令,也可以用于同一代理的不同用例,如处理员工入职和事件报告。 确保每个触发器有效载荷都能指示代理在触发器触发时要做什么,可能会有所帮助。

电子邮件格式

指示您的代理“使用电子邮件正文内容的富文本格式发送电子邮件”或类似措辞。 还可以在工具说明中添加此请求,以便进行额外强调。

说明如何在自动生成的电子邮件响应中设置日期格式的代理工具的屏幕截图。