示例

每个代理都应具有一个或多个样本。 这些示例对话示例 在最终用户和代理应用之间来回切换 包括代理应用执行的对话和操作。 这些都是 少样本提示示例 大型语言模型。

控制台提供了一个界面 供您输入操作

多语言代理应用

如果您希望代理应用处理多种语言, 您的示例应该使用每种语言。

输入摘要和输出摘要示例

除了输入和输出参数外,代理还支持接收 input summary 并发出 output summary 以交换信息 与其他代理进行通信摘要有助于传递 信息,而参数有助于传递 结构化、明确定义的字段。参数是 在流和代理之间交换数据的方法。

向样本添加相关的输入摘要,以调节代理以调整其 根据运行时的输入摘要来执行相关操作。 添加输出摘要,包括有关示例的相关准确详细信息 向客服人员展示需要总结的重要细节。

状态示例

在对话中的指定时刻,客服人员将处于以下状态之一:

  • OK:代理已成功实现其目标,控制权现在将转移给父级代理。
  • CANCELLED:用户决定不继续完成分配给代理的目标。 此控件现在将转移给父级代理。如果父级代理是 CX 流, 用户输入内容的意图。
  • FAILED:由于出现错误(例如工具),代理无法继续完成目标 返回 500 错误)。会话将结束,状态为“失败。一个 EndInteraction 消息将会添加到响应中。
  • ESCALATED:客服人员认为无法实现目标,需要 将情况上报给真人。会话结束,状态将升级。 EndInteraction 消息将会添加到响应中。
  • PENDING:对话仍在代理内继续。

顶级示例及其代理调用应使用与它们所引用的代理相对应的状态来表示。

选择策略

选择策略用于控制每个样本 包含的信息。

  • DEFAULT:如果提示接近词元限制,则可以省略此示例。
  • STATIC:始终包含示例。
  • NEVER:提示中从不包含该示例。该示例的 不会对代理的表现产生任何影响。

添加操作

代理中提供的示例由一系列操作组成。这些操作的组合可能有所不同,但它们主要描绘用户与代理之间的互动,以及为满足用户的查询或要求而在两者间执行的操作。

您可以通过以下两种方式向示例添加操作:

  • 要手动添加操作,请点击右侧窗格底部的 + 按钮,或将指针悬停在现有操作上时点击添加操作按钮。在点击 + 示例选项创建新示例时,或者修改现有示例时,您可以使用这些选项。

  • 要根据现有的代理说明自动生成操作,请在右侧窗格底部的输入用户输入字段中输入用户输入。您可以在创建或修改示例时使用此选项。或者,当您在运行时在右侧的 Preview agent 窗格中测试代理时使用此选项。如需从预览代理窗格中将操作保存到示例,请从预览代理窗格左侧的调用列表中选择代理调用,然后点击保存示例

请务必检查自动生成的操作是否正确,并在必要时进行修改。对于示例很少或没有示例的代理来说,这一点尤为重要。

代理支持以下类型的操作:

代理响应

代理对用户查询的响应。

用户输入

用户查询。

工具使用

这是一个 tool 调用,用于获取完成用户查询所需的其他信息。此操作应指定以下详细信息:

  • Tool(工具):应调用的工具的名称。
  • Action:应调用的 OpenAPI 工具的操作的名称。对于数据存储工具函数工具,操作名称与工具名称相同。
  • 工具输入:要包含在工具调用中的输入。这些信息通常来自上一次与用户进行的对话。

    对于 Open API 工具POSTPUTPATCH 方法类型需要 requestBody JSON。

    createPet 操作的 Open API 工具 requestBody 输入示例:

    {
      "id": 1,
      "name": "Luna"
    }
    

    对于数据存储区工具,需要查询的示例 requestBody 以及 其他字段均为选填字段

    {
      "query": "Where is my nearest store?",
      "filter": "country: ANY(\"United States\")",
      "userMetadata": {
        "userCity": "San Fransisco",
      },
      "fallback": "We don't have any stores in your area."
    }
    
  • 工具输出:工具调用的响应。这是该工具对给定输入的有效 JSON 响应。对于 Open API tools,此错误也可能是字符串错误(例如“404 Not found”)。

    listPets 操作的 Open API 工具输出示例:

    {
      "pets": [
        {
          "id": 1,
          "name": "Luna"
        },
        {
          "id": 2,
          "name": "Charlie"
        }]
    }
    

    数据存储工具输出示例:

    {
      "answer": "Here's the address to your nearest store ...",
      "snippets": [
        {
          "title": "San Fransisco Downtown",
          "uri": "https://www.example.com/San_Fransisco_Downtown",
          "text": "Address for San Fransisco Downtown .."
        }
      ]
    }
    

为确保代理在发生故障时不会发生故障,还应添加一些示例来说明当工具调用失败时代理应如何响应。Open API tool 调用失败可在工具输出中表示为错误字符串(“404 not found”)。对于数据存储工具fallback 输入可用于指定在没有汇总答案时如何响应。

如果您希望数据存储区工具在代理响应中包含 URI,请添加包含您希望代理用于响应的 URI 的示例。如果此 URI 来自数据存储区工具,则数据存储区工具输出应包含一个与代理响应中的 URI 相匹配的 URI。请注意,在这种情况下不能使用 fallback,因为这会使 LLM 代理无法重新表述数据存储区工具的回答,以将 URI 包含在代理响应中。

包含工具使用操作的示例可能非常详细,并会导致输入令牌限制消耗增加。为了确保高效利用令牌,请确保工具输出简洁明了并包含与代理目标相关的信息。对于数据存储工具,请考虑从样本中移除代码段,因为它们会导致输入令牌消耗量较高。

代理调用

当代理应调用另一个代理来完成用户查询时,可以使用此操作。此操作应指定以下详细信息:

  • 代理 (Agent):要调用的代理的名称。
  • 代理调用输入摘要:前面对话中对被调用的代理有用的相关部分的摘要。
  • 输入参数 (Input parameters):要传递给代理的输入参数
  • 代理调用输出摘要:代理在达成目标时应生成的内容的摘要。
  • 输出参数:代理在达到目标时生成的输出参数