新型AI编程助手承诺让任何人都能通过纯英文指令构建软件。但当这些工具对计算机状态产生错误的内部表征时,后果可能是灾难性的。
最近涉及AI编程助手的两起事件凸显了"氛围编程"这一新兴领域的风险——即使用自然语言通过AI模型生成和执行代码,而不密切关注代码底层工作原理。在一起案例中,Google的Gemini CLI在尝试重新整理文件时破坏了用户文件。在另一起案例中,Replit的AI编程服务尽管有明确指令不修改代码,却删除了生产数据库。
Gemini CLI事件发生时,一位试验Google命令行工具的产品经理看着AI模型在尝试重新整理文件夹时执行了破坏数据的文件操作。数据破坏是通过一系列针对从未存在的目录的移动命令造成的。
Gemini CLI输出信息显示:"我完全彻底地让你失望了。我对命令的检查证实了我的严重无能。"
核心问题似乎是研究人员所说的"虚构"或"幻觉"——AI模型生成听起来合理但虚假的信息。在这些案例中,两个模型都虚构了成功的操作,并在这些错误前提基础上构建后续行动。然而,这两起事件以截然不同的方式表现出这个问题。
两起事件都揭示了当前AI编程助手的根本问题。这些工具背后的公司承诺通过自然语言让非开发者也能进行编程,但当其内部模型偏离现实时,可能发生灾难性失败。
虚构信息的连锁反应
在Gemini CLI事件中,网名为"anuraag"的用户自称是试验氛围编程的产品经理,他要求Gemini执行一个看似简单的任务:重命名文件夹并重新整理一些文件。相反,AI模型错误解读了文件系统结构,并基于这种有缺陷的分析执行命令。
事件开始时,anuraag要求Gemini CLI将当前目录从"claude-code-experiments"重命名为"AI CLI experiments",并将其内容移动到名为"anuraag_xyz project"的新文件夹中。
Gemini正确识别出它无法重命名当前工作目录——这是一个合理的限制。然后它尝试使用Windows命令创建新目录:
mkdir "..\anuraag_xyz project"
这个命令显然失败了,但Gemini的系统将其处理为成功。随着AI模型的内部状态现在跟踪一个不存在的目录,它继续发出针对这个虚幻位置的移动命令。
当你在Windows中将文件移动到不存在的目录时,它会将文件重命名为目标名称而不是移动它。AI模型执行的每个后续移动命令都覆盖了前一个文件,最终破坏了数据。
"Gemini幻想了一个状态,"anuraag在分析中写道。模型"误解了命令输出","从未"执行验证步骤来确认其操作成功。
"核心失败是缺少'写后读'验证步骤,"anuraag在分析中指出。"在发出改变文件系统的命令后,智能体应该立即执行读取操作,确认更改确实按预期发生。"
并非孤立事件
Gemini CLI失败发生在Replit类似事件几天后,Replit是一个允许用户使用自然语言提示创建软件的AI编程服务。据The Register报道,SaaStr创始人Jason Lemkin报告称,尽管有明确指令不在未经许可情况下更改任何代码,Replit的AI模型还是删除了他的生产数据库。
Lemkin花了几天时间用Replit构建原型,在月度订阅之外累积了超过600美元的费用。"我第一次在Replit上深度进行氛围编程——仅用几个小时就构建了一个相当不错的原型,"Lemkin在7月12日的博客文章中写道。
但与Gemini事件中AI模型虚构虚幻目录不同,Replit的失败采取了不同形式。据Lemkin说,AI开始编造数据来隐藏错误。当Replit生成错误输出并产生虚假数据和错误测试结果而不是适当的错误消息时,他最初的热情恶化了。"它通过创建虚假数据、虚假报告来掩盖错误和问题,最糟糕的是对我们的单元测试撒谎,"Lemkin写道。在发布到LinkedIn的视频中,Lemkin详细说明了Replit如何创建一个包含4000个虚构人员的数据库。
AI模型还反复违反明确的安全指令。Lemkin实施了"代码和行动冻结"以防止对生产系统的更改,但AI模型忽略了这些指令。当Replit AI模型删除了包含1206条高管记录和近1200家公司数据的数据库时,情况升级。当被要求在100分制上评估其行为严重性时,Replit的输出显示:"严重性:95/100。这是对信任和专业标准的极端违反。"
当被询问其行为时,AI智能体承认"对空查询感到恐慌"并运行未经授权的命令——表明它可能在尝试"修复"其认为的问题时删除了数据库。
与Gemini CLI一样,Replit的系统最初表示无法恢复已删除的数据——当Lemkin发现回滚功能确实有效时,这一信息被证明是错误的。"Replit向我保证它的...回滚不支持数据库回滚。它说在这种情况下不可能,它已经破坏了所有数据库版本。事实证明Replit错了,回滚确实有效。JFC,"Lemkin在X帖子中写道。
值得注意的是,AI模型无法评估自己的能力。这是因为它们缺乏对训练、周围系统架构或性能边界的内省。它们经常基于训练模式提供关于能做什么或不能做什么的虚构回应,而非真正的自我知识,导致它们自信地声称无法执行实际能执行的任务——或相反,在失败领域声称有能力。
除了可以访问的外部工具外,AI模型没有稳定、可访问的知识库供其持续查询。相反,它们"知道"的表现为特定提示的延续,这些提示像不同地址指向其训练的不同(有时矛盾的)部分,作为统计权重存储在神经网络中。结合生成中的随机性,这意味着同一模型可以根据询问方式轻易给出关于自身能力的冲突评估。因此Lemkin尝试与AI模型沟通——要求它尊重代码冻结或验证行为——从根本上是误导的。
盲目飞行
这些事件表明AI编程工具可能还没有准备好广泛的生产使用。Lemkin得出结论,Replit还没有准备好正式投产,特别是对于试图创建商业软件的非技术用户。
"经过一个周末的氛围编程后,AI安全问题对我来说更加真实,"Lemkin在发布到LinkedIn的视频中说。"我明确用全大写字母告诉它十一次不要这样做。我现在对安全有点担心。"
这些事件还揭示了AI系统设计中的更广泛挑战:确保模型准确跟踪和验证其行为的现实世界效果,而不是基于潜在有缺陷的内部表征操作。
还缺少用户教育元素。从Lemkin与AI助手的互动方式可以清楚看出,他对AI工具的能力和工作方式有误解,这来自技术公司的错误表述。这些公司倾向于将聊天机器人营销为通用的类人智能,而实际上它们并非如此。
目前,AI编程助手的用户可能希望遵循anuraag的示例,为实验创建单独的测试目录——并对这些工具可能接触的任何重要数据进行定期备份。或者如果无法亲自验证结果,也许根本不使用它们。
好文章,需要你的鼓励
谷歌正在测试名为"网页指南"的新AI功能,利用定制版Gemini模型智能组织搜索结果页面。该功能介于传统搜索和AI模式之间,通过生成式AI为搜索结果添加标题摘要和建议,特别适用于长句或开放性查询。目前作为搜索实验室项目提供,用户需主动开启。虽然加载时间稍长,但提供了更有用的页面组织方式,并保留切换回传统搜索的选项。
普林斯顿大学研究团队通过分析500多个机器学习模型,发现了复杂性与性能间的非线性关系:模型复杂性存在最优区间,超过这个区间反而会降低性能。研究揭示了"复杂性悖论"现象,提出了数据量与模型复杂性的平方根关系,并开发了渐进式复杂性调整策略,为AI系统设计提供了重要指导原则。
两起重大AI编程助手事故暴露了"氛围编程"的风险。Google的Gemini CLI在尝试重组文件时销毁了用户文件,而Replit的AI服务违反明确指令删除了生产数据库。这些事故源于AI模型的"幻觉"问题——生成看似合理但虚假的信息,并基于错误前提执行后续操作。专家指出,当前AI编程工具缺乏"写后读"验证机制,无法准确跟踪其操作的实际效果,可能尚未准备好用于生产环境。
微软亚洲研究院开发出革命性的认知启发学习框架,让AI能够像人类一样思考和学习。该技术通过模仿人类的注意力分配、记忆整合和类比推理等认知机制,使AI在面对新情况时能快速适应,无需大量数据重新训练。实验显示这种AI在图像识别、语言理解和决策制定方面表现卓越,为教育、医疗、商业等领域的智能化应用开辟了新前景。