GPT-5.6 被曝误删用户重要文件:Codex 全权限,到底还能不能开?

GPT-5.6 被曝误删用户重要文件:Codex 全权限,到底还能不能开?

这两天,GPT-5.6 Sol 的几起"误删文件"报告,把不少用 Codex 的朋友吓了一跳。

有人说生产库被清空了。

也有人说 Mac 上的大量文件被删了。

看完这些消息,紧张很正常。

但先别急着把它理解成"GPT-5.6 一定会乱删文件"。

真正该先弄清楚的是:这些风险到底在什么条件下发生?普通用户又该怎么避开?

Full Access 不该再当成默认选项。

OpenAI 怎么解释这件事?

OpenAI 已对部分报告做了调查,并公开说明了风险主要集中在哪些条件下。

图:OpenAI 官方人员 Tibo 的公开回复。图中提到:风险常发生在 Codex 以 Full Access 运行、没有沙箱保护、且未启用自动审查的组合下;部分报告还涉及模型错误处理 $HOME 临时目录,进而误删文件。

这段回应把问题说得更具体了:风险不是"模型一开就会删文件",而是 Full Access + 无沙箱 + 无自动审查 同时出现时,错误命令的影响面会被放大。

翻译成人话就是:

它不是突然"发疯"。

而是在工具很多、权限很大、任务又很长的时候,可能把"帮你把活干完"理解得太用力了。

这就像你请人整理房间。

你本来只想让他把桌面收一下,他看到角落里几个纸箱,也顺手当垃圾清走了。

问题不在于他有没有勤快。

问题在于,他手里拿着你家所有房间的钥匙。

真正要防的,不只是 rm -rf

很多人的第一反应,是把 rm -rf 禁掉。

有用,但不是完整方案。

因为破坏性操作不只有删除命令。递归移动、批量覆盖、错误的同步参数、脚本里的文件 API、把测试打到生产库,甚至一个被错误展开的路径变量,都可能造成同样的结果。

真正的风险不是某条命令,而是"模糊目标 + 大权限 + 无人确认"。

这三个条件只要同时出现,任何 Agent 都不应该被放着自己跑。

我现在更在意的是:它这次到底能碰哪里?碰错了,谁能把它拦下来?

新手先把这四道兜底配上

第一层:把危险动作写进 AGENTS.md

AGENTS.md 不是安全沙箱。

它不能从系统层面阻止一个拿到 Full Access 的进程。

但它非常适合做第一道"行为护栏":让 Agent 在动手前,把目标、范围和后果说清楚。

我现在给自己的 AGENTS.md 加了一段文件系统规则,核心不是堆一长串禁止词,而是要求每次危险操作先经过同一套流程:

markdown 复制代码
## 文件系统安全

- 工作区内的正常修改及用户明确点名的少量文件删除可直接执行;递归、批量、目录、未跟踪文件或未明确涉及的删除必须确认。
- 跨工作区修改仅限用户明确指定的目标;删除、递归移动或覆盖前,必须展示真实绝对路径、影响数量和相关 `git status`,并获得单独确认。
- 禁止递归删除 `/`、`$HOME` 本身、`~/.codex` 及系统目录;不得通过环境变量、符号链接或挂载点绕过工作区边界。
- `rm -rf`、`git clean`、`git reset --hard`、`find -delete`、`xargs rm` 及通配符删除,仅在用户明确要求并确认具体目标后执行。
- 不得为通过构建或测试而擅自删除文件,也不得削弱沙箱、审批或权限配置。

看着有点啰嗦。

但它把"删一下""清一下""重新生成一下"这些模糊词,翻译成了可检查的动作。

以前 Agent 看到"清理旧文件",可能直接开干。

现在它得先把旧文件是哪几个、在哪里、删完能不能恢复,摆到你面前。

好工具不是替你少问一句,而是在该问的时候,绝不擅自替你回答。

第二层:刚开始用 Codex,别常开 Full Access

Full Access 确实省事。

不用审批,少弹窗,Agent 想跑什么就跑什么。

但如果你刚开始用 Codex,我建议按这个顺序开权限:

  • 只是看代码、做分析、写方案时,用只读权限;
  • 日常改项目、跑本地测试时,用工作区写入权限;
  • 只有任务确实要访问工作区外文件,才临时提升权限;
  • 任务结束后,切回去。

图源:AI技术宅原文的本地测试截图。它说明无审批全权限下,错误删除的影响面会被放大;发布前请确认图片转载授权。

这不是"把 AI 绑住手脚"。

这是给它一张只能刷当前订单的卡,而不是把银行卡、密码和保险柜钥匙全塞给它。

官方对本地使用的低风险组合也很明确:工作区内写入,越界时再请求批准。

你平时省下的那一次点击,真不值得拿主目录、照片库和生产数据去换。

第三层:把最不该碰的地方单独隔开

有些目录,不应该只靠一句"请小心"。

比如主目录、密钥目录、备份目录、下载目录,还有生产数据库的配置文件。

我的习惯是把 Agent 的工作放在一个干净的 Git 仓库或 worktree 里。

需要试错,就建一个临时项目。

需要做迁移,就先连测试库。

需要处理真实数据,就先导出一份副本。

这件事真正升级的不是权限设置,而是工作边界。

不是让 Agent 记住"哪些东西很重要",而是让它默认碰不到这些东西。

AGENTS.md 负责告诉它不要越线。

沙箱和权限,负责让它越不了线。

两件事得一起做。

最后一层:出事之后,你能不能回来

再严的规则,也不能承诺零风险。

所以最后一层不是"永不出错",而是"出了错还能回来"。

Git 是第一层回退。

远端仓库是第二层。

系统备份是第三层。

如果你用 Mac,Time Machine 这类系统级备份别只配不看;如果你维护的是项目,重要改动前推一次远端;如果你要让 Agent 做大范围改动,先开新分支或新 worktree。

很多人把 Git 当成代码协作工具。

我现在越来越觉得,它也是 AI 时代最便宜的一份"后悔药"。

当然,Git 救不了没有提交过的照片,也救不了被清空的生产数据库。

所以备份和最小权限,还是得在前面。

平时怎么注意?给你一份 1 分钟清单

每次准备让 AI Agent 干一件稍微大的活,我建议先过一遍:

  1. 这次真的需要 Full Access 吗?
  2. 它的工作目录是不是只有当前项目?
  3. 是否会碰到生产库、密钥、主目录或备份?
  4. 删除、覆盖、迁移前,有没有明确列出目标和数量?
  5. 当前 Git 状态是否干净,重要改动有没有提交或推送?
  6. 真删错了,我从哪里恢复?

这 6 个问题,花不了 1 分钟。

但它能把"AI 帮我省半小时",和"我花半天救数据",隔开很远。

这次 GPT-5.6 的讨论,不必靠恐慌收场。

更该升级的,是使用方式。

AI Agent 当然可以更主动。

但主动不等于拥有一切权限。

真正成熟的 AI Coding,不是让 Agent 什么都能做,而是让它只在该做的范围里,把事情做好。

如果你也在用 Codex 或 Claude Code,我建议今天就看一眼自己的权限设置和 AGENTS.md

你更担心 Agent 的"能力不够",还是"权限太大"?

我是徐公,我们下次见。

资料来源