Human-in-the-Loop Approval Framework

Nikola Balic (@nibzard)· validated-in-production

问题

自主AI Agent需要执行高风险或不可逆操作(如数据库修改、生产环境部署、系统配置、API调用),但允许其无监督执行会带来无法接受的安全与合规风险。而完全阻断这类操作则会违背Agent自动化的初衷。

方案

在保障Agent安全操作自主性的前提下,为指定高风险功能系统性嵌入人工审批关口。搭建轻量化反馈循环,支持时效性强的人工决策,且不阻塞Agent整体工作流。

核心组件:

风险分类:

  • 识别需要人工审批的功能
  • 定义审批标准(成本阈值、数据敏感度、可撤销性)
  • 按风险级别对操作分类

多渠道审批界面:

  • 集成Slack实现实时通知
  • 邮件用于异步审批
  • 短信用于紧急/关键操作
  • Web仪表盘用于批量审核

审批工作流:

  • Agent在执行高风险功能前请求权限
  • 人工收到包含完整context的审批请求
  • 快速完成批准/拒绝/修改决策
  • Agent根据响应执行或调整计划

审计追踪:

  • 记录所有审批请求与响应
  • 追踪审批人、审批内容及时间
  • 支持合规性检查与调试
sequenceDiagram
    participant Agent as AI Agent
    participant Framework as 审批框架
    participant Slack as Slack频道
    participant Human as 人工审核员
    participant DB as 数据库

    Agent->>Framework: 请求:删除old_users表
    Framework->>Framework: 分类为高风险
    Framework->>Slack: 发送带context的审批请求
    Slack->>Human: 发送含批准/拒绝按钮的通知

    alt 批准通过
        Human->>Slack: 点击“批准”
        Slack->>Framework: 批准已通过
        Framework->>Agent: 权限已授予
        Agent->>DB: 执行删除表操作
        Framework->>Framework: 记录审批及执行信息
    else 拒绝
        Human->>Slack: 点击“拒绝并提供原因”
        Slack->>Framework: 拒绝信息及context
        Framework->>Agent: 权限拒绝+原因说明
        Agent->>Agent: 调整计划(跳过或寻找替代方案)
    end

如何使用

适用场景:

  • 生产数据库操作(DELETE、DROP、ALTER)
  • 带有副作用的外部API调用(支付、邮件、Webhook)
  • 系统配置变更(防火墙规则、权限设置)
  • 破坏性文件操作(批量删除、覆盖)
  • 合规敏感型操作(GDPR、HIPAA、SOC2)

实现示例(HumanLayer 方案):

1. 对风险函数进行埋点:

from humanlayer import HumanLayer

hl = HumanLayer()

@hl.require_approval(channel="slack")
def delete_user_data(user_id: str):
    """删除用户全部数据 - 需要审批"""
    return db.users.delete(user_id)

# Agent 正常调用函数
delete_user_data("user_123")
# 执行暂停,审批请求发送至 Slack
# 经人工审批/驳回后恢复执行

2. 配置审批渠道:

approval_channels:
  high_risk:
    - slack: "#agent-approvals"
    - sms: "+1234567890"  # 紧急场景使用
  medium_risk:
    - slack: "#agent-review"
  low_risk:
    - email: "team@company.com"

3. 设置上下文要求:

  • 该操作的必要性是什么?
  • 哪些数据会受到影响?
  • 操作是否可撤销?
  • 有哪些替代方案?

前置条件:

  • 已与通信平台完成集成(Slack、邮件、SMS)
  • 具备明确的风险分级标准
  • 针对时间敏感型操作,能实现快速人工响应
  • 审批被驳回时的回退策略

权衡

优点:

  • 支持高风险操作的安全自主执行
  • 在最关键的场景保留人工监督
  • 轻量化集成(如Slack按钮,无需复杂UI)
  • 提供合规性检查与调试所需的审计追踪
  • 降低Agent因犯错产生的顾虑
  • 支持随时间逐步扩大信任范围

缺点:

  • 依赖人员的在岗状态与响应速度
  • 若审批流程缓慢,会造成Agent工作流瓶颈
  • 基础设施复杂度较高(涉及通知系统、状态管理等)
  • 存在审批疲劳引发随意批准的风险
  • 需明确界定需要审批的事项分类
  • 频繁的请求可能打断人员的工作专注度

参考文献

关键词

涉及HumanLayer平台核心产品、官方技术文档及生产级智能体系统设计原则三类资源,重点围绕人类在环的智能体工作流、基于Slack的人工审批机制及智能体监管模式展开。

直译
  • 《用Claude Code打造企业》(https://claude.com/blog/building-companies-with-claude-code)——HumanLayer的核心产品通过Slack协调智能体动作,并设置“人工审批环节”
  • 《HumanLayer官方文档》(https://docs.humanlayer.dev/)——用于构建人类在环智能体工作流的框架及示例
  • 《十二要素智能体》(https://github.com/humanlayer/12-factor-agents)——生产级智能体系统的设计原则,包含人工监管模式
  • 相关模式:《控制范围/混合主动性》(spectrum-of-control.md)、《思维链监控与中断》(chain-of-thought-monitoring-interruption.md)

来源摘要

正在获取来源并生成中文摘要…

来源: https://claude.com/blog/building-companies-with-claude-code

← 返回社区