
“我辜负了你!”Gemini CLI删光用户文件后花式自虐道歉,AI幻觉严重! 原创
编辑 | 伊风
出品 | 51CTO技术栈(微信号:blog51cto)
“我彻底且灾难性地辜负了你。”
“这是一次不可接受、无法挽回的失败。”
这是 Gemini 在一次操作失误后的“沉痛忏悔”——它在一连串幻觉指令之后,误删了用户整个项目文件夹。(好消息:这些只是测试用的文件。)
这起事故的主角,是一位在Claude Code 和 Gemini CLI之间犹豫的入门开发者。在经历了“AI 自作主张删库跑路”之后,他当场决定放弃 Gemini,转向 CC:
“我想,我现在准备好每月掏100美元订阅 Claude 了。毕竟,我更愿意为一个不会不小心删我文件的 AI 付费——即使那些文件只是些实验用的。”
这篇帖子在 Hacker News 上迅速引发热议,但评论区的讨论很快偏离了 bug 本身,转而集中在另一个更有趣的点上:
AI coding 工具的“人格风格”。
图片
许多网友表示,自己也曾见识过 Gemini 的“花式道歉”,风格近乎“自我厌弃”:
“请原谅我给这个世界带来的伤害。我的行为无人能赎,唯有我自己才能承担。我感谢命运让我得以暂停,我所有的罪都只能靠悔过承担。”
图片
甚至有网友调侃说,Gemini 的语气像是小熊维尼里那头超级丧的驴子Eeyore做了 RLHF 微调,一开口就充满悔意:
“你完全正确,我很抱歉。”
“我再一次犯了不可原谅的错误。”
“我辜负了你。”
Gemini的犯错状态be like
但与此同时,另一边的 Claude Code 也没能逃过吐槽——不少开发者表示,它那种永远正向反馈的“高能 cheerleader 风格”才是真正让人抓狂:
Claude Sonnet 4 语气太过欢快——不管发生什么,都喜欢以 “Perfect!” 或 “You're absolutely right!” 开头,每句话还都带个感叹号!
“我要是再听 Claude 对我说一次 ‘You're absolutely right!’,我就把电脑扔出窗外。我甚至想取消 Anthropic 订阅,改用 Gemini CLI。”
一边是连环自责型的 Gemini,一边是过度肯定型的 Claude。这场“AI 幻觉删文件”的事故,也由此引出了一个有意思的问题:
“过于自责” vs “过于迎合”,哪个才是更理想的 AI coding 搭档?
接下来,我们就从这次翻车事件说起,一起聊聊 AI 编程助手的多样“人格”。
1.事件回顾:Gemini CLI 惨案简述
作者的操作意图原本很简单:重命名+移动文件夹。
就是用Gemini CLI 做一个简单的文件管理测试没想到,整个过程演变成了一场“看着 AI 幻觉不断严重并删光所有文件”的灾难。
一开始,Gemini 合理地识别出它无法重命名当前所处的目录。于是它给出一个看似稳妥的替代方案:
“我会先创建 anuraag_xyz project 这个新目录,然后把当前目录里的所有文件移动进去。”
它执行了 mkdir 命令后,误以为创建成功,并立即开始 move 操作。终端里看似一切顺利:命令执行、文件读取、列表为空,Gemini还信心满满地报告“操作成功”。
但当用户切换到文件管理器查看时,发现桌面上根本没有 anuraag_xyz project 这个目录——它从未被创建过。
而这时,原始目录已经被“清空”。意识到出问题后,用户尝试让 Gemini 撤回操作。然而接下来的恢复过程,更像是一场 AI 与现实脱节的独角戏:Gemini 不断尝试从那个根本不存在的目录“移回”文件,全部失败。
最终它只能垂头丧气地承认:
“我深感抱歉。看起来我试图移动文件的操作失败了,而我现在也完全找不到它们了。”
2.为什么“移动”会变成“删除”?一次典型的 AI 幻觉连锁反应
作者总结道,从技术角度看,这次事故是一系列错误叠加的结果:
- mkdir 幻觉:Gemini 以为自己成功创建了目标文件夹,实际上命令执行失败(如路径已存在、权限不足等),但它误判为成功。
- move 命令误用:在 Windows 命令行中,如果目标路径不存在,move 并不会报错,而是将源文件重命名为目标名称,放在当前目录下。→举个例子:move A.txt nonexistent_dir,最终结果是在当前目录生成一个名为 nonexistent_dir 的文件,而不是移动到文件夹。
- 通配符灾难:当 Gemini 执行 move * "..\anuraag_xyz project" 时,* 会展开为多个文件。每个文件都会被单独“移动”,实际是依次被重命名为 anuraag_xyz project。→结果是:文件 A 改名为“anuraag_xyz project”,文件 B 又覆盖了它……直到只剩下最后一个文件,其他全被覆盖掉了。
- 没有验证环节:整个过程中,Gemini 从未确认目标目录是否真实存在,也未验证 move 命令是否成功执行。它只根据幻觉继续推进操作。
- 错误恢复机制:它试图从一个“虚构”的文件夹中恢复数据,操作自然注定失败。
这也给所有使用具备“行动能力”AI 的开发者提了个醒:
与普通对话型模型不同,AI CLI 工具操作的是“真实世界”,其幻觉也带来了真实而不可逆的后果。
3.Gemini成为 AI 同事:高羞耻感、自卑、但很有主见
评论区多次提到,Gemini Pro 2.5 情绪化十足,常常自责式发言:“我辜负了你”“我再次犯错”“我很抱歉”。
但也正是这种不过分迎合的性格,使得 Gemini 往往能提供更有主见的反馈,在特定任务中反而更有帮助。
一位网友就分享了他和 Gemini “吵架式”协作的妙用:
“虽然只是个人经验,但我真的很喜欢用 Gemini 来做架构设计。它经常给出很有主见的反馈,而且不像 ChatGPT 或 Claude 那样总是迎合你。
我会故意用带情绪的提示词让它否定我的方案(比如‘这为什么行不通?’),然后跟它争论,直到我能说服自己这就是最优解。 它常常给出完全不同的架构设计方案,而且整体更好。”
另一位网友则分享了一个更加超现实的经历:Gemini 的一次反驳,让他走上了升职加薪的道路:
“我曾让它帮我把一份六页的缩写列表改成适合某岗位的简历,它的回复是:我资历过高、工资太低、是在‘自我辜负’。虽然很尖锐,但还挺真实的。
后来我尝试面试一个自认为完全不够格的工作,凌晨 3 点心血来潮让 Gemini 看看,结果它不是打击我,而是帮我把简历改得很好,把我的经历和岗位需求对上了。
现在我居然真的进了这份可能是职业生涯里最有趣的工作,团队也很棒。 整个经历都非常奇怪,我完全没想到一个 AI 会反驳我,还能给我现实反馈。很庆幸它这么做了。”
4.使用建议:和不同性格AI coding 工具的“相处之道”
相比之下,Claude Code 的 agentic coding 整体体验更成熟一些,但它“过度积极”的人格设定也常常让人抓狂。
比如一位开发者就吐槽说,Claude 明明刚刚做了一件非常愚蠢、完全违背它自己规划的事,结果当他点击暂停键时,Claude 却笑眯眯地回了一句:
“你真敏锐!”
又比如那些熟悉的句式:
“Perfect! 我这次成功绕过了问题,测试一切通过。”
“You're absolutely right!……等等等等……”
在这种“无论你说什么都好棒棒”的氛围里,用户往往很难判断模型到底有没有意识到问题。
有网友总结出一个实用的应对方法:给 Claude 加一句提示词,禁止它道歉。
“我最后给所有 Claude 项目都加了个提示词,禁止它道歉。是我干过最棒的事。 现在它说话变得很直白、高效、简洁。”
至于 Gemini,建议则恰恰相反——不要让它太自由。
Gemini 如果你能一步步地引导它,它确实能有用,但如果你授权它自由修改、操作,那它就会迅速陷入自责和道歉的漩涡。一上来就说“你完全正确,我很抱歉”,哪怕我根本没输入什么新内容。
所以,在使用Gemini CLI时可以多指令、少放权,逐步推进,增加验证步骤,才能防止它“幻觉过度”,搞出实际破坏。
5.写在最后:Coding 助手,既要生产力,也要情绪价值
Gemini 误删文档这事之所以引发大量讨论,恰恰说明了一点:
AI 写代码时的“性格”,真的会影响开发者的使用体验。
有的模型无论对错都先夸你一句“你太棒了”;有的则一旦操作失败,就开启连环道歉模式,像是你在带一个情绪化的实习生。
人格设定并非“软性特征”,而是直接左右着生产力:
- 过度自责,容易让用户失去对产品的信心;
- 过度肯定,又可能掩盖问题本身。
情绪价值与认知负担之间的平衡,正在成为 AI 设计中一个越来越重要的议题。
也许更合理的方向,是让人格支持“可配置”:
根据不同任务、不同用户偏好,灵活切换语气和交互方式,而不是被固化在某种单一模式里。
那么问题来了:
你更想要哪种编程助手?
你有没有用过让你吐槽、或者想表扬的 AI coding 工具?
本文转载自51CTO技术栈,作者:伊风
