所有入門單元免費開放 · 課程內容持續更新中

寫給 AI 的需求說明書

AI 給的程式不合用,多半是因為需求沒說清楚。這堂課教你用五個要素寫出一份 AI 看得懂、做得對的需求說明。

第 4.2 堂約 14 分鐘

很多人第一次用 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 寫一個給自己用的命令列記帳工具。

目標:每天記錄花費,月底看各類別花了多少。

功能:

  1. 新增一筆紀錄:日期、類別、金額(整數,單位台幣)
  2. 顯示某個月份各類別的總和與合計

輸入輸出範例: 新增 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 預設的行為是「立刻給答案」,就算資訊不夠,它也會自己補上假設。請它先提問,等於讓它把這些假設攤開來給你看。你可能會收到這樣的回覆:

  • 金額需要支援小數嗎?
  • 輸入錯誤格式時,要直接報錯還是提示重新輸入?
  • 同一天同類別多筆,要合併還是分開顯示?

這些問題常常是你自己也沒想過的。回答完,需求就更完整了。

分段進行,不要一次要全部

如果功能比較多,例如記帳程式還要加上預算提醒、匯出報表、圖表,不要一次全部丟出去。比較穩的做法是:

  1. 先做最核心的功能(新增與統計),跑起來、確認正確。
  2. 再加下一個功能,一次一個。
  3. 每次都附上目前的程式碼,讓 AI 在既有基礎上修改。

每一步都小到你能檢查,出錯時也知道是哪一步出的錯。

把需求說明變成範本

你可以把常用的結構存在筆記軟體裡,每次複製來填空:

## 目標
(要解決什麼問題、給誰用)

## 功能
1.
2.

## 輸入輸出範例
輸入:
期望輸出:

## 限制
- 語言與版本:
- 可以/不可以用的套件:
- 其他:

## 環境
(作業系統、執行方式)

## 請先提問
開始寫之前,若有不清楚的地方,請先問我最多三個問題。
行動練習
  1. 選一個你想做的小工具,例如「待辦清單網頁」或「匯率換算腳本」。
  2. 先用一句話請 AI 做,把結果存起來。
  3. 再用上面的範本寫一份完整需求,包含至少一組輸入輸出範例,並請 AI 先提問。
  4. 回答它的問題後,比較兩次產出的程式:哪一個比較接近你要的?差在哪些地方?

讀完了嗎?

標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。

卡住了?讓 AI 當你的家教複製這段提問範本,貼到 Claude 或其他 AI 工具,再補上你卡住的地方。

留言與討論

卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。

留言區即將開放。現在可以先到 GitHub 討論區 發問,或看看 交流頁 的其他管道。