Agent 需要人工确认的操作怎么设计?人在回路放在哪里?

第 1180 题 约 2 分钟读完

本文目录
  1. 面试怎么回答
  2. 哪些操作需要人确认
  3. 确认点放在哪里
  4. 让确认真正有用
  5. 状态管理
  6. 逐步放权

面试怎么回答

我会按影响范围和可逆性给操作分级:只读和低风险自动执行;可逆的写操作自动执行但记录;删除、覆盖生产表、重跑影响下游的任务、对外发消息、产生费用这类不可逆操作必须人工确认;涉及敏感数据的导出要审批。确认逻辑放在工具执行层强制挂起,不靠模型自觉;复杂任务先确认计划,对外结果发布前确认。确认请求要写清楚影响范围、行数和能否回滚,超时默认不执行,避免对低风险操作频繁弹窗造成确认疲劳。等待时状态持久化,确认后继续。上线初期确认点多,根据审计数据逐步放权。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

Agent 能写 SQL、能重跑任务、能发邮件,但不是所有操作都应该让它自己决定。面试官问 Human-in-the-loop(人在回路),想看的是:你怎么判断哪些操作要人确认,确认流程怎么设计才不会变成形式主义。

哪些操作需要人确认

按「影响范围」和「可逆性」分级:

  • 只读、低风险:查元数据、查指标、看日志,自动执行;
  • 可逆的写操作:在临时表写数据、生成草稿报告,可以自动执行,但要记录;
  • 不可逆或影响大的操作:删除数据、覆盖生产表、重跑影响下游的任务、对外发送消息、产生费用,必须人工确认;
  • 涉及敏感数据:导出明细、跨部门共享数据,需要有权限的人审批。

确认点放在哪里

  1. 工具层强制:确认逻辑写在工具执行层,而不是靠提示词让模型「记得先问用户」。模型调用高风险工具时,系统先挂起,生成待确认请求;
  2. 计划确认:复杂任务在开始前把计划给人看,比每一步都确认更高效;
  3. 结果确认:报告、对外的回答在发布前给人审核。

让确认真正有用

  • 信息要充分:确认请求里写清楚要做什么、影响哪些表和下游、预计影响多少行、能否回滚,而不是只问「是否继续?」;
  • 差异可见:改数据前给出变更前后的对比或抽样;
  • 超时有默认值:等待确认超时,默认不执行,而不是默认执行;
  • 避免确认疲劳:低风险操作不要都弹确认,否则人会习惯性点「同意」;
  • 记录审计:谁在什么时间确认了什么,便于追溯。

状态管理

等待确认时,Agent 的状态要持久化,确认后能从挂起的地方继续,而不是重新开始。这和审批流的设计很像。

逐步放权

上线初期确认点多一些,根据审计记录统计某类操作的确认通过率和出错率,稳定后逐步改成自动执行或抽检。