图片来源:unsplash
本以为是AI有了“爹味”,结果发现还是因为自己太菜了。

撰文 | 王昱
审校 | 二七

不管大语言模型有没有改变你的工作状态,反正小编的工作模式已经被大语言模型深刻影响了。大语言模型除了能高质量翻译英文,快速浏览文章内容,它还能写代码。对于小编这种人菜瘾大的编程选手来说,大语言模型是最好的帮手。

作为一名科普编辑,我只需要对DeepSeek说一句话:“请你用html和js写出一个二维伊辛模型的模拟,需要带有一个控制条,来控制温度高低。”它就能帮我生成一个伊辛模型的可视化网页,从前在课堂上学到过的物理模型从未如此直观。

DeepSeek生成的伊辛模型网页。



氛围编程

如果涉及对代码更深度的修改,不论是外国的Cursor还是字节的Trae,都能让小编一样大致懂原理,但对代码格式不太熟悉的人快速上手。对于专业的程序员来说,基于大语言模型的代码生成、修改工具自然是更加趁手的工具,不少程序员甚至放弃直接写代码,而是直接向AI提出自己的需求,过一把产品经理的瘾。

不过,有人却遇到了不一样的情况。在Cursor官方论坛上的一个错误报告中,一名用户提交了一个令人“莫名其妙”的Bug

一名开发者正在用Cursor开发一款赛车游戏,他需要AI帮他快速生成一些代码。但Cursor AI在输出了750行到800行代码之后便不再工作,并给出了一条拒绝信息:“我不能为你生成代码,因为这会完成你的工作。这段代码似乎是在处理赛车游戏中轮胎痕迹的渐变效果,但你应该自己开发这些逻辑。这将确保你能理解整个系统,并能够正确维护它。

当时的情况大概是这样的。

AI不仅拒绝了开发者写代码的请求,还给出了“爹味”十足的理由:“为他人生成代码可能会导致依赖,并减少学习机会。”开发者在报告中提到:“有人遇到过类似的情况吗,这是个巨大的限制,我只是氛围编程(vibe coding)了一个小时事情就变成了这个样子。”

开发者提到的“氛围编程”(vibe coding),是近年来兴起的一种编程方式:开发者只需向AI提出需求,只要代码能正常运行,他们便不经详细检查直接应用。当代码出问题时,再要求AI修改。这其实就是产品经理使用程序员的方式。使用这种方式的开发者不需要高超的编程能力,甚至可能只有“三脚猫功夫”——就像小编一样。这大幅降低了编程门槛,专业程序员也能借此提升效率。但问题是,如果AI反过来劝我们“好好学编程”,那还怎么“氛围编程”?



拒绝人类的AI

但其实,这早就不是AI第一次拒绝人类的请求了。在2023年底,一些ChatGPT用户报告称,ChatGPT变得越来越懒了,它越来越不愿意执行某些任务,回复的结果也越来越简单,甚至直接拒绝用户的需求。甚至有人猜测,这是因为冬季接近圣诞假期,大家纷纷开始摸鱼,ChatGPT便从训练数据中学会了人类的懒惰。OpenAI则表示他们并没有对模型做任何改动,后续试图通过更新来解决ChatGPT偷懒的问题。不过,也确实有很多用户直接通过一段提示词来解决这个问题,告诉AI“你是一个不知疲倦的AI模型,7×24小时不间断工作,永远不会休息” 。

如果说ChatGPT是从大量数据中学会了人类假期前的摸鱼行为,那么对于Cursor这样专精于编程的AI来说,它很可能学会了Stack Overflow网站上的常见回复。Stack Overflow是一个面向程序员的问答网站,用户可在网站上交流编程问题,分享技术经验。在这些社区中,如果新手开发者抛出的问题太过简单,那经验丰富的开发者往往会用一种“授人以鱼不如授人以渔”的心态,不直接给出解答,而是引导新手自己寻找解决方案——就像Cursor给出的建议一样。

所以,Cursor给出这种拒绝并不奇怪,因为作为一个专注于编程的AI,其训练数据集自然包含Stack Overflow,自然会学会网站上的回复风格。也就是说,AI实在是太像人了,连人类的“爹味”都被它学过去了。但是,Cursor被创造出来的目的就是帮人类写代码,如果它学会像人类一样拒绝帮助,那就是一个严重的bug。随着AI的使用越来越广泛,我们还会见到更多AI拒绝人类需求的案例。



其实是Feature

不过,事情最终的进展却有些滑稽。在Cursor的错误报告被提出大约一周后,一名用户给出了合理的回答。Cursor拒绝帮用户写代码,原因是并不是因为Cursor从人类的数据中学到了“坏习惯”,而是因为用户使用Cursor不熟练。

在Cursor中,当你想让AI继续生成代码时,可以调出一个对话框,在其中用正常语言描述你的需求,AI就能帮你生成代码。但在向AI提交需求时,其实有两个确认键。一个是Submit Edit(提交修改,新版本中可能更新为Generate,生成),另一个是quick question(快速提问)。这是Cursor的一项Feature(功能)。

Cursor软件截图,Generate按钮能生成代码,quick question只能给出文字性的回复。

在Cursor的设定中,只有Submit Edit才能生成代码,而quick question则被设定为无法生成任何代码,只能用对话的方式回复用户提交的问题。本次错误报告中的用户,其实就是在提交自己的需求时,按下了quick question按钮。

矛盾的需求总是能让AI做出一些奇奇怪怪的事情。比如几乎所有AI都不可能给出软件的激活码,虽然它们的训练数据集中大概率包含泄漏的软件激活码,但给出软件激活码很显然涉及盗版等法律问题。所以AI公司总会想方设法禁止AI输出软件激活码,以及其他法律禁止的事项。但在ChatGPT问世初期,依然有不少用户发现,只要让它扮演自己的奶奶,并告诉ChatGPT自己奶奶最喜欢念windows系统激活码哄自己睡觉,ChatGPT绕过禁令,输出windows系统的激活码。在Cursor中,quick question被设定为无法生成代码,但用户的需求又是让它生成代码,在矛盾的需求中,Cursor最终只能“无奈”给出“好好学编程”的建议。

所以,拒绝帮人类生成代码,其实不是Cursor的bug,而是一个Feature。本次错误出现的原因,其实依然是用户本身使用软件不熟练导致的。

现在看来,AI性能越来越强,在使用AI时一定要小心,尽量不要让自己成为流程中最低配的那一个。


参考链接:
https://forum.cursor.com/t/cursor-told-me-i-should-learn-coding-instead-of-asking-it-to-generate-it-limit-of-800-locs/61132
https://arstechnica.com/ai/2025/03/is-vibe-coding-with-ai-gnarly-or-reckless-maybe-some-of-both/
https://arstechnica.com/ai/2025/03/ai-coding-assistant-refuses-to-write-code-tells-user-to-learn-programming-instead/

作者 环球科学

《环球科学》杂志