AI 工具调用的 Human-in-the-loop#
你可以在 AI Agent 执行特定工具前要求人工批准。当工具需要人工审核时,工作流会暂停并等待人工执行以下操作之一:
- Approve 批准:工具按 AI 指定的输入执行。
- Deny 拒绝:操作被取消且不会运行。
此功能允许在 AI 工作流中对工具使用进行选择性监督,更便于对高风险工具(如发送消息、修改记录或删除数据)进行额外审核。
何时使用人工审核#
Human-in-the-loop(HITL)审核适用于以下场景:
- 工具执行不可逆操作:删除数据、发送对外通信或进行购买。
- 存在合规要求:受监管行业可能要求某些自动化操作必须人工批准。
- 涉及高价值决策:对业务影响较大的操作需要人工监督。
- 建立对 AI 工作流的信任:先开启人工审核,随着信心提升再逐步减少审核。
你可以将 HITL 应用于连接到 AI Agent 节点的所有工具,也可以只对特定工具生效,从而实现更精细的控制,而不是对输出进行统一拦截。
工作原理#
- AI Agent 判断需要使用已启用人工审核的工具。
- 工作流暂停,并通过你配置的渠道(如 Slack、Telegram 或 n8n Chat 界面)发送审批请求。
- 审核人收到请求,看到 AI 想使用的工具及参数。
- 审核人批准或拒绝请求。
- 若批准,工具按 AI 指定输入执行;若拒绝,操作取消,并通知 AI 被拒绝。
不同的审批渠道
审核步骤可以通过与主交互不同的渠道完成。例如,用户通过 n8n Chat 界面与 AI 代理交互,但审批请求可以路由到 Slack 中的指定人员。
为工具设置人工审核#
第 1 步:打开 Tools Panel#
在工作流中,点击 AI Agent 节点上的 Tools 工具 连接器打开 Tools Panel 工具面板。
第 2 步:添加人工审核步骤#
- 在 Tools Panel 工具面板中找到 Human review 人工审核 部分。
- 从可用选项中选择你的审批渠道。
- 配置对应的凭据和设置。
第 3 步:将工具连接到审核步骤#
- 将需要审批的工具连接到人工审核步骤的工具连接器。
- 像平常一样配置每个工具。
可用的审批渠道#
你可以使用以下服务作为人工审核渠道:
| Channel 渠道 | Description 描述 |
|---|---|
| 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 Agent 想调用的工具名称。这是 n8n 画布上的节点名称。 |
$tool.parameters |
AI Agent 在工具调用中要使用的参数。这包括工具输入 schema 中使用 $fromAI() 表达式配置的所有字段。 |
示例消息配置:
1 2 | |
这有助于审核人在批准或拒绝请求前准确了解 AI 的操作意图。
在人工审核工具中使用 $fromAI()#
$fromAI() 函数可与连接到人工审核步骤的工具配合使用。这意味着 AI 可以动态指定工具参数,而审核人看到并批准的内容正是这些由 AI 决定的值。
System prompt 最佳实践#
为了让 AI Agent 正确理解并处理被拒绝的工具调用,请在 system prompt 中包含人工审核的相关信息。
需要配置 system prompt
请确保在 system prompt 中包含工具设置和人工审核步骤的信息。这样可以帮助 AI 理解哪些工具需要批准,以及在工具调用被拒绝时如何优雅地响应。
建议包含:
- 哪些工具需要人工批准
- 当审批被拒绝时会发生什么
- AI 应如何响应拒绝(例如通知用户、提供替代方案或请求澄清)
链式与子代理#
当将 AI Agent 作为另一个 AI Agent 的工具使用时,子代理中的人工审核步骤仍可正常工作。