跳转至

人机协作机制

概述

人机协作(Human-in-the-Loop, HITL)是AI Agent安全、可靠运行的关键机制。在Agent能力尚未完全可靠的今天,合理的人机协作设计既能发挥Agent的效率优势,又能通过人类监督保障质量和安全。

HITL模式分类

graph TD
    A[人机协作模式] --> B[审批式]
    A --> C[监督式]
    A --> D[协作式]
    A --> E[兜底式]

    B --> B1[每个关键动作需人工批准]
    C --> C1[人类实时监控Agent执行]
    D --> D1[人类和Agent交替执行]
    E --> E1[Agent自主执行,失败时转人工]

    style A fill:#e3f2fd

审批式(Approval-based)

Agent生成方案,人类批准后执行。

适用场景

  • 高风险操作(资金转账、数据删除)
  • 对外通信(发送邮件、发布内容)
  • 不可逆操作

监督式(Supervision-based)

人类实时观察Agent执行,可随时干预。

适用场景

  • Agent能力不确定的新任务
  • 需要人类判断的灰色地带
  • 培训和调试Agent

协作式(Collaborative)

人类和Agent各负责擅长的部分。

适用场景

  • 创意工作(人类创意 + Agent执行)
  • 复杂决策(Agent分析 + 人类决策)
  • 领域专业任务

兜底式(Fallback-based)

Agent自主执行,失败或不确定时转人工。

适用场景

  • 成熟的自动化流程
  • Agent高成功率的任务
  • 大规模批处理

审批工作流

设计模式

graph TD
    A[Agent生成动作] --> B[风险评估]
    B --> C{风险级别}
    C -->|低风险| D[自动执行]
    C -->|中风险| E[异步审批]
    C -->|高风险| F[同步审批]

    E --> G{审批结果}
    F --> G
    G -->|批准| H[执行动作]
    G -->|拒绝| I[Agent调整方案]
    G -->|修改| J[人工修改后执行]

    I --> A

    style C fill:#fff3e0
    style G fill:#fff3e0

风险评估函数

\[ \text{Risk}(action) = w_1 \cdot \text{Impact} + w_2 \cdot \text{Reversibility}^{-1} + w_3 \cdot \text{Uncertainty} \]
因素 低 (1) 中 (2) 高 (3)
影响范围 仅Agent内部 影响单个系统 影响多个系统/用户
可逆性 完全可逆 部分可逆 不可逆
不确定性 Agent高度确信 存在歧义 Agent不确定

审批UI设计原则

  1. 上下文充分:显示Agent的推理过程和依据
  2. 操作明确:清晰展示Agent将执行的操作
  3. 影响预览:预览操作可能产生的影响
  4. 快速决策:支持一键批准/拒绝
  5. 批量处理:支持批量审批相似请求

置信度阈值

基于置信度的自主决策

\[ \text{Decision} = \begin{cases} \text{Auto-execute} & \text{if } \text{conf} > \theta_{\text{high}} \\ \text{Request approval} & \text{if } \theta_{\text{low}} < \text{conf} \leq \theta_{\text{high}} \\ \text{Escalate to human} & \text{if } \text{conf} \leq \theta_{\text{low}} \end{cases} \]

阈值校准

class ConfidenceThresholds:
    def __init__(self):
        # 不同操作类型的阈值
        self.thresholds = {
            "read_only": {"high": 0.7, "low": 0.3},
            "create": {"high": 0.8, "low": 0.5},
            "modify": {"high": 0.9, "low": 0.6},
            "delete": {"high": 0.95, "low": 0.8},
            "external_communication": {"high": 0.95, "low": 0.7},
        }

    def should_auto_execute(self, action_type, confidence):
        t = self.thresholds[action_type]
        if confidence > t["high"]:
            return "auto_execute"
        elif confidence > t["low"]:
            return "request_approval"
        else:
            return "escalate"

升级机制

升级触发条件

触发条件 说明
连续失败 Agent连续3次以上执行失败
用户要求 用户明确要求人工处理
安全风险 检测到潜在安全问题
超时 任务执行超过预设时间
低置信度 Agent对结果不确信
异常模式 检测到异常行为模式

升级流程

graph TD
    A[Agent执行中] --> B{触发升级?}
    B -->|否| C[继续执行]
    B -->|是| D[保存当前状态]
    D --> E[生成上下文摘要]
    E --> F[通知人工]
    F --> G[人工接手]
    G --> H{处理方式}
    H -->|直接处理| I[人工完成任务]
    H -->|指导Agent| J[人工提供指导]
    H -->|修正后继续| K[修正Agent方向]
    J --> L[Agent继续执行]
    K --> L

上下文传递

升级时需要向人类传递的信息:

  • 任务描述:原始任务是什么
  • 已完成部分:Agent已经做了什么
  • 当前状态:现在卡在哪里
  • 失败原因:为什么需要升级
  • 建议方案:Agent认为可能的解决方向

UX设计

Agent透明度

用户应能理解Agent在做什么:

透明度级别 展示内容 适用用户
最低 仅最终结果 普通用户
中等 关键步骤摘要 进阶用户
最高 完整推理链和工具调用 开发者

交互模式

模式1: 自动执行(显示进度)
[=========>          ] 50% 正在分析数据...

模式2: 逐步确认
Agent: "我计划执行以下操作:1.读取文件 2.修改配置 3.重启服务"
用户: "继续" / "跳过步骤3"

模式3: 实时对话
Agent: "我发现了两种方案,方案A更快但风险较高,方案B更稳但需要更长时间。您偏好哪种?"

干预设计

用户应能随时:

  • 暂停:暂停Agent执行
  • 取消:取消当前任务
  • 修改:修改Agent的执行方向
  • 撤销:回滚Agent的操作(如果可逆)
  • 恢复:从暂停状态恢复执行

最佳实践

  1. 默认安全:新任务默认需要审批,逐步放开
  2. 渐进信任:根据Agent的表现动态调整自主权
  3. 清晰边界:明确哪些操作Agent可以自主执行
  4. 快速反馈:审批请求应能快速处理
  5. 学习改进:从人工干预中学习,减少未来的干预需求

参考文献

  1. Amershi, S., et al. "Guidelines for Human-AI Interaction." CHI 2019.
  2. Horvitz, E. "Principles of Mixed-Initiative User Interfaces." CHI 1999.
  3. Anthropic. "Claude Code: Permission Model." 2025.

交叉引用: - 安全机制 → 安全与沙箱 - 对齐 → 对齐与安全策略 - 评估 → 人类评估与对齐


评论 #