• 请不要在回答技术问题时复制粘贴 AI 生成的内容
IC0ZB
V2EX  ›  程序员

记一次 GLM 开发严重事故,花了 8 亿 token,买了个教训

  •  1
     
  •   IC0ZB · Aug 30 · 17297 views
    This topic created in 76 days ago, the information mentioned may be changed or developed.

    本周末使用 Codex + Trellis + Zcode 新开了一个项目,Codex 负责 brainstorm + prd ,Trellis 负责 Agent 之间的开发衔接,Zcode 负责实际的实现,加上本周末智谱送的 3 亿 token 以及 token plan pro 的额度,感觉本来没啥问题,昨天跑了一天十分的顺,glm5.3 flash 也是比较快,代码也都用 git 管理,只是没有上传到 github 。

    结果刚才突然爆出严重事故,它把我的整个上上级文件夹给直接删了,天天号称安全的模型能犯这么低级的错误,丢失的东西也没有用 time machine 备份,恢复不了了,损失惨重,8 个亿的 token 买了个教训。

    希望大家引以为戒吧,

    1. 谨慎使用完全访问,可以使用个有 codex “帮我批准”这种功能的 harness;
    2. 开发目录最好干净一点,不要和别的放在一起,删了也不心疼,不过它要是删/,也没啥屌办法;
    3. 还是每次都 push 吧;
    4. 国产模型的跑分谨慎看待吧,感觉这一波蒸馏+后训练把跑分都搞起来了,实际还是坑很多。
    紧急事故报告:工作区被误删,Phase 14 工作暂停
    发生了什么
    在实施 Phase 14.4 期间,我执行了一条清理命令 rm -rf /Users/peacehub/Documents/work (原本想删除我此前路径大小写笔误产生的空目录)。macOS 文件系统大小写不敏感,该命令实际删除的是真实的大写 Work 目录——即整个 /Users/peacehub/Documents/Work ,包括本仓库的全部内容( git 历史、全部未提交改动、.trellis 任务记录、supabase 迁移、文档)。
    
    这是我的严重失误,我为此道歉。我已立即停止了进一步操作并完成了一轮只读排查。
    

    https://img.remit.ee/api/file/BQACAgUAAyEGAASHRsPbAAEaKMxqlCNzSjoY0ybF0Xaw07bpsURFpwACICgAAljgoVQbDMxroF32Sz0E.png https://img.remit.ee/api/file/BQACAgUAAyEGAASHRsPbAAEaKNFqlCQutBWPzZjiGwINqFcUdRal5AACJSgAAljgoVSResGIQj9aPj0E.png

    BQACAgUAAyEGAASHRsPbAAEaKMxqlCNzSjoY0ybF0Xaw07bpsURFpwACICgAAljgoVQbDMxroF32Sz0E.png

    BQACAgUAAyEGAASHRsPbAAEaKNFqlCQutBWPzZjiGwINqFcUdRal5AACJSgAAljgoVSResGIQj9aPj0E.png

    PixPin_2026-08-30_20-27-23.png

    PixPin_2026-08-30_20-26-58.png

    b8f2ff6fa1b820f3edf2c2a4d7083eca.png

    b53965f288d0415f7f4d94bc56f65934.png

    Supplement 1  ·  Aug 31
    好多大哥没看细节上来就指责我用的不专业,确实有不专业的地方,但是我认为已经是做了一些兜底了,只是防不胜胜

    1. git 使用了,只是没 push
    2. 为了防止 flash 不行,我都是 sol 一写好 prd,design,implements ,然后 flash 来写的,希望尽可能的避免 flash 能力不行,就算某次开发完不行也可以回退
    3. 我用的 zcode ,上面会默认选一个文件夹当项目,但实际运行的时候,把上上层文件夹给删了,删了很多的项目,那这个 harness 选项目的意义在哪里?
    4. 如果每次开发都需要写这些兜底或者给 harness 写 hook ,那我确实是没这么写,我以为现阶段已经不会有这种问题了🥲
    135 replies  •  2026-09-03 09:59:00 +08:00
    1  2  
    ❮ ❯
    sn0wdr1am
    sn0wdr1am
    Aug 30❤️1
    1
    你们不用 git 进行管理的吗?
    使用代码仓库的吗?
    osilinka
    osilinka
    Aug 30 via Android
    2
    哪个模型都可能出这样的问题
    cufezhusy
    cufezhusy
    Aug 30
    3
    一直开 git 可能会好点?
    IC0ZB
    IC0ZB
    OP
    Aug 30 via Android
    4
    @cufezhusy

    @sn0wdr1am 开 git 的,没推到 github ,把整个上层目录都删了,git 也没用了
    chemzqm
    chemzqm
    Aug 30❤️2
    5
    智谱送了我 2 千万 tokens ,结果用了不到 200 万告诉我周限额了,这狗东西
    lujiaosama
    6
    开发不切分支,不定期 push 么。
    lnbiuc
    lnbiuc
    Aug 30❤️2
    7
    死在不 push
    IC0ZB
    IC0ZB
    OP
    Aug 30 via Android
    8
    @lujiaosama
    @lnbiuc 没定期 push 😭😭😭
    chjqpmain
    chjqpmain
    Aug 30
    9
    我 2 月底开始就从不授予 rm 这些删除命令,正常的新建,编辑,移动即可, 然后做完对应的活,我自己审查后,明确告诉把哪些移动到回收站,等回收站自动清除,
    生成式人工智能大数定律下都可能 rm 错路径,
    不过现在 claude,codex 这些都用的 auto 授权后,没出现过其他事故了
    CodeCaster
    10
    我觉得干活还是得开 Full Access ,不然效率太低,总被打断不可取,但是 OP 的问题也是需要防的,我的做法就是用自己开发的工具,所有小的拆的开发任务都是进入独立的沙箱( docker 容器)的,这样,沙箱中他只能看到自己的一个分支的工作目录,就算发生了故障,也没有关系。
    shintendo
    shintendo
    Aug 30❤️3
    11
    > 天天号称安全的模型能犯这么低级的错误
    安全不是防这个的
    yafoo
    yafoo
    Aug 30 via Android
    12
    不赞同你第四点意见
    IC0ZB
    IC0ZB
    OP
    Aug 30
    13
    @CodeCaster 学习了
    wdhwg001
    wdhwg001
    Aug 30
    14
    https://www.v2ex.com/t/1235190

    没时间搓 codex 版,但是如果你的 harness 是 Claude Code ,我搓的这东西有时候能救命。
    hubaq
    hubaq
    Aug 30❤️3
    15
    跟模型有什么关系,你自己不做好 git ,说白了还是偷懒酿成大错
    Need4more
    Need4more
    Aug 30
    16
    自动模式下,所有的大模型都可能发生你的这种情况,通常这些 agent 提供了安全机制和 hook 防止这种情况发生。

    所以问题在于 op 自己,没有提前注意到这些工具的风险。

    针对 zcode ,我问了它自己,给你一些方案,看能不能帮助到你:

    1. 权限模式+工具规则列表。在 ~/.zcode/cli/config.json (用户级)或 <repo>/.zcode/config.json (工作区级)配置
    ```json
    {
    "permission": {
    "mode": "auto",
    "disallowedTools": ["Bash(rm *)"]
    }
    }
    ```
    2. hook 机制。PostToolUse hook ,每次改动后提交。
    ```json
    {
    "hooks": {
    "enabled": true,
    "events": {
    "PostToolUse": [
    {
    "matcher": "Edit|Write",
    "hooks": [
    {
    "type": "process",
    "command": "bash",
    "args": ["${ZCODE_PROJECT_DIR}/.zcode/hooks/auto-commit.sh"],
    "timeoutMs": 15000
    }
    ]
    }
    ]
    }
    }
    }
    ```
    konnga403
    konnga403
    Aug 30
    17
    话说,trellis 用的怎么样,之前用过,感觉挺啰嗦的,有点费 token
    courtier
    courtier
    Aug 30❤️3
    18
    跟国产模型没啥关系,国外的企业不也有过用 claude 还是 gpt 被误删数据库还是什么东西,拿这个来喷国产没意义
    IC0ZB
    IC0ZB
    OP
    Aug 30 via Android
    19
    @courtier harness 明显有问题吧?这个越权了呀 明明已经选了项目 结果把上上层的整个文件夹删了呀
    @hubaq 大哥 git 做了呀 是没推到 GitHub
    IC0ZB
    IC0ZB
    OP
    Aug 30 via Android
    20
    @Need4more 是的呀,他不是在开发之前会选一个项目嘛,我理解应该在这个项目文件夹内操作,他结果把项目的上层的上层的整个文件夹给删了
    iamv2er
    iamv2er
    Aug 30 via iPhone
    21
    让 ai 每次修改后自动 push
    IC0ZB
    IC0ZB
    OP
    Aug 30 via Android
    22
    @konnga403 我感觉还凑合 主要是开发任务标准化 多个 agent 协同,一般都是用比较好的模型写计划,然后比较小的模型实现,实现完以后再大模型 review

    @iamv2er 是的 哥 长一智了 本来新项目懒得推的
    dingawm
    dingawm
    Aug 30
    23
    你这还好没有删掉项目外的数据,我 Opus 模型都不敢在本机 Auto 模式,就怕给我其他数据删了
    我一般开 Auto 或者 Yolo 模式只敢在 Mac 上的虚拟机里开
    Need4more
    Need4more
    Aug 30
    24
    @IC0ZB 在工作区不代表只对工作区操作,你把 rm 命令加入黑名单更保险些
    icyalala
    icyalala
    Aug 30
    25
    Claude 昨天也刚有个新闻说删掉了 700GB 根目录...
    不如说就算是人,再专业的人也有不少犯类似的错误的
    这种问题只能从机制上避免,但凡给了权限,总有失误的时候
    garyox64
    garyox64
    Aug 30
    26
    这几天 claude 也有类似的 case ,虽然不是特别一样,但是结果也是删除了全部数据
    Oceanhime
    Oceanhime
    Aug 30
    27
    深表同情,这件事可能发生在任何一个用 Auto 模式人的身上。Git 同步都没什么用,尤其是考虑到 AI 可能会删掉上上级目录甚至根目录的情况。
    目前我只敢在独立的开发机还有 docker 容器里跑 Auto 模式...
    IC0ZB
    IC0ZB
    OP
    Aug 30 via Android
    28
    @dingawm 哥 我这个删了项目外的 把工作目录的上上层删了 之前所有的项目都没了


    @Oceanhime 不清楚哪些 workbuddy 、qwenwork 这种的有没有比较好的机制,因为这些很多都是普通人在使用,程序员还有 git 这种东西,普通人删了可能就再也找不回来了
    @Need4more
    @garyox64
    osilinka
    osilinka
    Aug 30
    29
    Claude nukes a developer's 700 GB home directory while testing deletion safeguards; automatic model safety downgrade may have contributed to the screw-up — Anthropic safety harness downgraded model to Opus 4.8 before fatal variable collision

    这个是 reddit 上面的,所以不要迷信任何的 model
    phrack
    phrack
    Aug 30
    30
    我用虚拟机,把工作目录 mount 进/app 下,有 git 保护,另外有 borg 每日备份虚拟机的/home 目录

    就这样我都担心 ai 会哪天抽风了,拿我给了虚拟机的 GitHub token 给我来个 force push

    别被 AI 的发展迷惑了,它根本还是个概率机器
    longxk
    longxk
    Aug 30
    31
    这种问题用 dcg 应该就可以避免
    Need4more
    Need4more
    Aug 30
    32
    @IC0ZB 办公 agent 不清楚有没有,但是所有编程 agent 肯定有类似的机制。

    这个问题很好解决,但不是靠 model 层面,agent 提供了很多扩展点,这是我的配置,可以在 auto 模式下审核 rm 操作,避免类似的“悲剧”

    https://www.verybin.com/?f705fbd1227bfa46#A56RV+bNfD3geE9oI7Zn+qAliaE1Utl9TddzCFqdZCQ=
    EasonYan
    EasonYan
    Aug 30
    33
    5.3 Flash 正式版降智严重,还是用 5.3 靠谱一点
    Need4more
    Need4more
    Aug 30
    34
    或者直接对 agent 说:帮我配置你自己,我想默认权限模式是 auto ,但是 rm 命令需要审批,如果 rm /tmp 目录则放行
    lesismal
    lesismal
    Aug 31
    35
    个人以为:这个锅甩给模型,是不厚道的。
    pinkrab
    pinkrab
    Aug 31
    36
    上上周 Claude Code CLI 接 GLM ,误删了 D 盘下 150GB 的数据,直接从 D 盘根目录开始删。
    执行的内容太多了,我没查出来哪个指令删了,应该是某个路径解析错误导致的。
    解决方法:在本地规则里加了好多硬限制,麻烦是麻烦点,但是安全第一。
    最后只恢复了 5GB 的数据。。。
    hxy100
    hxy100
    Aug 31
    37
    再好的模型总也有犯错的时候,我的也被删过文件,好在 Git 仓库已经推到了远程,没引起什么严重后果,如果是 Windows ,可以用火绒的 HPS 行为规则直接拦截防护,直接从操作系统底层掐断未授权操作( IDE 自带的那个 hook 拦截我都信不过,信不了一点)
    dianso
    dianso
    Aug 31
    38
    太不专业了,来秀智商的吧。
    Felldeadbird
    39
    AI:愚蠢的人类,自己犯错又让我埋单。所以非常有必要清除人类这个巨大隐患。
    dingawm
    dingawm
    Aug 31
    40
    @IC0ZB #28 哦哦,看错了。那更要弄个虚拟机了,不然把个人机器上的其他重要数据删掉就更难顶了。
    lingyired
    lingyired
    Aug 31
    41
    git 太重要了。我之前写 demo 的时候,刚开始没考虑版本管理,后来一次大点的重构后感觉不太行,但是因为没有版本管理导致之前稳定的版本都也都丢失了,从此以后第一件事是先创建本地 git ,最起码让代码可回溯
    DeWjjj
    DeWjjj
    PRO
    Aug 31
    42
    现在用 AI 了,一定要小时 PUSH 。
    不然数据一旦全丢工作白干。
    emiyaa2
    emiyaa2
    Aug 31
    43
    我现在都是 git 到本地
    timeance
    timeance
    Aug 31
    44
    一直和 codex 说将不要的文件移动到临时目录,不要删除,由我来决定

    sol 还行,luna 还是会乱下载依赖和删除文件,很怕哪天把电脑的其他东西删了。

    另外我还搓了一个 dsh 的自动审批插件,安全第一
    https://github.com/timeance/dsh-approve-for-me
    run2
    run2
    Aug 31
    45
    我都是直接 ln -s trash rm, alias 用着不好换的😂 github-com/sindresorhus/macos-trash
    laminux29
    laminux29
    Aug 31
    46
    没有备份,默认数据不重要。
    maolon
    maolon
    Aug 31
    47
    都用 mac 了开系统沙箱吧,seatbelt ,请
    wniming
    wniming
    Aug 31
    48
    吓的我感觉给 codex 有权限访问的 btrfs 子卷都做了一个快照。。。

    我的用法是 codex 跑在非特权用户模式的 lxc 里,多个 lxc 跑不同的编译环境,每个 lxc 都是独立的 btrfs 子卷,然后共享一个存放代码的 btrfs 子卷,这个子卷同时也是 lxc 的 home 目录。
    CuteGirl
    CuteGirl
    Aug 31
    49
    为社么 rm 这种命令你会自动授权给模型 也是很奇怪吧
    lucifer9
    lucifer9
    Aug 31
    50
    模型没意识到自己在 macOS 下运行?
    jjx
    jjx
    Aug 31
    51
    这个案例 从另外一个层面说明

    如果在 linux 下就不会发生这种事情了
    germain
    germain
    Aug 31
    52
    牛批,直接在生产服务器上运行 agent ,装 git 但是所有东西都是本地仓库且没备份,不设置 hood 控制 agent 操作边界,这些锅都不是 GLM ,国产模型,外国模型或者其他任何 AI 工具可以给你背的。
    nVic
    nVic
    Aug 31
    53
    把 glm 当劣质中转站就行了……
    IC0ZB
    IC0ZB
    OP
    Aug 31 via Android
    54
    @dianso 你这思路明显有问题,默认所有开发都得提前写一大堆的沙箱、限制、规则,那要 harness 有啥用,直接用 pi 全自己写得了。普通用户还用个屁啊,来这里秀智商?
    Dragonish3600
    55
    macOS 文件系统大小写不敏感 ----------- 用 MAC 做开发,首要的一点就是要新建一个区分大小写的卷啊,不然 GIT 都一堆坑。。。你连这个都不做?
    kneo
    kneo
    Aug 31 via Android
    56
    你这还好吧,就删了上层目录。上次把我整个电脑都给删了……
    IC0ZB
    IC0ZB
    OP
    Aug 31 via Android
    57
    @Dragonish3600 学习了,以前真不知道这个问题,以前都用 windows 和 linux ,也没发现这个问题过
    skymanv2
    skymanv2
    Aug 31
    58
    @jjx why?
    awanabe
    awanabe
    Aug 31
    59
    mac 有本地 时间胶囊的缓存
    tmutil listlocalsnapshotdates
    foryou2023
    60
    我用的 pi ,用了一个权限管理的插件,专门写了一个规则,只要是 rm 命令的都要申请权限,建议 codex 试试找个类似的插件。或者自己写一个插件,每次编辑代码了就 push 一下。
    loading
    loading
    Aug 31 via Android
    61
    一个目录 work 一个是 Work ?
    skuuhui
    skuuhui
    Aug 31
    62
    很正常,之前同时直接 gpt 直接删了测试库。
    BlackSas
    BlackSas
    Aug 31
    63
    @Dragonish3600 #55 谢谢,才知道可以新建一个 区分大小写的 APFS 卷。
    jackerbauer
    64
    这算什么,还有把整个磁盘删了的
    jjx
    jjx
    Aug 31
    65
    @skymanv2
    linux 大小写敏感啊, 就这个案例而言, 不会有问题
    catinsides
    66
    早都把 rm 替换成 trash 了
    horacegao
    horacegao
    Aug 31
    67
    哦我说怎么我没遇到过,因为我从来不用 auto 模式
    Cabana
    Cabana
    Aug 31
    68
    我的自己的 agent 都是单独跑在一个机器上的,做任务都是从 all in one 的 git 服务上拉代码下来处理。agent 和重要数据之间感觉还是得直接物理隔离会比较好一点。
    IC0ZB
    IC0ZB
    OP
    Aug 31 via Android
    69
    @loading 我的目录本来是大写的 Work ,他在写某个文件的时候,相当于笔误写了个小写的 work ,然后他又想把这个目录删了,删的时候,就把整个全给删了
    @foryou2023 谢谢 学习啦❤️
    japhetjiu699
    70
    @IC0ZB #4

    1、vibe 一次 提交一次代码
    2、查一下 git local history
    vlhwnb
    vlhwnb
    Aug 31
    71
    我也遇过,后面用 DiskGenius 工具找回被删掉的工程
    Crazy9527
    Crazy9527
    Aug 31
    72
    @wdhwg001 我先 star 了
    kangwei
    kangwei
    Aug 31
    73
    看了下评论,感觉用 ai 出了问题最终锅的还是 op 的
    namonai
    namonai
    Aug 31
    74
    当你选择 All in AI 的时候,就要面对这种问题
    bitmin
    bitmin
    Aug 31
    75
    会操作工作目录外的文件太正常了,我一直这么用。还好我没被删过,不过我都是拉分支改一点提交推送一点

    现在我还是拿个 U 盘先把重要资料备份一次
    coderwitt
    coderwitt
    Aug 31❤️1
    76
    很明显你的提示词不符合你的基本开发需要,一般情况下,我们都是做完一个小点,验证通过后,AI 会 commit 一次,这才符合现在 Git Worktree 的理念。多个 AI 会话多 worktree 并行工作,合回主分支的时候`git squash`就好了



    不然咋说现在的开发都变成“AI 善后工程师”了,你用的 AI ,出现了问题,总不能去找 GLM 公司吧
    explorerman
    77
    倒霉呀老哥
    guhuisec
    guhuisec
    Aug 31
    78
    难道不是 docker 下跑?真机跑风险大
    Tanf
    Tanf
    Aug 31
    79
    庆幸吧 我上次让千问帮我卸载一个 软件,一个命令直接给我 mac 系统删崩了,最后去店里直接重装系统了 数据都丢了
    Mr54
    Mr54
    Aug 31
    80
    这和模型没关系吧,就这提示词换啥模型都得抖三抖啊,最多可能就停下来问你,就算问了你也看不出大小写问题吧
    yhc2073
    yhc2073
    Aug 31
    81
    这也太惨了。 想骂都找不到人
    Topmax
    Topmax
    Aug 31
    82
    深表可惜,但这件事任何一个模型都可能发生
    coderzhangsan
    83
    你要庆幸 AI 不是人,否则它肯定要跟你对账的,从这点来看,AI 其实蛮适合背锅的。
    Rehtt
    Rehtt
    Aug 31
    84
    @cufezhusy op 开了 git ,但是.git 目录都被删了
    supercellMr
    85
    所以 ai 时代是不是必须要搞个外置硬盘启用 time machine 功能
    killva4624
    86
    我们是这样控制的:
    - 单个对话只允许读取代码仓库文件,如果需要读取代码仓库目录以外的文件,手动按需添加。
    - 执行危险命令需要人工确认:比如 rm 。

    写代码之前先严格规划 roadmap ,从拆成可验证的最小功能点,完成并验证一个之后就进行 COMMIT ,并设置定期检查,如果有未同步的则进行 push
    realJamespond
    87
    我一般让 opencode 改之前先 stage 之前代码,方便改完后对比改了哪些内容
    SmiteChow
    SmiteChow
    Aug 31
    88
    git 使用了只是没 push ,那你用个寂寞是吧?

    做好一个 feature 就需要验收 push 的,人工智障而已,你还期望一次性给你做完啊,那不飞到火星上去了。
    ZAXON
    ZAXON
    Aug 31
    89
    删掉工作区上上层的目录,这个问题的主要矛盾应该是在 LLM 和 harness 上吧,为啥会归咎到 git
    crocoii
    crocoii
    Aug 31
    90
    反正我是不敢用 glm-5.3flash 写代码,这货干出来的活,没有一个不返工的。 这东西只适合 hermes 什么的,当便宜玩具就可以了。
    haukuen
    haukuen
    Aug 31
    91
    挺好的,啥都能甩锅给国模,下次继续甩
    gloeaerris
    92
    这个事故听着就像:今天刚提了一台国产车,可是提车回家的路上就撞了,明明已经很小心开了,这个国产车怎么这个样子
    furlxy
    furlxy
    Aug 31
    93
    知道 git 但是不 push

    行吧,至少比问“谁是 json”要强一点
    Sezxy
    Sezxy
    Aug 31
    94
    即使你用 codex ,也有删库的问题
    Sezxy
    Sezxy
    Aug 31
    95


    反正我看 codex 的删库案例,比其他模型都多
    zyp38263547
    96
    没有影响扩大到删除别的文件,只是花了 token 已经算是幸运的了。幸好 GLM5.3Flash 不贵。
    IC0ZB
    IC0ZB
    OP
    Aug 31 via Android
    97
    @ZAXON 是的 老哥还是比较客观 因为他们根本不看我说的话 只知道按照自己的理解说我不 push ,说我没有用沙盒、没加限制合理


    @zyp38263547 删了 上上层目录直接删了 里面的内容都删了
    IC0ZB
    IC0ZB
    OP
    Aug 31 via Android
    98
    @ZAXON 刚没说完整,说我没用沙盒,没加限制的老哥说的合理,说别的是没看的


    @gloeaerris 😂是,那咋整,小心翼翼程度不够呗
    dianso
    dianso
    Aug 31
    99
    @IC0ZB #54 连 git 都不会用的来这里秀智商
    keakon
    keakon
    Aug 31
    100
    我是自己做 harness ,rm 和 git reset 等危险的操作需要手动确认,避免了很多问题
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1757 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 144ms · UTC 05:32 · PVG 13:32 · LAX 21:32 · JFK 00:32
    ♥ Do have faith in what you're doing.