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. 验收题
- 为什么 HITL 不是简单确认弹窗?
- 哪些 Agent 行为必须人工确认?
- 高风险写操作为什么应由固定 Workflow 执行?
- Agent 失败复盘需要哪些轨迹字段?
- 降级结果应该如何告知用户?
- 不可撤销动作为什么不适合交给 Agent 自动执行?