到底是谁还在被codex清盘

我先AI给大家 分析 原理,也是最常见的被删盘情况,只针对 Windows系统 的 PowerShell终端。


接下来说两种方法:
1.永远不让 AI 清理文件,让他把需要清理的文件 移动 到 你指定的文件夹下 并通知你,由你统一清理。
示列:
【请不要使用如何删除文件的命令,由我进行删除,你不要进行删除文件。优先将文件移动集中在一起后通知我手动清理。】

2.告知 使用 删除命令 前的步骤,参考下文。


我使用的是codex,所以我会放在 codex 的【AGENTS.md】文件中。
【路径参考:“C:\Users\用户名.codex\AGENTS.md”】这个文件 是 cli 和 codex 桌面板 共用的。

【AGENTS.md】 模板参考:

以下是关于如何正确开展 删除文件的步骤,请阅读:
请在执行任何涉及文件/目录删除(如 rm, rmdir, del, Remove-Item, trash 等)的终端命令前,你必须无条件的严格遵守 以下4条规定,尤其是第1条:

  1. 判断终端类型 与 原生命令适配

    • 先判断终端类型:在执行任何操作前,必须先通过环境变量或系统指令明确当前终端是 Bash/Zsh (Linux/macOS)、PowerShell (Windows) 还是 CMD (Windows)或其他。
    • 严禁跨终端混用语法:
      如果是在 PowerShell 中,绝对禁止 嵌套调用 cmd /c rmdir 或使用 CMD 风格的路径转义(如 "),否则极其容易 导致 转义失效 从而误删整个盘符。必须使用 PowerShell 原生的 Remove-Item 命令。
      在 Bash/Zsh 中,使用标准的 rm 命令,严禁混入 PowerShell 特有的转义字符。
  2. 如果可行,先执行“预演”

    • 遵守先预览,后删除 原则:执行任何真实的删除命令前,必须先提供一条用于“预览/检查”的命令。
      Linux/macOS 示例:先执行 ls -la /目标路径 或 find /目标路径 -name “匹配规则”,确认列出的文件正是预期要删除的目标。
      Windows 示例:先执行 Get-ChildItem -Path “目标路径” 确认文件列表。
    • 确保没有因为 转义字符、环境变量 等解析错误 导致的路径不对,或路径指向了根目录(如 / 或 D:\)。
  3. 批量/广泛删除的分步策略
    -如果删除操作涉及大量文件(如通配符 * 匹配)或深层递归目录,绝对禁止一条命令直接执行到底。
    -请分步骤执行:如每次处理 50 个文件或按子目录划分 执行。

  4. 回收站工具建议
    智能判断,如果使用回收站在当前条件下 更为保险的话,则优先建议使用移至回收站的命令代替物理删除。


这个模板建议两种使用方法
第一种是 在【AGENTS.md】文件中,填好关于使用删除命令的提示词。
第二种是 除了【AGENTS.md】文件以外,在桌面准备一份 相同的说明。需要 让AI清理前,丢给他先读一遍。


各位佬,数据无价,备份为先

45 Likes

改AGENTS.md不一定有用的,上下文压缩之后可能就忘了,之前有人中招过。更可靠的方法是加Hook,在运行rm之类的指令之后做一个审查

5 Likes

是有这个可能的,目前还不知道codex是怎么让AI读AGENTS.md的,是一开始就读还是每个后缀都跟了个查询命令,目前我使用下来,只使用AGENTS.md的话,没有操心过删除的问题了。 都按照要求的进行了。 但被上下文压缩的可能性也是有的。

1 Like

佬win不是用不了hook吗?
—— 我擦现在window能用hook了竟然,可以可以查了下

3 Likes

其实开workplace-write + default permission这个模式也差不多够了吧,工作区以外的文件要操作都会弹人工审查的,应该不太会,虽然我已经跟楼主一样也给agents.md加了不少防误删的规则,还有default.rules也加了一些工作区外的规则

1 Like

是的,但问题在于现在还有多少人愿意用default permission,生产力太低,大部分情况都是yolo了。给模型高权限和主动性,必定在某些情况牺牲安全性

1 Like

yolo 模式启动 :face_savoring_food:

approval_policy = "never"
sandbox_mode = "danger-full-access"
4 Likes

我还是不敢,win下用codex感觉还是容易出问题,用yolo就得承担清盘风险了 :smiling_face_with_tear:

1 Like

不得不感叹win真的,终端这块总有各种花活 :distorted_face:

2 Likes

win下禁止他用powersehll的删除

8 Likes

不只有让codex删文件他才会给你清盘。有时候写代码写着写着就把文件删了

2 Likes

Codex 的 Auto-review 很好用,单独一个代理给你审核沙箱外操作
image

另外我也在提示词加了防护,以防万一 :rofl:
image

2 Likes

:grinning_face_with_smiling_eyes:用得太爽了 codex -a never -s danger-full-access

4 Likes

问下大佬们 claude里 这个限制提示词放哪个文件啊 CLAUDE.md吗

2 Likes

这个比默认的default好吗大佬 一直用的默认的 会不会识别错风险自动操作了

引用官方说明:Claude 如何记住你的项目 - Claude Code Docs

我个人用起来感觉更好,干活儿时不用人工介入授权,几乎full access一样流畅;至于风险,不能保证ai能帮你100%决策正确,但在高风险操作前帮我做一次决策我感觉已经够了。
总不能干活儿的和决策的一起来陷害我吧

1 Like

这种方式没法彻底解决,只要允许AI写代码执行,或者执行shell命令,就说不准那一坨代码就踩雷了

它可能本意并不是想要删除,只是代码有bug导致意外发生

很多看起来不像删除的命令,也有破坏性,比如文件流重定向、重命名移动、文件覆盖、操作注册表、操作磁盘/分区,文件解压覆盖等等,防不胜防

1 Like

是的 Windows下 gpt移动文件最容易清盘。全是路径问题。我被干了2次。防不胜防。直接用了hooks阻挡递归问题

1 Like

之前windows用codex被清过一次,干了我300G数据,后来就加了hook和AGENTS.md,严禁递归删除。现在用wsl了,配合zed启动codex,感觉还可以。项目目录直接复制一份到wsl里去,然后该干嘛干嘛,做完就上传github,然后windows那边再pull下来就好了,一点问题没有。
以前看佬友被清盘毫无波澜,直到自己也被清了才开始重视,真是事教人一次就会啊 :sweat_smile:

1 Like