AI 輔助編碼出現上下文遺失時的排查步驟:找回開發節奏
AI

AI 輔助編碼出現上下文遺失時的排查步驟:找回開發節奏

By Administrator

1. 為什麼 AI 會「失憶」?——理解上下文窗口的限制

在使用 Cursor、GitHub Copilot 或 Claude 等工具進行開發時,你可能遇過這種情況:明明剛定義好一個函式,AI 幾分鐘後卻完全忘記它的存在,甚至開始建議錯誤的變數名稱。這不是 AI 壞了,而是「上下文遺失」(Context Loss)所致。

本指南專為那些依賴 AI 進行快速迭代、追求 Flow-state 的開發者設計。當 AI 無法「讀懂」你的專案脈絡時,你的生產力會直接腰斬。我們將協助你透過調整輸入與專案結構,重新掌控開發節奏。

2. 前置作業與適用場景

這套指南適用於:

  • 使用 IDE 整合型 AI(如 Cursor, VS Code Copilot)。
  • 專案規模達到數千行程式碼,AI 開始產生幻覺或忽略既有架構時。

什麼時候「不」適合使用此排查法:

  • 專案尚未初始化 Git 倉庫(AI 索引功能極度依賴 Git 管理)。
  • 你在處理極度機密、需要嚴格空氣隔絕(Air-gapped)的系統。

3. 如何排查與修復:五階段找回上下文

當你發現 AI 開始變笨,請按照以下步驟執行:

第一步:檢查 .gitignore 與索引範圍

確認是否有 .cursorrules 或 .copilotignore 檔案,確保關鍵路徑(如 /src, /lib)未被排除。

第二步:強制刷新本地索引(Re-index)

在設定中找到 "Re-index codebase" 選項,強制 AI 重新掃描你的檔案結構。

第三步:手動注入關鍵上下文(Explicit Injection)

使用 @ 符號明確加入相關的介面或模型。告訴它:「基於 @UserAuth.ts 實現這個新功能」。

若你希望深入研究如何建立更高效率的 AI 協作習慣,可以參考 mentalok.io 獲取更多開發者實戰策略。

第四步:縮減當前窗口(Context Pruning)

關閉所有與當前任務無關的檔案,只保留核心依賴項。

第五步:檢查 Prompt 的陳述結構

使用「上下文—任務—限制」結構,明確告知 AI 當前架構與限制。

4. 常見錯誤

  • 一次餵食太多檔案: 導致注意力分散。修正: 僅提供相關的 2-3 個檔案。
  • 忽略文件檔: 導致 AI 遺忘約定。修正: 建立 .cursorrules 寫入規範。
  • 過度依賴歷史對話: 產生累積噪音。修正: 每個獨立功能開啟全新會話。
  • 未使用引用指令: AI 找不到目標。修正: 嚴格使用 @ 符號。

5. 常見 Bug 與陷阱

  • 隱式依賴陷阱: AI 假定錯誤的套件版本。解法: 在 Prompt 中指定版本號。
  • 循環引用: 混淆變數名稱。解法: 嚴格定義 Type 與 Interface。
  • 幻覺式 Refactoring: 誤改邏輯。解法: 重構後務必執行單元測試。

6. 快閃檢查清單

  • [ ] 是否已使用 @ 符號引用最核心的依賴檔案?
  • [ ] .cursorrules 或類似設定檔是否已更新?
  • [ ] 是否需要重新開啟新 Chat?
  • [ ] 檢查套件版本是否相符?
  • [ ] git diff 確認 AI 沒有改壞配置?
  • [ ] 測試環境是否已更新?

7. 常見問答

Q: 為什麼 AI 總是忘記我剛改好的程式碼?
A: 這通常是因為 IDE 的索引尚未更新,或者對話視窗的 Context Window 已滿。嘗試執行一次 Index Refresh,或在新的對話中重新引用該檔案。

Q: 我應該把整個專案都丟給 AI 嗎?
A: 千萬不要。只提供與目前任務直接相關的類別或函式即可。

Q: 為什麼 AI 產生的程式碼邏輯看起來是對的,但執行卻失敗?
A: 這通常涉及「隱式上下文」問題,務必將重要的 Config 檔案一併加入 Reference。