Human-in-the-loop人机协同 | Middleware 中间件概述 | 产品经理学Langchian

内容纲要

概述

在上一节我们讨论了如何通过摘要压缩来管理上下文长度。现在我们要关注另一个关键问题:如何确保AI智能体的行为符合预期,特别是在执行高风险操作时

想象一下,如果AI智能体可以直接发送邮件、进行支付、修改数据库,一旦它理解错了用户意图或者被恶意引导,后果可能很严重。这时候,我们就需要人在关键环节进行把关。

Human-in-the-loop中间件正是为了解决这个问题而设计的。它的核心思路很简单:在AI智能体执行某些关键工具调用之前,先暂停流程,等待人工审核、编辑或拒绝,只有经过人工确认后,操作才会真正执行。

这就好比公司里重要决策需要领导签字一样,AI可以提出方案,但执行需要人工确认,确保风险可控。

使用场景

高风险操作审批

对于涉及资金、数据修改、系统配置等高风险操作,必须在执行前获得人工确认。比如:

  • 发送重要邮件
  • 进行支付或转账
  • 修改生产数据库
  • 删除重要文件

合规要求

在金融、医疗、政务等受监管的行业,某些操作必须有人工审核环节,这是合规的基本要求。

业务流程控制

某些业务流程本身就需要人工确认环节,比如订单处理、合同审核等,AI可以帮助执行,但最终需要人确认。

核心功能需求

工具级别的干预控制

不是所有工具都需要人工干预,我们需要能够精确控制哪些工具需要审批,哪些可以直接执行。

工具白名单/黑名单机制

  • 白名单模式:只有列在白名单中的工具需要人工审批
  • 黑名单模式:只有列在黑名单中的工具需要人工审批
  • 推荐:建议使用白名单模式,更安全,避免遗漏高风险工具

干预操作类型

对于需要审批的工具,我们可以支持不同的操作:

  • 审批(Approve):同意执行,工具按原计划执行
  • 编辑(Edit):修改工具调用的参数,比如修改邮件收件人、调整金额等
  • 拒绝(Reject):拒绝执行,终止当前操作

产品建议:不是所有工具都需要支持全部三种操作。比如只读查询可能只需要审批和拒绝,不需要编辑。我们可以为每个工具配置允许的操作类型。

状态保存与恢复

人工审批需要时间,在这期间,AI智能体的执行状态必须保存下来,否则审批回来后状态丢失,就无法继续执行了。

Checkpointer机制

需要引入状态保存机制(Checkpointer),保存当前的对话状态、已执行的步骤、工具调用参数等信息。

状态持久化

  • 内存保存:适合测试环境,简单但不可靠
  • Redis/数据库保存:适合生产环境,可以支持分布式部署和状态恢复

产品建议:生产环境必须使用持久化的状态保存机制,确保审批流程不会因为服务重启而中断。

PRD需求描述

功能需求

FR-1: 工具级别的审批控制

  • 描述:能够为每个工具配置是否需要人工审批,以及支持哪些审批操作
  • 配置方式:提供配置界面,支持工具级别的细粒度控制
  • 优先级:P0(核心功能)

FR-2: 审批流程管理

  • 描述:当需要审批的工具被调用时,系统暂停执行,发起审批流程
  • 审批信息:向审批人展示工具名称、调用参数、上下文信息等
  • 优先级:P0(核心功能)

FR-3: 审批操作支持

  • 描述:支持审批、编辑、拒绝三种操作
  • 编辑功能:允许审批人修改工具调用参数,修改后重新提交
  • 优先级:P0(核心功能)

FR-4: 状态保存与恢复

  • 描述:在审批期间保存执行状态,审批完成后恢复执行
  • 持久化:生产环境必须支持状态持久化,避免状态丢失
  • 优先级:P0(核心功能)

FR-5: 审批超时处理

  • 描述:如果审批超过预设时间未处理,执行预设的默认操作(继续/终止)
  • 超时时间:可配置,建议默认24小时
  • 优先级:P1

FR-6: 审批通知

  • 描述:当有需要审批的操作时,及时通知审批人
  • 通知方式:支持邮件、短信、系统内通知等
  • 优先级:P1

非功能需求

NFR-1: 权限控制

  • 审批权限:只有具有相应权限的用户才能审批对应的工具操作
  • 权限管理:需要与现有的权限系统(如RBAC、OAuth)集成

NFR-2: 审计与追溯

  • 审批日志:记录所有审批操作,包括审批人、审批时间、审批结果、参数修改等
  • 追溯能力:支持查询历史审批记录,便于审计和问题排查

NFR-3: 性能要求

  • 状态保存性能:状态保存操作不应显著影响响应时间
  • 并发支持:支持多用户并发审批

产品设计要点

审批界面设计

审批界面需要清晰展示以下信息:

  • 工具信息:工具名称、功能描述
  • 调用参数:工具调用的所有参数,便于审批人判断
  • 上下文信息:当前对话的上下文,帮助审批人理解操作背景
  • 风险提示:对于高风险操作,需要醒目提示

编辑功能设计

编辑功能应该:

  • 参数校验:编辑后的参数需要校验格式和合法性
  • 修改对比:展示修改前后的对比,让审批人清楚修改了什么
  • 二次确认:重大修改需要二次确认

超时策略设计

超时后的默认行为需要根据业务场景配置:

  • 高风险操作:超时后默认拒绝,安全第一
  • 一般操作:超时后可以默认通过,但需要记录日志
  • 配置化:允许为不同工具配置不同的超时策略

使用建议

什么时候应该使用

  1. 高风险操作:涉及资金、数据修改、系统配置等操作
  2. 合规要求:行业监管要求必须有人工审核环节
  3. 业务流程需要:业务本身就需要人工确认

配置建议

  1. 工具选择:仔细评估哪些工具需要审批,避免过度审批影响效率
  2. 权限管理:建立清晰的权限体系,确保合适的人审批合适的操作
  3. 超时策略:根据业务特点设置合理的超时时间

注意事项

  1. 必须配置Checkpointer:没有状态保存机制,审批流程无法正常工作
  2. 工具名称精确匹配:配置时需要确保工具名称完全一致(包括大小写)
  3. 与其他中间件的配合:建议将Human-in-the-loop放在优先级较高的位置,确保人工审批先于其他控制逻辑生效

与其他中间件的配合

Human-in-the-loop可以与其他中间件配合使用:

  • 与ToolCallLimitMiddleware配合:人工审批通过后,工具调用才计入次数限制
  • 与PIIDetection配合:如果检测到敏感信息,可以触发人工审核

后续优化方向

  1. 智能审批建议:AI可以提前分析操作风险,给审批人提供审批建议
  2. 批量审批:支持一次性审批多个相似操作
  3. 审批模板:对于常见的审批场景,可以预设审批模板,提高效率
  4. 审批分析:统计分析审批通过率、平均审批时间等,帮助优化审批流程
滚动至顶部