寫給 AI 的需求說明書
AI 給的程式不合用,多半是因為需求沒說清楚。這堂課教你用五個要素寫出一份 AI 看得懂、做得對的需求說明。
很多人第一次用 AI 寫程式,會輸入像這樣的一句話:
幫我寫一個記帳程式
結果 AI 交出一個有圖形介面、用資料庫、還支援多使用者的大東西,或是一個只有三行、什麼都存不了的小玩具。兩種都不是你要的。
問題不在 AI 笨,而在它不知道你腦中的畫面。上一課提過,沒放上桌的資訊,它只能猜。這堂課就是教你把該放的東西放上桌。
需求說明的五個要素
把 AI 想成一位剛到職、能力很好但完全不認識你的工程師。你要交代工作,至少要講清楚這五件事:
| 要素 | 要回答的問題 | 記帳程式的例子 |
|---|---|---|
| 目標 | 要解決什麼問題?給誰用? | 我自己每天記錄午餐和交通花費 |
| 輸入與輸出 | 吃進什麼、吐出什麼? | 輸入日期、類別、金額;輸出每月各類別總和 |
| 限制條件 | 什麼不要、什麼一定要? | 不用資料庫,存成 CSV;不要用外部套件 |
| 執行環境 | 在哪裡跑?什麼版本? | Windows 11,Python 3.12,在終端機執行 |
| 驗收方式 | 怎樣算完成? | 我輸入三筆資料後,能看到正確的月總和 |
不需要每次都寫成表格,但寫完之前,用這五項檢查一遍,通常就能避免大部分的來回修改。
範例比形容詞有力
「我要一個簡單好用的格式」是很模糊的描述。但如果你直接給一組例子,AI 幾乎不會誤會:
輸入:
2026-11-03,午餐,120
2026-11-03,交通,30
2026-11-04,午餐,95
期望輸出:
2026-11 統計
午餐:215 元
交通:30 元
合計:245 元
這種「給它看答案長什麼樣子」的做法,對程式特別有效,因為格式、欄位順序、小數點怎麼處理,全部一目瞭然。
前後對照:同一個需求,兩種寫法
幫我寫一個記帳程式,要簡單好用。
我想用 Python 寫一個給自己用的命令列記帳工具。
目標:每天記錄花費,月底看各類別花了多少。
功能:
- 新增一筆紀錄:日期、類別、金額(整數,單位台幣)
- 顯示某個月份各類別的總和與合計
輸入輸出範例:
新增 2026-11-03 午餐 120、2026-11-04 午餐 95、2026-11-03 交通 30 後,查詢 2026-11,應顯示午餐 215 元、交通 30 元、合計 245 元。
限制:
- 只用 Python 標準函式庫,不要安裝任何套件
- 資料存在同一個資料夾的
expenses.csv - 程式碼加上中文註解,我是初學者
環境:Windows 11,Python 3.12,在終端機執行。
在你開始寫之前,如果有任何不清楚的地方,請先問我,最多問三個問題。
第二種寫法比較長,但你會省下大量「不是這樣啦」的來回時間。這份說明不管貼到 Claude、ChatGPT 或 Gemini 都適用;之後用 Claude Code 這類 Agent 時,它更是「規格」的雛形。
讓 AI 先提問
上面範例的最後一句很重要:請它先問問題。
AI 預設的行為是「立刻給答案」,就算資訊不夠,它也會自己補上假設。請它先提問,等於讓它把這些假設攤開來給你看。你可能會收到這樣的回覆:
- 金額需要支援小數嗎?
- 輸入錯誤格式時,要直接報錯還是提示重新輸入?
- 同一天同類別多筆,要合併還是分開顯示?
這些問題常常是你自己也沒想過的。回答完,需求就更完整了。
分段進行,不要一次要全部
如果功能比較多,例如記帳程式還要加上預算提醒、匯出報表、圖表,不要一次全部丟出去。比較穩的做法是:
- 先做最核心的功能(新增與統計),跑起來、確認正確。
- 再加下一個功能,一次一個。
- 每次都附上目前的程式碼,讓 AI 在既有基礎上修改。
每一步都小到你能檢查,出錯時也知道是哪一步出的錯。
把需求說明變成範本
你可以把常用的結構存在筆記軟體裡,每次複製來填空:
## 目標
(要解決什麼問題、給誰用)
## 功能
1.
2.
## 輸入輸出範例
輸入:
期望輸出:
## 限制
- 語言與版本:
- 可以/不可以用的套件:
- 其他:
## 環境
(作業系統、執行方式)
## 請先提問
開始寫之前,若有不清楚的地方,請先問我最多三個問題。
- 選一個你想做的小工具,例如「待辦清單網頁」或「匯率換算腳本」。
- 先用一句話請 AI 做,把結果存起來。
- 再用上面的範本寫一份完整需求,包含至少一組輸入輸出範例,並請 AI 先提問。
- 回答它的問題後,比較兩次產出的程式:哪一個比較接近你要的?差在哪些地方?
讀完了嗎?
標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。
留言與討論
卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。