跳到主要内容

AI 工具调用的人工审核(Human-in-the-loop)

你可以要求 AI 智能体在执行特定工具之前必须经过人工审批。当某个工具需要人工审核时,工作流会暂停并等待相关人员执行以下操作之一:

  • 批准(Approve):工具使用 AI 指定的输入参数执行。
  • 拒绝(Deny):操作被取消,不会执行。

此功能允许对 AI 工作流中的工具调用进行选择性监督,更便于对高风险工具(如发送消息、修改记录或删除数据)实施额外的人工审核。

何时使用人工审核

人工审核(HITL)在以下情况下非常有用:

  • 工具执行不可逆操作:删除数据、发送外部通信或进行采购。
  • 存在合规要求:受监管行业可能要求对某些自动化操作进行人工审批。
  • 涉及高价值决策:对业务有重大影响的操作受益于人工监督。
  • 建立对 AI 工作流的信任:先启用人工审核,随着信心的增长逐步减少监督。

HITL 可以应用于连接到 AI Agent 节点的所有工具,也可以仅应用于选定的单个工具,提供比一般输出控制更精细的控制能力。

工作原理

  1. AI 智能体判断需要使用一个已启用人工审核的工具。
  2. 工作流暂停,并通过你配置的渠道(如 Slack、Telegram 或 n8n 聊天界面)发送审批请求。
  3. 人工审核者收到请求,其中显示了 AI 想要使用的工具及其参数。
  4. 审核者批准或拒绝该请求。
  5. 批准时,工具使用 AI 指定的输入参数执行;拒绝时,操作被取消,AI 会被告知拒绝结果。

不同的审批渠道

审核步骤可以通过与主要交互不同的渠道进行。例如,用户通过 n8n 聊天界面与 AI 智能体交互,但审批请求被路由到 Slack 中的特定人员。

为工具设置人工审核

步骤一:打开工具面板

在你的工作流中,点击 AI Agent 节点上的 Tools(工具) 连接器,打开工具面板。

步骤二:添加人工审核步骤

  1. 在工具面板中,找到 Human review(人工审核) 部分。
  2. 从可用选项中选择你偏好的审批渠道。
  3. 使用适当的凭据和设置配置审批渠道。

步骤三:将工具连接到审核步骤

  1. 将需要审批的工具添加到人工审核步骤的工具连接器。
  2. 像平常一样配置每个工具。

可用审批渠道

你可以使用以下任意服务作为人工审核渠道:

渠道描述
Chatn8n 内置聊天界面
Slack向 Slack 频道或私信发送审批请求
Discord向 Discord 频道发送审批请求
Telegram通过 Telegram 发送审批请求
Microsoft Teams向 Teams 频道或聊天发送审批请求
Gmail通过邮件发送审批请求
WhatsApp Business Cloud通过 WhatsApp 发送审批请求
Google Chat向 Google Chat 发送审批请求
Microsoft Outlook通过 Outlook 邮件发送审批请求

在人工审核工具中使用表达式

$tool 变量

配置人工审核步骤时,你可以使用 $tool 变量为审核者构建一条包含上下文信息的消息,说明 AI 正在尝试执行的操作。该变量有两个属性:

属性描述
$tool.nameAI 智能体尝试调用的工具名称,即该节点在 n8n 画布上显示的名称。
$tool.parametersAI 智能体在工具调用中尝试使用的参数,包括工具输入 Schema 中通过 $fromAI() 表达式配置的所有字段。

消息配置示例:

AI 希望使用 {{ $tool.name }},参数如下:
{{ $tool.parameters }}

这有助于审核者在批准或拒绝请求之前,清楚了解 AI 正在尝试执行的操作。

在人工审核工具中使用 $fromAI()

$fromAI() 函数适用于连接到人工审核步骤的工具。这意味着 AI 可以动态指定工具参数,而这些 AI 确定的值正是人工审核者看到并审批的内容。

系统提示词最佳实践

为了让 AI 智能体能够正确理解并处理工具调用被拒绝的情形,请在你的系统提示词中包含关于人工审核设置的信息。

配置系统提示词的必要性

请确保在系统提示词中包含工具设置和人工审核步骤的相关信息。这有助于 AI 了解哪些工具需要审批,以及如何优雅地响应工具调用被拒绝的情况。

建议包含以下内容:

  • 哪些工具需要人工审批
  • 审批被拒绝时会发生什么
  • AI 应如何响应拒绝(例如,通知用户、建议替代方案或请求澄清)

链式调用与子智能体

当将一个 AI 智能体用作另一个 AI 智能体的工具时,子智能体中的人工审核步骤可以正常工作。

相关资源

  • AI Agent 节点
  • Tools Agent
  • AI 中的工具是什么?
  • 让 AI 通过 $fromAI() 指定工具参数