AI Agent人机协作:关键步骤让人来确认,不是不信任Agent
🩺 摘要
全自动Agent听起来很酷,但真到生产环境,没人敢让Agent随便删数据库。人机协作不是不信任,是最后的保险。
📝 详情
一个故事:某公司的Agent自动执行了一个"清理缓存"的命令,但因为配置写错了缓存路径,把用户上传的文件全删了。花了三天恢复数据。
从那以后,所有"有风险"的操作都加了人工确认。
哪些操作需要人工确认?
| 操作 | 风险等级 | 需要确认? |
|---|---|---|
| 查资料、搜索 | 低 | 不 |
| 写草稿、翻译 | 低 | 不 |
| 发邮件、发消息 | 中 | 建议 |
| 删文件、改数据库 | 高 | 必须 |
| 付钱、下单 | 高 | 必须 |
实现
def send_email_confirm(to, subject, body):
# 先生成草稿
draft = {"to": to, "subject": subject, "body": body}
# 发给用户确认
send_for_approval(draft)
# 等用户点确认
return wait_for_approval(draft_id)
总结
人机协作的正确姿势:Agent做90%的工作,关键1%让人确认。既保证了效率,又不会出事。
实际案例:审批流
一个合规场景:Agent要删除一条用户数据。在HITL模式下: 1. Agent发现数据需要删除 → 生成删除请求 2. 请求发送给管理员确认(Slack/邮件/后台) 3. 管理员审核 → 批准或拒绝 4. Agent收到确认后执行或放弃
这条流程让Agent保留了自动化的效率,同时避免了误操作的风险。
确认超时处理
如果管理员一直不确认怎么办?设置超时时间:
def request_approval(action, timeout=300):
send_approval_request(action)
start = time.time()
while time.time() - start < timeout:
status = check_approval_status(action['id'])
if status == 'approved':
return execute_action(action)
elif status == 'rejected':
return cancel_action(action)
time.sleep(5)
# 超时了,默认不执行
return cancel_action(action, reason="审批超时")
超时后默认不执行(安全优先),同时通知管理员"有一个待审批请求已过期"。
💬 评论 (0)