提示詞的四段式結構:角色、任務、限制、輸出格式
大部分「模型不聽話」其實是提示沒有結構。用固定四段式改寫,同一個需求的輸出穩定度通常立刻提升一個檔次。
初學者寫提示常是一整段話講完需求,模型只能自己猜哪句是重點。把提示拆成固定四段——角色、任務、限制、輸出格式——模型每一段都知道自己該讀什麼,回答的變異度會明顯下降。
四段各自負責什麼
- 角色:界定知識範圍與語氣,例如「你是熟悉繁體中文技術文件的資深後端工程師」。
- 任務:一句話講清楚要產出什麼,動詞放句首,例如「將下列錯誤訊息分類」。
- 限制:不能做什麼、邊界在哪,例如「只根據提供的日誌判斷,資訊不足時回報 unknown」。
- 輸出格式:明確到可以被程式解析,例如 JSON 欄位與型別。
實際改寫對照
把「幫我看看這段日誌有什麼問題,順便告訴我怎麼修」換成下面這樣,輸出就能直接進資料庫,而不是每次都要人工讀一遍。
你是熟悉 Linux 服務維運的 SRE。
任務:判斷下列日誌片段對應的故障類型。
限制:
- 只依據日誌內容判斷,不要臆測未出現的服務。
- 證據不足時,type 一律填 unknown。
輸出格式(僅輸出 JSON,不要其他文字):
{"type": "oom|disk_full|timeout|unknown", "evidence": "引用的原始行", "confidence": 0.0-1.0}
日誌:
<<<
{{log}}
>>>注意三個細節:限制段落用條列而非長句、輸出格式直接寫出 JSON 骨架、待處理的資料用明顯的分隔符包起來。分隔符可以避免使用者輸入的內容被當成指令讀,這也是最基本的一層提示注入防護。
四段式不是唯一解,但它的價值在於固定。同一個團隊使用同一種骨架,之後要做 A/B 測試或版本比對才有意義。