寫程式的 Prompt 技巧:怎麼問 AI 才能得到對的、會除錯、好維護的程式碼

同一個 AI、同一個需求,有人三分鐘拿到能跑、有測試、好讀的程式碼,你卻在貼錯誤訊息、來回十幾次還是兜不攏。差別幾乎不在模型,而在你怎麼描述這個程式問題

這篇要解決的問題:教你一套寫程式專用的 Prompt 方法,讓 AI 的產出從「貼上去就報錯」變成「能跑、會自己除錯、未來好維護」。 適合誰讀:工程師、接案者、用 AI 學寫程式的初學者、需要寫一點自動化腳本的行銷與營運人員。 讀完你會得到:一套四層 Prompt 結構、可複製的程式 Prompt 範本、一張除錯 Workflow 流程圖,以及台灣團隊的真實導入前後對比。

為什麼你請 AI 寫的程式碼總是不能用?

把這件事拆開看,問題幾乎都出在同一個地方:你給 AI 的資訊,不足以讓任何一個工程師寫出正確答案

想像你在公司丟一句話給新來的工程師:「幫我寫個上傳檔案的函式。」他一定會反問你一串:用什麼語言?哪個框架?檔案要存哪?大小限制多少?要不要驗證副檔名?失敗怎麼處理?——沒有這些答案,他寫出來的東西十之八九不是你要的。

AI 的差別只在於:它不會反問,會直接猜。它會挑一個最常見的語言、最熱門的框架、最標準的寫法,然後給你一段「在某個世界裡正確」的程式碼。對不上你的實際環境,當然跑不起來。

所以寫程式的 Prompt 跟一般 Prompt 最大的不同是:你必須把那些工程師會反問的問題,全部主動先答完。資訊密度,決定程式碼品質。

核心概念:寫程式 Prompt 的四層結構

一般 Prompt 講「角色+任務+格式+護欄」,寫程式時要把它具體化成四層。你可以把它記成上下文 → 目標 → 限制 → 驗證

下面這張表,是把「會反問的工程師」翻譯成 Prompt 該寫的東西:

層次要回答的問題寫進 Prompt 的內容
上下文你的技術環境長什麼樣?語言與版本、框架、執行環境(瀏覽器/Node/後端)、相關既有程式碼
目標到底要做什麼?要解決的問題、輸入格式、預期輸出、要處理的邊界情況
限制要符合什麼規範?命名風格、錯誤處理、可否用第三方套件、效能與可讀性要求
驗證我怎麼知道它對不對?要求附測試案例、執行說明、假設清單,並請它標出不確定的地方

少了上下文,程式碼對不上你的環境;少了目標,AI 猜錯你要的行為;少了限制,你拿到能跑但難維護的程式碼;少了驗證,你只能盲信,出事才發現。四層缺一不可。

關鍵心法:寫程式的 Prompt 不是要 AI「給答案」,而是要 AI「給一個你能快速驗證的答案」。 能驗證,你才敢用;不能驗證,再漂亮都是負債。

實際教學:五個步驟問出對的程式碼

Step 1:先給技術上下文,別讓 AI 亂猜

開頭就把技術棧講清楚。一句話的差別:

如果是改既有程式碼,把相關片段一起貼上,並說明它現在的行為與你想要的行為。AI 看得到現況,才不會給你一段風格、命名都對不上的孤兒程式碼。

Step 2:把目標、輸入、輸出與邊界情況講死

不要只說「處理使用者資料」。要說:輸入是什麼結構、預期輸出是什麼、空值與重複值與超大檔案怎麼辦。邊界情況是初學者最常漏、也最常出 bug 的地方,主動列出來,AI 就會幫你 cover。

例如:「輸入是一個 list of dict,每筆有 email 欄位。輸出去重後的 list,email 比對要忽略大小寫與前後空白。遇到沒有 email 欄位的資料要跳過而非報錯。」

Step 3:設限制,讓程式碼好維護

這一步決定你拿到的是「能跑就好」還是「半年後還看得懂」。明確寫上你的規範:

請遵守:函式單一職責、變數與函式用語意清楚的英文命名、加上型別註記、不要硬寫魔術數字(抽成常數)、關鍵邏輯加一行註解說明「為什麼」而非「做什麼」。優先可讀性,不要過度精簡成看不懂的一行。

沒有這段,AI 預設會給最短解;有了這段,它才會給可維護解。

Step 4:要求可驗證的產出

請 AI 一併交付:測試案例、執行說明、它做了哪些假設

請附上:(1) 三到五個測試案例,含正常、邊界與錯誤輸入;(2) 怎麼跑這段程式;(3) 你做的假設清單;(4) 你不確定或可能出錯的地方,明確標出來。

最後一項特別重要。要求 AI 主動標出不確定處,等於請它幫你劃出 review 的重點,把幻覺風險攤在陽光下。

Step 5:出錯時,給足回饋再請它修

這是來回次數的分水嶺。不要只丟「還是錯」。要給:

  1. 完整錯誤訊息(整段 traceback,不是只截一行)。
  2. 重現步驟:你怎麼跑的、輸入是什麼。
  3. 相關程式碼:報錯那一段與它呼叫到的部分。
  4. 明確指令:「先說明這個錯誤的根本原因與你的假設,再給修正版,並說明改了哪裡、為什麼。」

要求「先解釋再修」能擋掉 AI 亂槍打鳥式的瞎改——逼它先想清楚,命中率高很多。

範例:Prompt 與除錯 Workflow

可複製的「寫新函式」Prompt 範本

你是一位資深的 [語言] 工程師,重視程式碼的可讀性與可維護性。

【技術上下文】
- 語言與版本:Python 3.11
- 環境:後端排程腳本,無 Web 框架
- 限制:不使用第三方套件,僅用標準函式庫

【目標】
寫一個函式 dedupe_users(users):
- 輸入:list of dict,每筆可能含 "email" 欄位
- 輸出:去重後的 list,email 比對忽略大小寫與前後空白
- 邊界:沒有 email 欄位的資料跳過;輸入為空回傳空 list

【限制與規範】
- 單一職責、語意清楚的英文命名、加型別註記
- 不寫魔術數字、關鍵邏輯註解說明「為什麼」
- 優先可讀性

【請一併交付】
1. 函式程式碼
2. 3-5 個測試案例(正常/邊界/錯誤輸入)
3. 你做的假設清單
4. 你不確定或可能出錯的地方

把方括號換成你的實際情況即可。這個範本之所以好用,是因為它一次補滿了四層結構,AI 幾乎沒有「靠猜」的空間。

除錯用的 Prompt 範本

以下程式碼執行時出現錯誤,請先說明根本原因再修正。

【我做了什麼】
(重現步驟與輸入)

【完整錯誤訊息】
(整段貼上,不要省略)

【相關程式碼】
(報錯片段與它呼叫到的部分)

請回答:
1. 這個錯誤的根本原因是什麼?你的判斷依據?
2. 修正版程式碼
3. 改了哪裡、為什麼這樣改
4. 如何驗證已經修好

除錯 Workflow 流程圖(文字版)

當 AI 一次沒修好,照這個流程走,避免無限鬼打牆:

拿到報錯

完整貼上:錯誤訊息 + 重現步驟 + 相關程式碼

要求 AI:先說明根本原因 + 假設,再給修正

跑修正版 ──→ 通過?
   │              │
   │ 沒過          是 → 補測試 → 合併

回貼新的錯誤訊息(不是說「還是錯」)

連續 2 次沒進展?

換策略:請 AI 列出 2-3 種可能原因,逐一加 log 排除

仍卡住 → 縮小到最小可重現範例,重新問

這張流程圖的核心觀念:每一輪都要餵新資訊。如果你每次給的資訊都一樣,AI 每次也只會給差不多的答案,來回十次也是白搭。

常見錯誤

最佳實務

實際案例:台灣電商團隊的後台腳本維護

台中一家中型電商,後台有不少 Python 排程腳本(對帳、撈報表、同步庫存),長期由一位工程師維護。常見痛點是:請 AI 改腳本時只貼片段、只丟一句「修一下」,AI 給的程式碼風格亂、常漏掉邊界情況,上線後才發現對帳數字對不上,平均一支 bug 要來回問五六次才搞定。

導入做法:團隊把上面的「四層結構」做成內部的程式 Prompt 範本,規定三件事——(1) 改腳本一律連既有程式碼一起貼;(2) 一律要求 AI 附測試與假設清單、標出不確定處;(3) 除錯一律完整貼 traceback、要求先解釋根本原因再修。同時把常用範本存進共用文件,新進同事直接套。

導入前後對比

指標導入前導入後
一支 bug 平均來回次數約 5-6 次約 2 次
上線後才發現的隱性錯誤每月 3-4 件每月 0-1 件
新進同事上手撰寫腳本約 2 週約 4 天
程式碼 review 退件率偏高、風格亂明顯下降

成果數據:腳本相關的開發與除錯時間整體約減少四成,對帳類腳本上線後的錯誤幾乎歸零(因為一律附測試與邊界案例)。團隊的結論很實在——AI 沒有變強,是他們問問題的方式變強了。把工程師會反問的問題先答完、把驗證機制內建進流程,AI 才真的省到時間。

此案例為彙整台灣中小企業常見導入情境的示意,數據為說明用途,實際成效依團隊既有流程與技術棧而異。

結論

寫程式的 Prompt,跟交辦工作給一位很強但剛報到的工程師沒兩樣:你交代得越完整,他做得越好。把它收斂成一句話——上下文 → 目標 → 限制 → 驗證,四層補滿,AI 就沒有靠猜的空間。

最後三個帶得走的原則:第一,資訊密度決定程式碼品質,把工程師會反問的全部先答完;第二,要的是能快速驗證的答案,一律請 AI 附測試與假設、標出不確定處;第三,AI 是加速器不是免責牌,能跑不等於正確,review 過了才算數。從今天起,把這套結構套進你下一個程式 Prompt,你會立刻感覺到來回次數明顯變少、拿到的程式碼也更耐用。

❓ 常見問題 FAQ

為什麼 AI 寫的程式碼常常跑不起來?
多半是上下文不足。AI 不知道你的語言版本、框架、既有結構,只能用最常見的假設寫,自然對不上。把技術棧、執行環境與相關程式碼一起給它,能跑的機率會大幅提高。
要用中文還是英文寫程式的 Prompt?
用繁體中文描述需求完全沒問題,AI 一樣懂。但函式名稱、變數、錯誤訊息建議照原文貼,不要翻譯,否則 AI 會對不上你的實際程式碼。
怎麼讓 AI 寫出好維護的程式碼,而不是一坨能跑就好的東西?
在 Prompt 裡明確要求:單一職責、清楚命名、加上必要註解與型別、把魔術數字抽成常數、附測試。沒要求 AI 就會給最短解,要求了才會給可維護解。
AI 一直修不好同一個 bug 怎麼辦?
通常是你只貼了片段、它在猜。請改成完整貼上錯誤訊息、重現步驟、相關檔案,並要求它先說明根本原因與假設,再動手改。必要時請它列出兩三種可能原因逐一排除。
可以完全信任 AI 寫的程式碼嗎?
不行。AI 會產生看起來合理但實際有誤的程式碼(hallucination),尤其是 API 用法與邊界情況。一律要求附測試、自己跑過、做 code review 後再合併,AI 是加速器不是免責牌。

🔗 延伸閱讀

幫這篇打個分:
A
AgentAI 智庫團隊 ✓ 台灣實作團隊

我們是一群專注於 AI Agent、Prompt 與自動化工作流的台灣實作者。每篇教學都附可複製配方、誠實標示實測程度與限制,只分享真正能落地、可直接套用的方法——與其介紹工具,不如教你把事情做完。

關於我們 →看更多教學 →訂閱情報週報 →

每週把這類實戰教學寄給你

訂閱 AgentAI 智庫情報週報,新的 Prompt、AI Skills、工作流與教學第一時間收到。

免費 · 隨時取消