工具是使代理能够与外部系统交互的构建基块。 工具扩展代理的功能,允许它执行各种操作以响应用户请求或自动触发器。 每个工具都表示代理可执行的特定功能。 例如,你可以为代理配备可以执行类似以下任务的工具:
- 使用 Office 365 Outlook 连接器发送电子邮件
- 检查当前天气状况和预报
- 从 Dataverse 读取和写入数据
- 读取并发布消息到 Teams
用于添加工具的机制
可以通过添加一个或多个 工具来扩展自定义代理的功能。 您的智能体可以使用工具来使用生成式业务流程自动对用户做出响应。 还还可以在主题内显式调用工具。
使用 生成业务流程 (默认处于活动状态),代理可以自动选择最合适的工具或主题,或者跨知识进行搜索,以响应用户。 此编排模式可创建更动态和更智能的对话体验。
在经典模式下(生成编排已关闭),代理只能通过使用主题来响应用户。 但是,你仍然可以设计你的代理,使其能够显式地从主题中调用工具。
可通过多种机制将工具添加到代理:
- 预生成连接器:从一系列预设连接中进行选择,从Microsoft和非Microsoft服务中选择成千上万的常用 API。
- 自定义连接器:定义与自定义服务或系统的连接,以使用 Power Platform 连接器启用自定义工具选项。
- 代理流:定义代理流,包括一个或多个要执行的动作。
- 命令:单回合基于模型的命令,可以引用你提供的知识。
- REST API 连接:定义与 REST API 的连接,并选择要添加为工具的一个或多个 API 终结点和方法。
- 模型上下文协议 (MCP) 工具:连接到 MCP 服务器以访问工具。
- 计算机使用(预览版)代理:允许代理与具有图形用户界面的任何系统交互,用于网站和桌面应用、选择按钮、选择菜单以及将文本输入到屏幕上的字段中。
当我们讨论本文中的工具和文档的这一部分时,我们指的是此组中的机制之一。 可以向代理添加这些工具类型,并采用类似的方式进行配置。
有另外两种机制可以用来为智能体添加类似工具的行为。
- 技能:承载一组相关工具的容器。
- 客户端工具:将事件活动发送到客户端,以便客户端执行作并返回响应。
有关技能和客户端工具的详细信息,请参阅 “相关内容 ”部分中的链接。
在代理级别创建和添加新工具
直接在 Copilot Studio 中创建新工具简化了开发过程,并确保与代理正确集成。 添加到智能体的工具可在整个智能体对话中用于自动业务流程。
在左侧导航窗格中选择代理,然后从列表中选择代理,打开代理。
转到代理的 “工具 ”页。
选择 “添加工具”。
在 “添加工具 ”窗格中,选择“ 新建”工具。
从显示的列表中选择要添加的工具类型:
- 提示:创建 AI 驱动的文本生成和分析工具
- 代理流:使用条件逻辑生成多步骤进程
- 计算机使用:为旧系统启用 GUI 自动化
- 自定义连接器:连接到专有 API 和服务
- REST API:与 Web 服务的直接集成
执行特定于所选工具类型的配置步骤。 例如,如果选择 “提示”,则必须执行以下步骤:
- 定义提示模板和说明
- 指定输入参数
- 配置知识源
- 设置响应格式和约束
使用预览面板测试工具配置,以确保其按预期工作。
选择 “保存” 以创建新工具。
选择 “添加到代理 ”,将该工具添加到代理。 可以在代理的 “工具” 页上看到新工具。
查看和更改工具配置
可以随时查看和编辑工具的配置:转到代理的 “工具” 页,然后从工具列表中选择该工具。
此时会打开 “工具详细信息 ”页,其中显示了工具的配置。 详细信息显示在三个部分中:
- 详细信息
- 输入
- 完成(MCP 连接器的工具)
详细信息
“ 详细信息 ”部分允许配置有关工具的基本详细信息。
可在此处查看和更新:
名称:工具的名称。 这个名称显示在您代理的工具列表中。 选择一个明确指示工具函数的名称。
说明:工具的说明。 生成式业务流程依赖于此说明来确定智能体何时应使用该工具。 明确、具体的说明,包括工具的作用以及何时应使用该工具。
其他详细信息:
- 允许代理动态决定何时使用该工具:选择此选项后,代理可以使用生成业务流程来确定何时使用该工具。 如果未选择此选项,智能体仅在工具被从主题显式调用时使用该工具。 (默认情况下,启用生成编排时会选择此选项。)
- 在运行之前询问最终用户:在最终用户聊天体验中,请在运行该工具之前请求代理进行确认。 此选项默认设置为 “否 ”。
- 身份验证:选择是使用该工具的用户凭据还是创建者凭据。 默认情况下,用户身份验证适用。
- 说明:(可选)可以添加在运行该工具时向用户显示的工具的说明。 此说明使用户知道他们被要求进行身份验证的内容。
输入
在这里,可以查看和配置工具的输入。 输入用于从用户收集信息,来填充工具所需的输入。 信息显示为表,每个输入对应一行。
默认情况下,每个输入的填充方式列值设置为动态填充 AI。 代理尝试从可用上下文中提取值,例如,从用户的消息中提取值。 如果没有找到合适的值,它会生成一个问题,要求用户输入一个值。 选择自定义以访问输入收集和填充的更精细自定义选项:
- 显示名称和说明:输入如何显示给用户。
- 标识为:如何解释用户的响应,例如文本字符串或映射到预定义实体。
- 重试逻辑:如果代理未标识用户语句中的实体,它可以再次提出问题。
- 输入验证:在用户的输入上配置额外的验证行为,超出实体类型的默认值。
还可以选择使用显式值替代输入,而不是让代理提取它。 要设置替代,将填充方式设置为自定义值,并输入值、选择变量或使用 Power Fx 公式。 如果输入被覆盖,代理不会要求用户输入值。
补全
在这里,您可以选择工具运行完成后要发生的事情。
可以让代理根据用户的查询和工具结果自动生成用户的上下文响应。
或者,您可以选择创作特定格式的响应来由工具返回。 可以使用变量选取器插入对工具输出变量的引用。 还可以使用 Power Fx 公式设置响应的格式。
在 “运行后”下,选择以下几个不同的选项之一,了解该工具在运行该工具后应如何响应用户:
- 不响应(默认值):代理将工具输出合并到其响应中
- 使用生成 AI 编写响应:让 AI 使用工具输出创建上下文响应
- 发送特定响应:使用变量插入创作模板化响应
- 发送自适应卡片:使用按钮和动作创建丰富的交互式响应
还可以配置要提供给代理和其他工具的输出变量。
工具选择和输入集合
在 Copilot Studio 中定义工具时,还提供描述其用途的信息。 此信息允许代理识别何时使用该工具,并使用生成 AI 来生成问题。 这些问题用于收集信息,以填充执行该工具所需的输入。 因此,您无需手动编写问题节点来收集所需的所有输入,例如流中的输入。 输入收集在运行时为您处理。
代理使用多种因素来确定工具选择:
- 该工具的名称和说明
- 当前对话上下文
- 从用户消息派生的用户意图
- 可用的输入和输出
- 对话中之前的工具用法
默认情况下,使用生成模式时,工具会将其信息返回给代理,以便代理可以生成对用户查询的上下文响应。 或者,可以指示工具始终立即响应,即生成消息或创作显式消息。
从主题中调用现有工具
您可以在主题内显式调用工具。 根据具体使用情况,可以将你的工具用作更广泛主题中的一部分,该主题将使用更多节点。 或者,就像在天气示例中一样,向主题添加节点可能是你所需要的一切。
若要从主题中调用工具,请按以下步骤操作:
在 Copilot Studio 中,转到要编辑的代理的主题页。
创建一个新主题,然后将其命名为获取天气。
添加以下触发短语:
- 是否下雨
- 今日预报
- 获取天气
- 天气情况
选择 “添加节点 ”(+),然后选择“ 添加工具”。 从可用工具中选择该工具。 有三个选项卡显示不同类型的工具:
- 基本工具
- 连接器
- 工具
您的操作节点现已添加到您的主题中。
选择保存。
工具(仅限 MCP 连接器)
在 “工具”下,可以查看 MCP 连接器可用的工具的名称和说明。 这些工具显示在表格中,每个工具占一行。 对于每个工具,可以看到:
- 工具名称和版本
- 输入和输出参数
- 估计的执行时间
- 使用情况统计信息
工具的身份验证注意事项
某些工具需要身份验证才能正常工作,例如动态提示或其他调用 Dataverse API 的工具。 适当的身份验证配置可确保安全性,同时保持流畅的用户体验。
工具始终在用户上下文中的代理运行时中运行,除非启用了身份验证,否则无法运行。 支持两种类型的身份验证方法:
- 用户身份验证:代理使用用户的凭据向服务进行身份验证。 此方法可确保用户仅访问他们有权查看的数据。
- Copilot 作者身份验证:代理使用其作者的凭据向服务进行身份验证。 将此身份验证模式用于共享资源,或者当用户不需要个人访问时。
测试你的工具
使用生成编排,编排器在认为与用户查询相关时选择您的工具。
或者,可以从 主题中调用现有工具。