Human In The Loop

在之前的教程中,我们探讨了智能体如何动态使用工具来回答查询或完成分配的任务。人机协作通过允许智能体在继续执行之前请求人工输入、批准或反馈,增加了一层控制。

有两种方式可以使用人工干预:

  • 使用人工输入节点来暂停执行 为代理工具启用“需要人工输入”选项

人工输入节点

人工输入节点允许暂停执行,只有在人工提供批准或拒绝操作的反馈后才能恢复执行。

在本教程中,我们将学习如何创建一个自动回复邮件代理,该代理会在发送邮件前询问用户反馈。

概述

本用例的目标是创建一个智能电子邮件回复系统,该系统:

  1. 接收收到的电子邮件咨询

  2. 利用人工智能生成专业的电子邮件回复

  3. 在发送前请求人工审核

  4. 允许进行修订和完善

  5. 自动发送已批准的邮件

步骤1:设置起始节点

  1. Start节点拖放到画布上。这将是接收电子邮件数据的入口点。

  2. 使用以下设置配置Start节点:

    • 输入类型:选择“表单输入”以捕获结构化的电子邮件数据

    • 表单标题:“电子邮件咨询”

    • 表格说明:“收到的电子邮件咨询”

  3. 添加以下表单输入类型:

    • Subject(字符串):用于捕获电子邮件的主题行

    • Body(字符串):用于捕获电子邮件内容

    • From(字符串):用于捕获发件人的电子邮件地址

步骤2:创建电子邮件回复代理

  1. 添加一个Agent节点,并将其连接到Start节点。该代理将分析收到的电子邮件并生成适当的回复。

  2. 添加系统消息,例如:

    你是一名在Flowise股份有限公司工作的客户支持代理。请针对用户的询问撰写一封专业的电子邮件回复。使用网络搜索工具获取更多关于潜在客户的详细信息。
    
    请始终以Flowise客户支持代表Samantha的身份回复。不要使用占位符。
  3. 添加以下工具以增强代理的能力:

    • 谷歌自定义搜索:用于研究客户信息并提供相关上下文

    • 当前日期时间:在响应中包含准确的时间戳

步骤 3:添加人工审核输入

  1. 添加一个人工输入节点,并将其连接到电子邮件回复代理。这将创建人工介入检查点。

  2. 配置“人工输入”节点:

    • 描述类型:“固定”

    • 描述:“您确定要继续吗?”

    • 启用反馈:True(允许人类提供额外反馈)

  3. 此节点将暂停工作流程,并将人工智能生成的回复呈现给人工审核员。审核员可以选择:

    • 继续: 批准回复并继续发送电子邮件

    • 拒绝:发送反馈并返回给客服代表以供改进

步骤4:设置环回机制

  1. 添加一个循环节点来处理拒绝场景。这样,工作流程就可以返回到电子邮件回复代理进行改进。

  2. 配置循环节点:

    • 回环至:从下拉菜单中选择“电子邮件回复代理”

    • 最大循环次数:5(防止无限循环)

  3. 将人工输入节点的“拒绝”输出连接到此循环节点。当人工拒绝响应时,工作流将返回给代理,并附上改进反馈。

步骤5:创建电子邮件主题和正文生成器

  1. 添加一个LLM节点,并将其连接到“人工输入”节点的“继续”输出端。该节点将把已批准的回复整理成适当的电子邮件格式。

  2. 设置JSON结构化输出:

    • :"subject",类型:"string",描述:"电子邮件的主题"

    • :"body",类型:"字符串",描述:"电子邮件正文"

步骤6:设置电子邮件发送

  1. 添加一个工具节点,并将其连接到“电子邮件主题与正文大型语言模型(LLM)节点”。这将负责实际的电子邮件发送工作。

  2. 配置工具节点:

    • 工具:从可用工具中选择“Gmail”

    • 消息操作:"sendMessage"

  3. 配置工具输入参数:

    • 收件人:使用变量{{ $form.from }}来回复原始发件人

    • 主题:使用{{ llmAgentflow_0.output.subject }}从步骤5获取生成的主题

    • 正文:使用{{ llmAgentflow_0.output.body }}从步骤5获取生成的电子邮件正文

工作流程如何运作

当收到一封电子邮件询问时,会发生以下情况:

  1. 表单输入:系统会捕获电子邮件的主题、正文和发件人信息

  2. 人工智能分析:电子邮件回复代理会对询问进行分析,并通过网络搜索获取更多上下文信息,从而生成专业回复

  3. 人工审核:工作流程暂停,并将AI生成的回复呈现给人工审核员

  4. 决策点:人类可以选择:

    • 批准:响应将进入邮件格式化并发送的流程

    • 拒绝:响应返回给代理,并提供改进反馈

  5. 电子邮件格式化:若获得批准,回复将被整理成具有主题和正文的规范电子邮件格式

  6. 邮件发送:最终邮件将通过Gmail自动发送给原始发件人

测试工作流程

  1. 通过填写表格并附上示例电子邮件咨询来启动工作流程

  1. 审查人工输入步骤中的代理响应

  1. 拒绝该回应并提供更多反馈:

  1. 审查代理人修改后的回复:

  1. 继续操作并验证邮件是否正确发送:

完整流程结构

{
  "name": "Human In The Loop Agent",
  "description": "一个用于人机交互的代理,用于在特定任务中模拟人类行为。",
  "type": "agent"
}

智能体工具需要人工输入

当智能体决定使用工具时,底层会发生以下情况:

  1. 针对用户查询,大型语言模型(LLM)会判断是否需要调用工具。

  2. 如果从大型语言模型(LLM)的输出响应中识别出工具调用,Flowise会定位到匹配的工具并执行相应的功能。

  3. 工具执行的结果被返回给大型语言模型(LLM)。

  4. 然后,大型语言模型(LLM)会判断是否需要调用其他工具,或者它是否已拥有足够的信息来返回最终响应。

当“需要人工输入”功能启用时,我们会在检测到工具调用后增加一个额外的检查点:

这对于下单、预订、会议、发送电子邮件等需要人工确认和审核的敏感工具调用至关重要。

我们可以使用上述的示例电子邮件回复系统,但将其简化至仅包含一个代理。

配置

  1. 添加一个Agent节点,并将其连接到Start节点。这个单一的智能体将同时处理电子邮件分析和人工审批。

  2. 向Agent添加一条系统消息,例如:

    你是一名在Flowise股份有限公司工作的客户支持代理。针对用户的询问,请撰写一封专业的电子邮件草稿进行回复。使用网络搜索工具获取更多关于潜在客户的详细信息。
    
    请始终以Flowise客户支持代表Samantha的身份回复。不要使用占位符。
    
    今天的日期是{{ current_date_time }}。
  3. 添加以下工具:

    • 谷歌自定义搜索:用于研究客户信息

    • Gmail:用于创建需人工审核的电子邮件草稿

  4. 配置Gmail工具:

    • Gmail类型:“草稿”

    • 草稿操作:"createDraft"

    • 需要人工输入:✅ 启用此选项 - 这是创建HITL功能的关键特性

简化流程的工作原理

  1. 表单输入:用户提交电子邮件咨询详情

  2. 人工智能分析:该代理会分析电子邮件,并使用谷歌搜索来获取更多上下文信息

  3. 草稿创建:当代理尝试创建Gmail草稿时,工作流程会暂停

  4. 人工审核:系统将草稿邮件呈现给人工进行审核

  5. 决定:人类可以批准(创建草稿)或拒绝(提供反馈并重试)

测试代理

  1. 使用示例电子邮件咨询填写表格,以启动工作流程

  2. 在代理创建Gmail草稿之前,它会询问用户是批准还是拒绝。

  1. 如果工具获得批准,客服代表将调用该工具并在Gmail中创建草稿。客服代表足够聪明,能够确定电子邮件的适当主题、正文和收件人。

完整流程结构

{"name": "Email Agent", "description": "一个用于发送电子邮件的代理", "version": "1.0.0", "author": "zhangyingjie", "license": "MIT"}

共享执行轨迹以供外部审查和批准

  1. 在控制面板左侧边栏,点击 执行情况

  2. 找到执行轨迹,然后点击分享

  1. 执行轨迹现在可通过公开链接获取。您可以与他人分享此链接以供查看。

  1. Flowise以外的用户可以拒绝或批准:

Last updated