iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0

在 Day 16 我們診斷了 System Prompt 常見問題,今天聚焦在第一個難題:System Prompt 中的語意模糊與規則衝突

這往往是 AI「不聽話」的最大根源——當描述過於抽象或要求互相矛盾時,AI 只能「猜」我們的意圖,結果自然和期待不同。

一、語意模糊:AI 根本聽不懂

典型問題:

  • 使用「乾淨」、「簡潔」、「漂亮」這類主觀形容詞
  • 沒有定義團隊內部的共識標準
  • AI 產生的程式碼和「你心中的想法」對不上

例子:

錯誤示範:請寫乾淨、簡潔的程式碼
正確示範:每個函數職責單一,長度不超過 50 行;錯誤必須有處理;變數名稱清楚表達用途

解法:

  1. 建立詞典式定義:把模糊詞彙明確化,寫進 Prompt。
    • 「乾淨程式碼」= 模組化 + 完整錯誤處理 + 清晰命名
    • 「完整測試」= 單元 + 邊界 + 錯誤情境 + 覆蓋率 > 80%
  2. 團隊共用模組:用 @team-standards/code-quality.md 這類共用檔案,避免個人理解差異。

二、規則衝突:AI 被迫選邊站

典型問題:

  • 同時要求「程式碼簡潔」與「完整錯誤處理」
  • 要「快速」又要「安全」
  • 規則沒有優先順序,AI 無法判斷怎麼取捨

例子:

錯誤示範:開發原則:
- 簡潔明瞭
- 功能完整
- 效能最佳化
- 全部功能要測試

正確示範:開發原則(有優先順序):
P1_SECURITY: 資料驗證與權限檢查  
P2_FUNCTIONALITY: 功能完整性與錯誤處理  
P3_CONSISTENCY: 命名與程式風格  
P4_OPTIMIZATION: 效能與簡潔性  

解法:

  1. 建立優先順序系統:像 P1–P4,讓 AI 有決策依據。
  2. 設計衝突處理機制:要求 AI 在輸出前先檢查規則是否互斥,並解釋取捨理由。
    • 範例輸出:
    警告:偵測到衝突:簡潔程式碼 vs 錯誤處理
    依優先順序:P2 > P4
    決策:保留完整錯誤處理,再做適度優化
    

三、實務策略

策略 1:具體化標準
模糊需求 → 拆解成可量化條件(行數、覆蓋率、格式)

策略 2:模組化設計
不同標準放在不同檔案,避免一個 Prompt 塞爆、互相打架

策略 3:優先順序明確
建立「安全 > 功能 > 一致性 > 最佳化」的階層
遇到矛盾 → 直接依照層級決策

四、案例:電商網站的 Prompt 修正

問題版本:

請幫我開發快速、安全、好用的購物車功能

→ 模糊又互相衝突

改進版本:

你是電商系統開發助手,遵循以下標準:

## 優先順序
P1_SECURITY: 所有輸入驗證、權限檢查不可省略  
P2_FUNCTIONALITY: 功能完整、邊界情境處理  
P3_CONSISTENCY: 命名與程式風格一致  
P4_OPTIMIZATION: 效能優化與程式碼簡潔  

## 購物車功能需求
- 加入/刪除商品
- 支援庫存驗證(不足時提示)
- 訂單建立必須原子化操作
- 提供友善錯誤提示

→ AI 就會在「快 vs 安全」衝突時,優先保留安全驗證。

五、結論

AI「不聽話」的原因往往不是它壞掉,而是 我們給的指令模糊或矛盾

解決關鍵在於:

  1. 模糊詞彙要定義清楚
  2. 規則之間要有優先順序
  3. Prompt 需要模組化與可檢查性

上一篇
Day 16|AI 不聽話?System Prompt 效果問題診斷
下一篇
Day 18|處理 Context 過長問題
系列文
團隊 AI 運維手冊:System Prompt 的設計、部署與維護25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言