iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
生成式 AI

30 天用 Cursor 開發專案:AI 輔助程式開發實戰紀錄系列 第 28

Day 28:Cursor 幻覺問題 — 為什麼 AI 有時候會「自信地胡說八道」?

  • 分享至 

  • xImage
  •  

圖片
我們在過去幾天裡,用 Cursor 實作了完整的專案流程,從 UI 元件化、跨平台串接到 Firebase 整合,一切都流暢快速。

但相信你一定也遇過這種情況:

明明寫得很清楚,AI 卻一本正經地給出錯誤的答案。

這就是所謂的 「幻覺(Hallucination)」

今天,我們就要來探討它在 Cursor 裡的成因、案例與解法。


🧠 什麼是「幻覺(Hallucination)」?

幻覺是指 AI 產生了看似合理但實際錯誤的內容

它可能:

  • 編造不存在的程式碼 API
  • 引用錯誤的函式名稱
  • 胡亂給出文件連結
  • 或是產出邏輯上不一致的解釋

例如,你要求 Cursor 幫你寫一個 Flutter 的 Firebase 登入邏輯,它卻生成了:

FirebaseAuth.instance.loginWithEmail('test@test.com', '123456');

然而——根本沒有這個函式。

這不是 Cursor 「壞掉」了,而是它「太想幫你」了。


🔍 為什麼會出現幻覺?

AI 在生成內容時,本質上是「預測下一個最可能的字」,

而不是「查找正確答案」。

當它在記憶中找不到足夠的上下文,就會憑經驗補空白

這在程式碼場景裡尤其明顯。

常見觸發原因:

  1. 🚫 缺少明確上下文(沒開啟正確的檔案或資料夾)
  2. ⚙️ 提示詞過於模糊(「幫我修一下這段」這類不具體的指令)
  3. 📚 代碼庫更新但 AI Context 尚未重新索引
  4. 💬 讓 AI 同時執行太多任務(例如要求它「幫我修 bug 並優化 UI」)

🧩 Day 28 實際案例

❌ 錯誤範例

我在專案中輸入:

「請幫我加上暗色模式切換功能」

Cursor 產生:

const toggleTheme = () => setTheme(theme === 'dark' ? 'light' : 'dark');

但實際上我用的是 next-themes 套件,應該是:

import { useTheme } from "next-themes";
const { theme, setTheme } = useTheme();

AI 在沒有讀到 useTheme 的前提下,憑直覺「幻覺」了一個自製邏輯。


✅ 解法 1:強化上下文

在 Cursor 裡:

  • 打開你實際使用的程式碼檔案
  • /focus 讓模型專注於特定區域
  • 明確說明「我使用 next-themes 套件」

💡 範例提示:

「我使用 next-themes,請幫我新增一個主題切換按鈕,放在 Navbar 裡。」

這樣 Cursor 會讀取到正確上下文,幻覺機率會大幅降低。


✅ 解法 2:建立知識 Context

.cursorrules.cursorignore 裡指定要讀取的目錄,例如:

include: ["components/", "lib/", "app/"]
ignore: ["node_modules/", "build/"]

讓 AI 明確知道哪些程式碼是專案主體的一部分,哪些不是。


✅ 解法 3:分段思考、逐步指令

與其一次丟出複雜任務,不如拆解成明確步驟:

  1. 先請它「解釋目前功能結構」
  2. 再請它「新增暗色模式邏輯」
  3. 最後再請它「整合 UI」

這能避免模型「幻想」出一個不存在的整體結構。


🧩 解法 4:驗證輸出

不要完全相信它。

每次生成後,請:

  • 檢查是否有真實 API 或套件對應
  • 嘗試在編譯時捕捉錯誤訊息
  • 使用 Cursor 的「Explain this error」來分析修正建議

💬 結語

幻覺問題不會完全消失,

但透過明確提示、分階段指令與上下文管理,

可以讓 Cursor 的生成結果從「想像」變成「理解」。

正如開發者與設計師協作需要溝通,

AI 與我們的合作,也需要更「具體、透明」的語言。


上一篇
Day 27:Cursor 整合 Firebase — 一次搞定網站與手機 App 共用後端
系列文
30 天用 Cursor 開發專案:AI 輔助程式開發實戰紀錄28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言