向自定义代理添加工具

工具是构建模块,让你的代理能够与外部系统交互。 工具扩展了代理的功能,使代理能够响应用户请求或自主触发时执行各种作。 每个工具都表示代理可执行的特定功能。 例如,你可以为你的代理人配备执行以下任务的工具:

  • 使用 Office 365 Outlook 连接器发送电子邮件
  • 检查当前天气状况和预报
  • 从 Dataverse 读取和写入数据
  • 读取并发布消息到 Teams

向代理添加工具的机制

可以通过添加一个或多个 工具来扩展自定义代理的功能。 您的智能体可以使用工具来使用生成式业务流程自动对用户做出响应。 你也可以在 主题内明确调用工具。

使用 生成业务流程 (默认处于活动状态),代理可以自动选择最合适的工具或主题,或者跨知识进行搜索,以响应用户。 此编排模式可创建更动态和更智能的对话体验。

在经典模式下(生成编排已关闭),代理只能通过使用主题来响应用户。 但是,你仍然可以设计你的代理,使其能够显式地从主题中调用工具。

可通过多种机制将工具添加到代理:

  • 连接器:使用 Power Platform 连接器连接专有 API 和服务,以提取数据或执行操作。
    • 预生成连接器:从一系列预设连接中进行选择,从Microsoft和非Microsoft服务中选择成千上万的常用 API。
    • 自定义连接器:定义与自定义服务或系统的连接,以使用 Power Platform 连接器启用自定义工具选项。 连接器需要查看和共享组织的权限,以便智能体使用连接器。
  • 智能体流程:定义智能体流程,包含一个或多个待执行的操作。
  • 提示:基于单轮模型提示,可引用您提供的知识并生成代码以分析数据。
  • REST API:定义与 REST API 的连接,选择一个或多个 API 端点和方法作为工具添加。
  • 模型上下文协议:连接至 MCP 服务器以访问工具和资源。
  • 计算机操作:使智能体能够与任何具有图形用户界面的系统交互,包括网站和桌面应用程序,可执行按钮选择、菜单选择以及在屏幕字段中输入文本等操作。

有另外两种机制可以用来为智能体添加类似工具的行为。

  • 技能:承载一组相关工具的容器。
  • 客户端工具:将事件活动发送到客户端,以便客户端执行作并返回响应。

有关技能和客户端工具的详细信息,请参阅 “相关内容 ”部分中的链接。

在代理级别创建和添加新工具

直接在 Copilot Studio 中创建新工具简化了开发过程,并确保与代理正确集成。 添加到智能体的工具可在整个智能体对话中用于自动业务流程。

  1. 在左侧导航窗格中选择智能体,然后从列表中选择智能体,打开智能体。

  2. 转到代理的 “工具 ”页。

  3. 选择 “添加工具”。

  4. “添加工具 ”窗格中,选择“ 新建”工具

  5. 从显示的列表中选择要添加的工具类型:

    • Prompt
    • 智能体流
    • 计算机使用
    • 自定义连接器
    • 模型上下文协议
    • REST API

    截图展示为智能体添加新工具类型的选择界面

  6. 执行特定于所选工具类型的配置步骤。 例如,如果选择 “提示”,则必须执行以下步骤:

    • 定义提示模板和说明
    • 指定输入参数
    • 配置知识源
    • 设置响应格式和约束
  7. 根据需要选择保存发布创建新工具。

  8. 选择 “添加并配置”。 工具已添加至您的智能体。 工具配置页面随即显示。 您可在此查看和更改工具配置

可以在代理的 “工具” 页上看到新工具。

查看和更改工具配置

可以随时查看和编辑工具的配置:转到代理的 “工具” 页,然后从工具列表中选择该工具。

工具配置页面随即打开。 详细信息显示在三个部分中:

  • 详细信息
  • 输入
  • Completion

对于作为智能体工具连接的 MCP 服务器,其配置页面与其他工具类型不同。 详细信息部分结构相似,但输入完成部分被工具资源部分替代,显示 MCP 服务器可用工具及资源的相关信息。 有关详细信息,请参阅查看现有 MCP 服务器中的工具和资源

详细信息

详细信息 ”部分允许配置有关工具的基本详细信息。

可在此处查看和更新:

  • 名称:工具的名称。 这个名称显示在您代理的工具列表中。 选择一个明确指示工具函数的名称。

  • 说明:工具的说明。 生成式业务流程依赖于此说明来确定智能体何时应使用该工具。 明确、具体的说明,包括工具的作用以及何时应使用该工具。

  • 其他详细信息

    • 允许代理动态决定何时使用该工具:选择此选项后,代理可以使用生成业务流程来确定何时使用该工具。 如果未选择此选项,智能体仅在工具被从主题显式调用时使用该工具。 (默认情况下,启用生成编排时会选择此选项。)
    • 在运行之前询问最终用户:在最终用户聊天体验中,请在运行该工具之前请求代理进行确认。 此选项默认设置为 “否 ”。
    • 身份验证:选择使用用户(最终用户)或创建者(创建者提供)的凭据。 默认情况下,用户身份验证适用。
    • 描述:可选添加工具说明,智能体在运行工具时会向用户展示该说明。 此说明使用户知道他们被要求进行身份验证的内容。

输入

在这里,可以查看和配置工具的输入。 输入用于从用户收集信息,来填充工具所需的输入。 信息显示为表,每个输入对应一行。

默认情况下,每个输入的填充方式列值设置为动态填充 AI。 智能体尝试从可用上下文中提取值,例如,从用户的消息中提取值。 如果没有找到合适的值,它会生成一个问题,要求用户输入一个值。 选择自定义以访问输入收集和填充的更精细自定义选项:

  • 显示名称和说明:输入如何显示给用户。
  • 标识为:如何解释用户的响应,例如文本字符串或映射到预定义实体。
  • 重试逻辑:如果代理未标识用户语句中的实体,它可以再次提出问题。
  • 输入验证:在用户的输入上配置额外的验证行为,超出实体类型的默认值。

还可以选择使用显式值替代输入,而不是让代理提取它。 要设置替代,将填充方式设置为自定义值,并输入值、选择变量或使用 Power Fx 公式。 如果输入被覆盖,代理不会要求用户输入值。

Completion

在这里,您可以选择工具运行完成后要发生的事情。

可以让代理根据用户的查询和工具结果自动生成用户的上下文响应。

或者,您可以选择创作特定格式的响应来由工具返回。 可以使用变量选取器插入对工具输出变量的引用。 还可以使用 Power Fx 公式设置响应的格式。

“运行后”下,选择以下几个不同的选项之一,了解该工具在运行该工具后应如何响应用户:

  • 不响应(默认值):代理将工具输出合并到其响应中
  • 使用生成 AI 编写响应:让 AI 使用工具输出创建上下文响应
  • 发送特定响应:使用变量插入创作模板化响应
  • 发送自适应卡片:使用按钮和动作创建丰富的交互式响应

还可以配置要提供给代理和其他工具的输出变量。

工具选择和输入集合

在 Copilot Studio 中定义工具时,还提供描述其用途的信息。 此信息可帮助智能体识别工具使用时机。 工具描述还能协助编排器根据需要运用生成式 AI 生成问题以收集输入。 您的智能体可通过提问收集信息,填充工具所需的输入参数。 因此,您无需手动编写问题节点来收集所需的所有输入,例如流中的输入。 运行时由智能体协调器自动处理输入收集。

智能体会综合考量多项因素来确定工具选择:

  • 该工具的名称和说明
  • 当前对话上下文
  • 从用户消息派生的用户意图
  • 可用的输入和输出
  • 对话中之前的工具用法

使用生成模式时,默认情况下,工具会将信息返回给代理。 基于工具响应,智能体可针对用户查询生成上下文关联的回复。 或者,可以指示工具始终立即响应,即生成消息或创作显式消息。

小窍门

当使用工具生成的提问时,请告知用户部分对话由 AI 生成。

例如,在 对话启动 系统主题中添加额外的消息。 此主题决定了新对话开始时向用户显示的消息。

从主题中调用现有工具

您可以在主题内显式调用工具。 根据你的使用场景,你可能会把工具作为更广泛主题的一部分使用,这个主题需要多个节点。 或者,像下面的例子一样,给一个主题添加一个动作(工具)节点可能就足够了。

若要从主题中调用工具,请按以下步骤操作:

  1. 在 Copilot Studio 中,转到要编辑的智能体的主题页面。

  2. 创建新主题,然后为其命名,例如获取天气

  3. 添加相应的触发短语。 延续前文天气示例,触发短语可包含:

    • 是否下雨
    • 今日预报
    • 获取天气
    • 天气情况
  4. 选择 “添加节点 ”(+),然后选择“ 添加工具”。

  5. 从可用工具中选择该工具。 有三个选项卡显示不同类型的工具:

    • 基本工具
    • Connector
    • Tool

    您的操作节点现已添加到您的主题中。

  6. 选择“保存”

MCP 连接器信息

对于 MCP 连接器,可以查看 MCP 连接器提供的 MCP 工具和资源的名称和说明。 工具和资源的信息显示在表中,每个工具对应一行。

工具的身份验证注意事项

某些工具需要身份验证才能正常工作,例如动态提示或其他调用 Dataverse API 的工具。 适当的身份验证配置可确保安全性,同时保持流畅的用户体验。

工具始终在用户上下文中的代理运行时中运行,除非启用了身份验证,否则无法运行。 支持两种类型的身份验证方法:

  • 最终用户凭据:智能体使用用户的凭据与服务进行身份验证。 此方法可确保用户仅访问他们有权查看的数据。
  • 开发者提供的凭据:智能体使用其创建者的凭据与服务进行身份验证。 将此身份验证模式用于共享资源,或者当用户不需要个人访问时。

测试你的工具

使用生成编排,编排器在认为与用户查询相关时选择您的工具。

或者,可以从 主题中调用现有工具

在智能体中启用或禁用工具

您可在工具配置页面为智能体启用或禁用工具。 禁用工具将阻止智能体使用该工具,但工具仍与智能体保持连接,可后续重新启用。 当你向代理添加工具时,该工具默认是开启的。

在智能体中关闭工具:

  1. 进入智能体界面,选择对应智能体的工具页面。
  2. 选中目标工具进入配置页面。
  3. 在配置页面顶部,通过启用开关关闭该工具。
  4. 选择保存应用所作更改。

该工具仍会显示在智能体工具列表中,但处于关闭状态。

从智能体中删除工具

关闭工具仅阻止其使用,但保留后续重新启用的灵活性。 您也可永久移除智能体中的工具。 从智能体中删除工具:

  1. 进入智能体界面,选择对应智能体的工具页面。
  2. 在工具列表中找到目标工具,将鼠标悬停于工具名称上。 选择这三个点(...)。
  3. 选择 删除。 确认窗口随即打开。
  4. 选择删除选项移除该工具。

该工具将从智能体工具列表中消失。

注释

仅可在智能体工具页面删除工具。 无法从 Copilot Studio 主页的工具页面删除工具。

智能体中工具的限制

  • 使用生成式编排时,编排器每个代理最多可处理128个工具。 不过,为了获得最佳性能和效果,我们建议将代理中的工具数量限制在25-30个之间。
  • 在使用多代理编排时,子 代理拥有自己的编排,并可管理多达128个工具。