AI 工具调用的人工审核(Human-in-the-loop)
你可以要求 AI 智能体在执行特定工具之前必须经过人工审批。当某个工具需要人工审核时,工作流会暂停并等待相关人员执行以下操作之一:
- 批准(Approve):工具使用 AI 指定的输入参数执行。
- 拒绝(Deny):操作被取消,不会执行。
此功能允许对 AI 工作流中的工具调用进行选择性监督,更便于对高风险工具(如发送消息、修改记录或删除数据)实施额外的人工审核。
何时使用人工审核
人工审核(HITL)在以下情况下非常有用:
- 工具执行不可逆操作:删除数据、发送外部通信或进行采购。
- 存在合规要求:受监管行业可能要求对某些自动化操作进行人工审批。
- 涉及高价值决策:对业务有重大影响的操作受益于人工监督。
- 建立对 AI 工作流的信任:先启用人工审核,随着信心的增长逐步减少监督。
HITL 可以应用于连接到 AI Agent 节点的所有工具,也可以仅应用于选定的单个工具,提供比一般输出控制更精细的控制能力。
工作原理
- AI 智能体判断需要使用一个已启用人工审核的工具。
- 工作流暂停,并通过你配置的渠道(如 Slack、Telegram 或 n8n 聊天界面)发送审批请求。
- 人工审核者收到请求,其中显示了 AI 想要使用的工具及其参数。
- 审核者批准或拒绝该请求。
- 批准时,工具使用 AI 指定的输入参数执行;拒绝时,操作被取消,AI 会被告知拒绝结果。
不同的审批渠道
审核步骤可以通过与主要交互不同的渠道进行。例如,用户通过 n8n 聊天界面与 AI 智能体交互,但审批请求被路由到 Slack 中的特定人员。
为工具设置人工审核
步骤一:打开工具面板
在你的工作流中,点击 AI Agent 节点上的 Tools(工具) 连接器,打开工具面板。
步骤二:添加人工审核步骤
- 在工具面板中,找到 Human review(人工审核) 部分。
- 从可用选项中选择你偏好的审批渠道。
- 使用适当的凭据和设置配置审批渠道。
步骤三:将工具连接到审核步骤
- 将需要审批的工具添加到人工审核步骤的工具连接器。
- 像平常一样配置每个工具。
可用审批渠道
你可以使用以下任意服务作为人工审核渠道:
| 渠道 | 描述 |
|---|---|
| Chat | n8n 内置聊天界面 |
| 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.name | AI 智能体尝试调用的工具名称,即该节点在 n8n 画布上显示的名称。 |
$tool.parameters | AI 智能体在工具调用中尝试使用的参数,包括工具输入 Schema 中通过 $fromAI() 表达式配置的所有字段。 |
消息配置示例:
AI 希望使用 {{ $tool.name }},参数如下:
{{ $tool.parameters }}
这有助于审核者在批准或拒绝请求之前,清楚了解 AI 正在尝试执行的操作。
在人工审核工具中使用 $fromAI()
$fromAI() 函数适用于连接到人工审核步骤的工具。这意味着 AI 可以动态指定工具参数,而这些 AI 确定的值正是人工审核者看到并审批的内容。
系统提示词最佳实践
为了让 AI 智能体能够正确理解并处理工具调用被拒绝的情形,请在你的系统提示词中包含关于人工审核设置的信息。
配置系统提示词的必要性
请确保在系统提示词中包含工具设置和人工审核步骤的相关信息。这有助于 AI 了解哪些工具需要审批,以及如何优雅地响应工具调用被拒绝的情况。
建议包含以下内容:
- 哪些工具需要人工审批
- 审批被拒绝时会发生什么
- AI 应如何响应拒绝(例如,通知用户、建议替代方案或请求澄清)
链式调用与子智能体
当将一个 AI 智能体用作另一个 AI 智能体的工具时,子智能体中的人工审核步骤可以正常工作。
相关资源
- AI Agent 节点
- Tools Agent
- AI 中的工具是什么?
- 让 AI 通过 $fromAI() 指定工具参数