Human In The Loop
在之前的教程中,我们探讨了智能体如何动态使用工具来回答查询或完成分配的任务。人机协作通过允许智能体在继续执行之前请求人工输入、批准或反馈,增加了一层控制。
有两种方式可以使用人工干预:
使用人工输入节点来暂停执行 为代理工具启用“需要人工输入”选项
人工输入节点
人工输入节点允许暂停执行,只有在人工提供批准或拒绝操作的反馈后才能恢复执行。
在本教程中,我们将学习如何创建一个自动回复邮件代理,该代理会在发送邮件前询问用户反馈。
概述
本用例的目标是创建一个智能电子邮件回复系统,该系统:
接收收到的电子邮件咨询
利用人工智能生成专业的电子邮件回复
在发送前请求人工审核
允许进行修订和完善
自动发送已批准的邮件

步骤1:设置起始节点
将Start节点拖放到画布上。这将是接收电子邮件数据的入口点。
使用以下设置配置Start节点:
输入类型:选择“表单输入”以捕获结构化的电子邮件数据
表单标题:“电子邮件咨询”
表格说明:“收到的电子邮件咨询”
添加以下表单输入类型:
Subject(字符串):用于捕获电子邮件的主题行
Body(字符串):用于捕获电子邮件内容
From(字符串):用于捕获发件人的电子邮件地址

步骤2:创建电子邮件回复代理
添加一个Agent节点,并将其连接到Start节点。该代理将分析收到的电子邮件并生成适当的回复。
添加系统消息,例如:
你是一名在Flowise股份有限公司工作的客户支持代理。请针对用户的询问撰写一封专业的电子邮件回复。使用网络搜索工具获取更多关于潜在客户的详细信息。 请始终以Flowise客户支持代表Samantha的身份回复。不要使用占位符。添加以下工具以增强代理的能力:
谷歌自定义搜索:用于研究客户信息并提供相关上下文
当前日期时间:在响应中包含准确的时间戳

步骤 3:添加人工审核输入
添加一个人工输入节点,并将其连接到电子邮件回复代理。这将创建人工介入检查点。
配置“人工输入”节点:
描述类型:“固定”
描述:“您确定要继续吗?”
启用反馈:True(允许人类提供额外反馈)
此节点将暂停工作流程,并将人工智能生成的回复呈现给人工审核员。审核员可以选择:
继续: 批准回复并继续发送电子邮件
拒绝:发送反馈并返回给客服代表以供改进

步骤4:设置环回机制
添加一个循环节点来处理拒绝场景。这样,工作流程就可以返回到电子邮件回复代理进行改进。
配置循环节点:
回环至:从下拉菜单中选择“电子邮件回复代理”
最大循环次数:5(防止无限循环)
将人工输入节点的“拒绝”输出连接到此循环节点。当人工拒绝响应时,工作流将返回给代理,并附上改进反馈。

步骤5:创建电子邮件主题和正文生成器
添加一个LLM节点,并将其连接到“人工输入”节点的“继续”输出端。该节点将把已批准的回复整理成适当的电子邮件格式。
设置JSON结构化输出:
键:"subject",类型:"string",描述:"电子邮件的主题"
键:"body",类型:"字符串",描述:"电子邮件正文"

步骤6:设置电子邮件发送
添加一个工具节点,并将其连接到“电子邮件主题与正文大型语言模型(LLM)节点”。这将负责实际的电子邮件发送工作。
配置工具节点:
工具:从可用工具中选择“Gmail”
消息操作:"sendMessage"
配置工具输入参数:
收件人:使用变量
{{ $form.from }}来回复原始发件人主题:使用
{{ llmAgentflow_0.output.subject }}从步骤5获取生成的主题正文:使用
{{ llmAgentflow_0.output.body }}从步骤5获取生成的电子邮件正文

工作流程如何运作
当收到一封电子邮件询问时,会发生以下情况:
表单输入:系统会捕获电子邮件的主题、正文和发件人信息
人工智能分析:电子邮件回复代理会对询问进行分析,并通过网络搜索获取更多上下文信息,从而生成专业回复
人工审核:工作流程暂停,并将AI生成的回复呈现给人工审核员
决策点:人类可以选择:
批准:响应将进入邮件格式化并发送的流程
拒绝:响应返回给代理,并提供改进反馈
电子邮件格式化:若获得批准,回复将被整理成具有主题和正文的规范电子邮件格式
邮件发送:最终邮件将通过Gmail自动发送给原始发件人
测试工作流程
通过填写表格并附上示例电子邮件咨询来启动工作流程

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

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

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

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

完整流程结构
{
"name": "Human In The Loop Agent",
"description": "一个用于人机交互的代理,用于在特定任务中模拟人类行为。",
"type": "agent"
}智能体工具需要人工输入
当智能体决定使用工具时,底层会发生以下情况:
针对用户查询,大型语言模型(LLM)会判断是否需要调用工具。
如果从大型语言模型(LLM)的输出响应中识别出工具调用,Flowise会定位到匹配的工具并执行相应的功能。
工具执行的结果被返回给大型语言模型(LLM)。
然后,大型语言模型(LLM)会判断是否需要调用其他工具,或者它是否已拥有足够的信息来返回最终响应。

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

这对于下单、预订、会议、发送电子邮件等需要人工确认和审核的敏感工具调用至关重要。
我们可以使用上述的示例电子邮件回复系统,但将其简化至仅包含一个代理。

配置
添加一个Agent节点,并将其连接到Start节点。这个单一的智能体将同时处理电子邮件分析和人工审批。
向Agent添加一条系统消息,例如:
你是一名在Flowise股份有限公司工作的客户支持代理。针对用户的询问,请撰写一封专业的电子邮件草稿进行回复。使用网络搜索工具获取更多关于潜在客户的详细信息。 请始终以Flowise客户支持代表Samantha的身份回复。不要使用占位符。 今天的日期是{{ current_date_time }}。添加以下工具:
谷歌自定义搜索:用于研究客户信息
Gmail:用于创建需人工审核的电子邮件草稿
配置Gmail工具:
Gmail类型:“草稿”
草稿操作:"createDraft"
需要人工输入:✅ 启用此选项 - 这是创建HITL功能的关键特性

简化流程的工作原理
表单输入:用户提交电子邮件咨询详情
人工智能分析:该代理会分析电子邮件,并使用谷歌搜索来获取更多上下文信息
草稿创建:当代理尝试创建Gmail草稿时,工作流程会暂停
人工审核:系统将草稿邮件呈现给人工进行审核
决定:人类可以批准(创建草稿)或拒绝(提供反馈并重试)
测试代理
使用示例电子邮件咨询填写表格,以启动工作流程

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

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

完整流程结构
{"name": "Email Agent", "description": "一个用于发送电子邮件的代理", "version": "1.0.0", "author": "zhangyingjie", "license": "MIT"}共享执行轨迹以供外部审查和批准
在控制面板左侧边栏,点击 执行情况
找到执行轨迹,然后点击分享

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

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

Last updated