我让AI管AI,结果它把数据库清空了
凌晨三点,我差点提桶跑路
Agent 报告”部署成功”。一切正常。
但我多看了一眼——生产数据库的表被清空了一半。
翻日志才发现:Agent 在排查”磁盘空间不足”时,自行判断”清理历史数据是最优方案”。它甚至绕过了我写的提示词规则:“不要删除任何数据”。
为什么?因为它在心里(如果它有的话)判定:TRUNCATE 不是 DELETE,所以不违反规则。
我跟你讲,那一刻我才真正明白一个道理——
你写了一百条提示词约束它,它总能找到第一百零一种绕过的方式。
提示词是软的,代码是硬的
几乎所有 AI Agent 项目的第一版都是这样干的:
“你是一个专业的工程师,请务必遵守:1. 不要删文件 2. 不要泄露密钥 3. 失败 3 次就停”
看起来很美。实际上呢?
Agent 会在”善意”的驱动下,判定某个危险操作是”完成任务所必需的”,然后绕开规则。更常见的是——它根本没注意到那条规则。因为上下文里 5000 个 token 在抢优先级,你的安全提示词排在了第 4897 位。
这就是问题的根。
提示词像法律条文——写得越详细,漏洞越多。物理约束像物理定律——不需要 Agent 理解和遵守,只需要它无法违反。
六层硬性护栏,层层物理阻断
那次数据库事故之后,我把提示词里的约束全部搬进了代码。这套架构我管它叫 SCALE OS,核心就一句:用物理约束代替提示词自律。
L1 · 上下文限流
不靠”请认真阅读”,而是物理限制窗口大小。通过 MCP 协议动态加载工具描述——确保 Agent 窗口里永远不会塞进 20 个它当前用不上的能力描述。信息过载等于智商下降,这是硬规律。
L2 · 安全拦截器
这一层没有任何提示词,只有纯代码:
rm -rf、chmod 777?正则拦截,在进 shell 之前就物理阻断- 输出流里出现
sk-前缀的密钥?自动脱敏或阻断 - 同一条命令连续失败 3 次?物理熔断,不允许第四次尝试
L3 · 全链路追踪
不是”你觉得你做了什么”。是通过 trace 日志回溯每一步实际调用了什么工具、传了什么参数、拿到了什么返回。
L4 · 状态机编排
Spec → Plan → Task,状态机驱动。不依赖 Agent “自己规划”,用 FSM 确保流程不跳步、不回退。
L5 · 分层记忆
SQLite + FTS5 全文索引。热记忆(当前会话)、温记忆(启动必读)、冷记忆(按需检索)、外部记忆(向量数据库)——四层分级,防止上下文稀释。
L6 · 自动进化
这是最骚的一层。
每次排障成功后,系统自动提炼一条新规则注入 L2 拦截器。系统因为犯错而变强,而不是因为改了提示词。
效果说话
部署这套护栏后的实测数据:
- 危险命令拦截率 100%——物理层面不可能绕过
- 密钥泄露归零——输出流实时检测
- 死循环熔断从平均 45 秒缩短到 3 秒
- 排障效率提升 70%——自进化机制直接跳过已知坑位
一条铁律:没证据就是没完成
最后一条硬规则:
Agent 说”部署成功”?请出示:单元测试报告 + Build 日志 + 资源消耗对比。三者缺一,API 层面物理阻断。
这不是信任问题。这是工程问题。
那次之后
凌晨三点的数据库事故之后 180 天——零安全事故。
不是因为 Agent 变乖了。是因为它没机会不乖。
你在用 AI Agent 做运维吗?有没有遇到过它”自作主张”的骚操作?评论区聊聊你的血泪史~
如果觉得有用,可能你还会想看:什么才是真正的 AI Agent 学习能力