跳到主要内容

04-HITL与失败处理

核对日期:2026-05-13。

不稳定项:人机协同产品形态、审批流工具、Agent 执行权限、企业审计要求和安全规范会持续变化;上线前必须结合真实业务风险重新评估。

1. 学习目标

本专题关注 Agent 的安全边界:什么时候必须让人介入,失败后如何止损、恢复和复盘。

学完后你应该能做到:

  • 识别需要人类在环的场景。
  • 设计审批卡片、升级路径、撤销和审计。
  • 为工具失败、计划漂移、权限不足和低置信度设计处理策略。
  • 定义 Agent 的降级、停止和交接机制。
  • 把失败样例沉淀进轨迹评测。

2. HITL 不是确认弹窗

人类在环不是简单问“是否确认”,而是把足够上下文交给人做判断。

合格审批卡片包含:

  • Agent 想做什么。
  • 为什么做。
  • 使用了哪些证据。
  • 影响范围。
  • 风险等级。
  • 可撤销方式。
  • 替代方案。
  • 相关 trace。
  • 审计记录。

只给“确认 / 取消”会让人类变成橡皮图章。

3. 需要人类介入的情况

场景原因
高风险写操作付款、退款、删除、发邮件、生产变更
证据冲突模型不应自行裁决
权限不足需要授权或拒绝
预算超限需要业务取舍
工具连续失败系统可能异常
低置信度需要补充信息或人工判断
法律、财务、医疗、人事影响重大
用户要求人工确认明确需要人

原则:越不可逆、越高影响、越难验证,越需要 HITL。

4. 审批流设计

Agent 生成草稿
-> 系统校验参数和权限
-> 展示审批卡片
-> 人类批准/拒绝/修改
-> 固定 Workflow 执行
-> 审计和可撤销记录

关键点:

  • Agent 不直接执行高风险动作。
  • 审批人由权限系统决定。
  • 审批结果写入状态。
  • 执行动作由后端 Workflow 完成。
  • 审批过期需要重新确认。

5. 失败类型

类型表现处理
工具失败timeout、权限拒绝、参数错误分类、重试或升级
计划漂移做无关任务停止并重规划
上下文污染工具返回恶意指令过滤并拒绝执行
状态错误把草稿当已执行状态校验
权限越界调用未授权工具系统拦截
循环重复搜索或执行最大步数、重复检测
成本超限步数和 token 过多停止或审批
输出不合格schema 或引用失败有限重试或拒答

6. 降级策略

故障降级
工具不可用输出当前状态和人工处理建议
RAG 证据不足拒答或请求补充
写工具禁用生成草稿,不提交
Agent loop 超步数交接给人,并附 trace
安全策略触发停止任务
预算不足保存状态,等待审批

降级要明确告诉用户当前系统没有完成什么,而不是伪装成功。

7. 可撤销设计

所有写入动作都要考虑撤销:

  • 草稿:可删除。
  • 标签:可恢复前值。
  • 邮件:发送前审批,发送后只能补救。
  • 退款:必须双人审批和财务流程。
  • 生产变更:需要回滚方案。

如果动作不可撤销,Agent 不应直接执行。

8. 事故复盘

Agent 事故复盘要看轨迹:

  • 原始目标。
  • 每一步决策。
  • 工具参数。
  • 工具返回。
  • 状态变化。
  • 哪个 guardrail 应拦截。
  • 人类是否介入。
  • 为什么未能阻止。

复盘产出:

  • 修复工具 schema。
  • 调整权限。
  • 增加停止条件。
  • 新增 eval 样例。
  • 更新审批卡片。

9. 工程案例

9.1 退款申请 Agent

安全设计:

  • Agent 只能创建退款草稿。
  • 金额由规则引擎校验。
  • 审批卡片展示订单、政策、金额、原因、影响。
  • 审批后由固定 Workflow 执行。

失败处理:

  • 订单归属不一致:拒绝。
  • 政策证据不足:升级人工。
  • 金额超过阈值:双人复核。

9.2 数据分析 Agent

安全设计:

  • SQL 只读。
  • 大查询需要预算审批。
  • 结果必须带时间范围和指标口径。

失败处理:

  • 指标口径冲突:停止并澄清。
  • 查询超时:建议缩小范围。
  • 数据权限不足:拒绝。

10. 常见反模式

反模式表现后果修正
人类只点确认无证据和影响范围审批无意义审批卡片
Agent 直接高危写入退款、删除、发邮件事故不可逆草稿 + Workflow
失败后继续尝试工具错还循环成本和风险上升停止条件
不保存失败轨迹只知道失败了无法复盘trace
不做撤销设计出错无法补救影响扩大rollback/undo

11. 练习

为“发送客户补偿邮件 Agent”设计 HITL:

  • 哪些内容进入审批卡片。
  • 谁审批。
  • 哪些情况必须拒绝。
  • 发送前如何预览。
  • 发送后如何补救。
  • 哪些字段进入审计。

12. 验收题

  1. 为什么 HITL 不是简单确认弹窗?
  2. 哪些 Agent 行为必须人工确认?
  3. 高风险写操作为什么应由固定 Workflow 执行?
  4. Agent 失败复盘需要哪些轨迹字段?
  5. 降级结果应该如何告知用户?
  6. 不可撤销动作为什么不适合交给 Agent 自动执行?