
圖片來源:unsplash

不管大語言模型有沒有改變你的工作狀態,反正小編的工作模式已經被大語言模型深刻影響了。大語言模型除了能高質量翻譯英文,快速瀏覽文章內容,它還能寫程式碼。對於小編這種人菜癮大的程式設計選手來說,大語言模型是最好的幫手。
作為一名科普編輯,我只需要對DeepSeek說一句話:“請你用html和js寫出一個二維伊辛模型的模擬,需要帶有一個控制條,來控制溫度高低。”它就能幫我生成一個伊辛模型的視覺化網頁,從前在課堂上學到過的物理模型從未如此直觀。

DeepSeek生成的伊辛模型網頁。
氛圍程式設計
如果涉及對程式碼更深度的修改,不論是外國的Cursor還是位元組的Trae,都能讓小編一樣大致懂原理,但對程式碼格式不太熟悉的人快速上手。對於專業的程式設計師來說,基於大語言模型的程式碼生成、修改工具自然是更加趁手的工具,不少程式設計師甚至放棄直接寫程式碼,而是直接向AI提出自己的需求,過一把產品經理的癮。
一名開發者正在用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的設定中,只有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/ai-coding-assistant-refuses-to-write-code-tells-user-to-learn-programming-instead/
本文來自微信公眾號“環球科學”。如需轉載,請在“環球科學”後臺回覆“轉載”,還可透過公眾號選單、傳送郵件到[email protected]與我們取得聯絡。相關內容禁止用於營銷宣傳。
-電商廣告-
《環球科學》2025年4月新刊
正在熱賣
戳圖片或閱讀原文
立即購買

