為什麼談 Prompt Engineering?
當我們說「軟體開發」,腦中浮現的通常是:
但自從生成式 AI 走進開發日常,我開始把 Prompt Engineering 當成開發工作的一部分。
它不再只是「跟 ChatGPT 聊天」,而是 一種新型態的軟體介面設計。
Prompt 的角色:程式與人之間的膠水
傳統程式碼:
輸入:固定格式(API、函式呼叫)
輸出:可預期的資料
Prompt 與大模型:
輸入:自然語言,容許模糊、不完整
輸出:帶有不確定性,需要後處理
換句話說,Prompt 扮演的是「半結構化 API」。
它既是給人讀的指令,也是給模型解析的契約。
Prompt Engineering 與軟體開發流程的結合
我把它融入到軟體開發的不同環節:
需求分析階段
把需求轉化成「場景式 Prompt」,快速驗證可行性。
例如:模擬使用者問答,確認 AI 系統能不能正確回應。
設計階段
把 Prompt 當作「邏輯模組」,不同 Prompt 對應不同功能。
例如:一個 Prompt 專門做摘要,一個專門做分類。
實作階段
使用 模板化 Prompt,把變數與內容分開,就像函式參數。
搭配程式碼控制流程,減少隨機性。
測試與迭代
為 Prompt 設計測試案例,確保在不同輸入下,輸出仍符合預期。
例如:針對錯字、縮寫、極端情況做測試。
我自己的小經驗
我第一次把 Prompt 當成「開發任務」來做,是在一個內部文件搜尋專案。
一開始,工程師們隨便丟 Prompt,AI 回答常常答非所問。
後來,我設計了「多層式 Prompt」:先要求模型判斷問題類型,再用不同模板回答。
錯誤率瞬間下降一半以上。
那時候我才意識到:
Prompt 不是臨時的備註,而是 需要版本控制與測試的開發資產。
工具鏈的演進
現在很多框架已經把 Prompt Engineering 正式納入開發工具鏈:
LangChain / LlamaIndex:支援 Prompt 模板化與組裝。
Promptfoo:自動化測試 Prompt 的工具。
Git + YAML:甚至有團隊用 Git 來版本控管 Prompt,當作專案的一部分。
這意味著:
Prompt 正在從「小技巧」進化成「正式工程方法論」。
結語
當我回顧這些經驗時,覺得 Prompt Engineering 在軟體開發裡有點像 早期的單元測試:
一開始沒人當回事,後來才發現少了它,整個專案不穩定。
未來幾年,Prompt 很可能會被正式納入開發規範,就像今天沒有人會質疑 Git 或 CI/CD 的重要性。
Prompt 不只是提問,而是軟體設計的一環。