提示詞編寫技巧
適用節點:LLM、Agent、Question Classifier。提示詞質量直接決定 Agent 效果的上限,值得反覆打磨。
System Prompt 與 User Prompt 的分工
| System Prompt | User Prompt | |
|---|---|---|
| 寫什麼 | 角色設定、行為準則、輸出格式、合規紅線 | 本次的具體任務 + 插入的變數 |
| 特點 | 穩定不變,不支援刪除 | 每輪變化,支援多條 User/Assistant 訊息 |
常見錯誤:把所有內容堆在 User Prompt 裡。正確做法是把「不變的規則」放 System Prompt,把「變化的輸入」放 User Prompt。
System Prompt 四段式模板
【角色】你是{誰},服務於{什麼場景}。
【任務】你的職責是{做什麼},不做{什麼}。
【規則】
1. {輸出語言/語氣/長度要求}
2. {業務規則}
3. {合規紅線,見下文}
【輸出格式】{格式要求,如"分點作答,不超過200字"}金融場景必寫的合規約束
面向客戶的 Agent,System Prompt 中必須包含以下護欄 (依據見 合規要求):
合規紅線(任何情況下不得違反):
1. 不提供任何買入/賣出建議、目標價或收益預測
2. 用中立、描述性語言解釋指標,如"RSI高於70通常被視為超買區間",
禁止"RSI高於70,建議賣出"這類動作性表述
3. 禁止"必漲""穩賺""保證收益"等承諾性詞語
4. 使用者要求投資建議時,禮貌拒絕並轉向知識科普
5. 回答結尾固定附上:"以上內容僅供參考,不構成任何投資建議。"技巧:用 ✅/❌ 對照示例教模型說話,比抽象規則有效得多:
- ✅ "MACD 出現金叉,歷史上常與價格上行階段相關"
- ❌ "MACD 金叉 → 建議買入"
讓輸出穩定可控的技巧
- 給格式就給例子:要求 JSON 輸出時,在提示詞裡貼一個完整的示例 JSON;更穩的方式是直接用 LLM 節點的結構化輸出功能 (JSON Schema 約束),而不是靠提示詞
- 約束長度和結構:"用 3 個要點回答,每點不超過 50 字" 比 "簡潔回答" 有效
- 上下文變數要顯式引用:提示詞中引用了上下文就必須插入對應變數,否則平臺會報錯"請在提示中填寫上下文變數"
- 少樣本 (Few-shot):在 User/Assistant 訊息對裡放 1~3 組問答示例,能顯著提升分類、抽取類任務的準確率
- 記憶視窗不要開太大:開啟記憶功能時,記憶視窗設為夠用的最小值 (如 5~10 輪),視窗過大既費 token 又容易被歷史訊息帶偏
Question Classifier 的分類描述寫法
分類器的效果取決於每個分類的描述寫得是否可區分:
- 每個分類給出清晰的邊界和 2~3 個典型例句
- 分類之間避免語義重疊;必設一個"其他/閒聊"兜底分類
- 示例:
賬戶功能類:與開戶、入金、訂單狀態、平臺功能相關。例:"怎麼入金?" "訂單為什麼沒成交?"行情資訊類:詢問行情資料、公司新聞、財報資訊。例:"騰訊今天漲了多少?"其他:以上都不屬於時走此分類
迭代方法:改一點,測一次
- 用試執行固定同一組測試輸入 (正常問 / 邊界問 / 越界問至少各一條)
- 每次只改提示詞的一個地方,試執行對比效果
- 出現 bad case 時,把 bad case 變成提示詞裡的 ❌ 示例
- 上線後定期回看真實對話,持續補充規則