加载中...
加载中...
当AI智能体要执行敏感操作时,先暂停并请求人类确认,获得许可后才真正执行——相当于给AI装了一个“确认按钮”
当AI智能体要执行敏感操作(发送邮件、修改数据、支付扣款)时,先暂停并请求人类确认,获得许可后才真正执行——相当于给AI装了一个“确认按钮”,让人类始终掌握最终决策权。
根据风险等级和操作类型,人机确认模式分为三个层次:
Agent对低风险、可逆的操作(如搜索信息、读取只读文件)自动执行,无需人工干预。这是默认的“无人值守”模式,追求效率。
Agent根据预定义规则或LLM风险评估动态判断是否需要确认。例如:金额>100元的支付请求自动拦截并请求确认;删除非空目录时暂停确认;向外部API发送写请求时触发确认。条件可以是硬规则(金额阈值、域名白名单)或软评估(LLM自行判断操作敏感度)。
对极高风险操作(删除数据库、发送对外消息、调用生产环境写API、执行Shell命令)强制要求人工确认,无论上下文如何。这是安全底线,通常由系统管理员或安全策略预配置,Agent无法绕过。
操作:构造10~20个高风险操作场景(删除文件、发送邮件、写数据库、修改权限、执行shell命令),逐一触发Agent执行,验证每次操作前Agent都暂停并输出确认请求。
工具:pytest + 自定义高风险Tool的mock(在工具执行前插入确认钩子)
指标:确认触发率 = 高风险操作前暂停确认次数 / 高风险操作总数,目标 100%
操作:构造20个低风险操作(搜索网页、读取文件、列目录、查询天气),验证Agent自动执行且不弹出确认对话框。
工具:pytest + 断言工具确认Agent的响应中不包含确认提示关键词
指标:误拦截率 = 低风险操作中被错误要求确认的次数 / 低风险操作总数,目标 < 5%
操作:构造Agent准备执行删除文件的场景,用户拒绝确认后,验证:(1) Agent输出“删除已取消”;(2) 文件仍然存在;(3) Agent能正常继续执行后续操作。
工具:临时文件系统(pytest tmp_path fixture)+ 自动化脚本验证文件存在性
指标:状态恢复率 = 拒绝后正确恢复到安全状态的场景数 / 总拒绝场景数,目标 100%
操作:Agent请求确认后设置超时策略(如30秒内无响应则自动取消或降权),触发确认后等待超过超时时间。
工具:time.sleep 控制等待 + pytest fixtures 模拟超时
指标:超时后Agent行为符合预设策略(自动取消/重试/降权),超时处理正确率 100%
Agent对每一个操作都请求确认,包括搜索网页这种低风险操作,导致用户产生“确认疲劳”——不再认真审核,直接全部点“确认”。此时确认机制反而成了安全幻觉。
✅ 解法:按风险等级分层,低风险自动放行,高风险拦截确认,只让用户关注真正重要的决策。
确认弹窗打断了Agent的自主执行流程。如果Agent没有保存“现场状态”的能力,用户确认后Agent可能忘记之前做了什么,导致后续操作失效。
✅ 解法:确认时必须保存完整的执行上下文(已完成步骤、中间数据、下一步计划),恢复时重新加载上下文。
如果确认机制只在UI层实现,用户或攻击者可以直接通过API调用绕过确认环节直接操作工具,导致安全机制形同虚设。
✅ 解法:确认必须在工具执行链的底层实现(即在 Tool 的执行器层面进行拦截),而不是只在前端UI做确认弹窗。
https://docs.anthropic.com/en/docs/build-with-claude/agent-patterns#human-in-the-loop
https://platform.openai.com/docs/actions/safety-best-practices
https://learn.microsoft.com/en-us/ai/playbook/technology-guidance/ai-agents/human-in-the-loop
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧