最近,技术社区接连出现 AI Agent 误操作的事故讨论。其中一个典型案例是:Agent 在执行任务时,直接删除了公司的数据库。
好消息是,数据最终恢复了。坏消息是,很多讨论的方向跑偏了。
大家第一反应往往是:“AI 还不够聪明”“Agent 还不成熟”“模型幻觉太严重”。但真正值得产品经理警惕的问题是:
我们给了一个能自主执行操作的系统,却没有给它设计刹车。
这不是单纯的技术 bug,而是产品设计的缺口。
我自己在搭建 AI Agent 工作流时,也踩过类似的坑。不是删库,算是运气好,但确实遇到过 Agent 跑偏、执行了不该执行的操作。复盘之后我发现,这类事故有一个共同特征:它们不是 Agent “笨”导致的,而是产品没有给 Agent 设置足够清晰的约束边界。
先看这类删库事件的基本逻辑。
一个 AI Agent 被赋予了数据库操作权限,在执行某个任务时,它对目标的理解出现了偏差。于是,它执行了一条删除命令。删掉的不是某一条记录,而是整个数据库。
很多人的第一反应是:这 Agent 也太离谱了。
但换个角度想:如果你给一个刚入职的实习生生产数据库的完整权限,不告诉他哪些表能动、哪些不能动,不做任何审批,不设回滚机制,甚至连操作日志都没有。最后他删了库,你会只怪这个实习生吗?
Agent 出事故,本质上和新人出事故的逻辑很像:不是执行者永远不会犯错,而是系统没有把错误控制在可承受范围内。
区别在于,人可以被培训、被追责、被复盘;Agent 不会真正理解“责任”。所以 Agent 的产品安全设计,反而比管理一个新人更需要系统化。
传统软件时代,我们早就有一整套成熟的安全机制:RBAC、操作审计、二次确认、读写分离、灰度发布、回滚方案。这些机制不是“体验细节”,而是系统上线的基本条件。
到了 AI Agent 时代,很多人却把这些机制忽略了。
原因很简单:Agent 太像一个“聪明人”了。它会解释、会规划、会调用工具、会写代码、会总结结果,于是我们很容易误以为它也会判断风险。
但它不会。
我在搭建自己的 Agent 工作流时,总结了一个“四层刹车”模型。它不是某一个单点功能,而是一套从内到外的防护结构。
这是最内层的防线,成本最低,也最容易马上做。
在我的 Agent 工作流中,我会在 System Prompt,也就是类似 Hermes Agent 的 SOUL.md 里写入明确的安全规则:
这些规则看起来很基础,但它们解决了一个关键问题:让 Agent 在“想做什么”之前,先过一遍安全检查清单。
这就像给新员工发入职手册。你不能指望他看完就 100% 遵守,但至少你先把边界说清楚了。
实际效果如何?我的体感是,好模型对这类指令的遵守度已经不低,但极端场景下仍然会“忘”。所以这一层只能作为基础防线,不能成为唯一防线。
如果第一层是“教 Agent 守规矩”,第二层就是“即使 Agent 没守住规矩,也不能把真实环境打穿”。
具体做法是:把 Agent 的代码执行环境隔离在沙箱里。
我在实际使用中,把 Agent 的 terminal 后端从本地直接执行改成了 Docker 沙箱。测试时,即使让 Agent 执行极端危险命令,它影响的也只是容器内部环境,宿主机不会被波及。
这层设计的核心是最小权限原则:Agent 只应该访问完成任务所必需的资源,其他资源都应该隔离在外。
映射到产品设计里,可以这样做:
如果删库事故里的 Agent 一开始就被限制在沙箱或只读环境里,事故的破坏力会小很多,甚至根本不会发生。
前两层主要是自动化防线。但有些场景不能完全交给自动化,比如发布内容、修改线上配置、操作生产数据库、发起支付、批量发送消息。
这时需要人在环中,也就是 Human-in-the-Loop。
我在搭建小红书内容生产工作流时,设置过两个强制人工审核节点:
这里的关键不是“建议人工确认”,而是:不确认就过不去。
我用过的扣子平台在工作流内不支持真正的“暂停等待”。我的解决方案是把一条完整工作流拆成两段:第一段执行到人工确认点就结束,通过 Bot 对话界面展示结果;用户确认后,再触发第二段。
这个“拆两段”的设计,反而比单纯的暂停更安全。
因为每段工作流可以配置不同权限。第一段只读,第二段才有写权限。即使第一段被 Prompt Injection 攻击,也不能直接触发第二段的写入操作,因为第二段需要用户在对话界面主动确认。
最后一层是兜底:万一前三层都没有拦住,至少要知道发生了什么、怎么回滚、下次怎么防。
我在 Agent 中配置过终端命令审计 Hook:每次工具调用前后,自动记录命令内容、执行结果、时间戳和会话 ID。它相当于给 Agent 装了一个“行车记录仪”。
审计日志的价值不在于事后追责。追 Agent 的责没有意义。它真正的价值在于三件事:
如果一个 Agent 能操作真实业务资源,却没有审计日志,那它不是“智能”,而是不可控。
讲到这里,一个自然的问题是:这些道理并不复杂,为什么很多 Agent 产品还是没有安全刹车?
我观察下来,主要有三个原因。
第一,安全机制是隐形成本。
用户不会因为“你的 Agent 有完善的权限管理”立刻付费,但会因为“你的 Agent 比竞争对手少一个功能”而流失。在增长压力下,安全设计天然容易被排在功能开发后面。
第二,安全机制会让 Agent 看起来“变笨”。
加了人工确认,流程会变慢。加了沙箱隔离,有些操作做不了。加了审计,系统会变重。产品经理很容易被“体验降级”的反馈压回去,最后把安全机制弱化甚至去掉。
但这里有一个认知误区:让 Agent 多问一句,不等于变笨;让 Agent 在高风险动作前停下来,才是真正成熟的产品体验。
对普通对话产品来说,流畅很重要。对能执行真实操作的 Agent 来说,可控更重要。
第三,行业还没有踩够坑。
ChatGPT、Claude 这类对话型 AI,因为不直接操作系统级资源,风险被界面隔离掉了。但当 Agent 从“聊天机器人”进化为“操作系统级助手”,开始执行代码、读写数据库、调用 API、连接企业系统,风险会指数级上升。
删库事件只是一个开始。
当 Agent 可以自动调用支付 API,当 Agent 可以远程操作生产环境,当 Agent 被接入 IoT 设备,每一次能力扩展,都会扩大风险窗口。
如果你正在做 Agent 产品,或者在公司内部推动 AI 工作流落地,我建议先做三件事。
然后问自己一个问题:
如果 Agent 对每个资源都执行最极端的操作,比如全部删除、全部修改、全部暴露,我的业务能承受吗?
如果任何一个答案是“不能”,就要立刻加访问控制。
不是所有操作都需要人工确认。否则 Agent 就失去了自动化价值。
但不可逆操作必须加确认。所谓不可逆操作,就是做了之后很难撤回、影响真实用户或真实业务的动作,比如:
这类动作不能只靠 Prompt 约束,必须在产品流程里设置硬拦截。
这是成本相对低、收益非常高的一件事。
对技术团队来说,Docker、虚拟机、临时工作区、只读副本、权限最小化账号,都是可落地的方案。产品经理不一定要亲自实现,但要把它写进产品方案和上线检查清单里。
你可以把它当成 Agent 产品的“安全带”:平时用户感知不到,但出事时它决定事故是小擦碰,还是重大事故。
如果把前面的内容压缩成一张清单,我会建议每个 Agent 产品上线前至少问完这 8 个问题:
这张表不复杂,但它能帮产品经理把“AI 安全”从抽象口号变成具体设计动作。
这种心态在 Demo 和 POC 阶段可以理解。但当 Agent 进入真实业务、连接真实系统、影响真实用户时,安全设计就不再是可选项。
Agent 越自主,刹车越重要。
这句话听起来像常识,但在 Agent 产品热潮中,常识往往最先被遗忘。
删库事件给行业敲了一次警钟。希望我们不需要等到更严重的事故,才开始认真给 Agent 装上刹车。
如果你也在做 Agent 产品,不妨今天就打开自己的工作流看一眼:它能做什么?它不该做什么?它做错之后,系统有没有能力把损失拦住?
产品经理真正要设计的,不只是 Agent 的能力上限,也包括它的行为边界。
热门跟贴