我們在過去幾天裡,用 Cursor 實作了完整的專案流程,從 UI 元件化、跨平台串接到 Firebase 整合,一切都流暢快速。
但相信你一定也遇過這種情況:
明明寫得很清楚,AI 卻一本正經地給出錯誤的答案。
這就是所謂的 「幻覺(Hallucination)」。
今天,我們就要來探討它在 Cursor 裡的成因、案例與解法。
幻覺是指 AI 產生了看似合理但實際錯誤的內容。
它可能:
例如,你要求 Cursor 幫你寫一個 Flutter 的 Firebase 登入邏輯,它卻生成了:
FirebaseAuth.instance.loginWithEmail('test@test.com', '123456');
然而——根本沒有這個函式。
這不是 Cursor 「壞掉」了,而是它「太想幫你」了。
AI 在生成內容時,本質上是「預測下一個最可能的字」,
而不是「查找正確答案」。
當它在記憶中找不到足夠的上下文,就會憑經驗補空白。
這在程式碼場景裡尤其明顯。
常見觸發原因:
我在專案中輸入:
「請幫我加上暗色模式切換功能」
Cursor 產生:
const toggleTheme = () => setTheme(theme === 'dark' ? 'light' : 'dark');
但實際上我用的是 next-themes 套件,應該是:
import { useTheme } from "next-themes";
const { theme, setTheme } = useTheme();
AI 在沒有讀到 useTheme
的前提下,憑直覺「幻覺」了一個自製邏輯。
在 Cursor 裡:
/focus
讓模型專注於特定區域💡 範例提示:
「我使用 next-themes,請幫我新增一個主題切換按鈕,放在 Navbar 裡。」
這樣 Cursor 會讀取到正確上下文,幻覺機率會大幅降低。
在 .cursorrules
或 .cursorignore
裡指定要讀取的目錄,例如:
include: ["components/", "lib/", "app/"]
ignore: ["node_modules/", "build/"]
讓 AI 明確知道哪些程式碼是專案主體的一部分,哪些不是。
與其一次丟出複雜任務,不如拆解成明確步驟:
這能避免模型「幻想」出一個不存在的整體結構。
不要完全相信它。
每次生成後,請:
幻覺問題不會完全消失,
但透過明確提示、分階段指令與上下文管理,
可以讓 Cursor 的生成結果從「想像」變成「理解」。
正如開發者與設計師協作需要溝通,
AI 與我們的合作,也需要更「具體、透明」的語言。