AI / LLM 功能 Spec Review — 幻覺 / 評估 / 成本 / 法遵 8 個必問
「PM 寫『加 AI 助手』 — 你看完只想笑哭」。AI 功能 spec 95% 都漏掉關鍵維度。這篇給你 8 個必問問題 + 完整 review framework。
AI 功能 spec 跟一般 spec 最大差異
flowchart LR
Old[一般 spec] --> O1[輸入確定 → 輸出確定]
Old --> O2[可重現]
Old --> O3[二元對錯]
AI[AI 功能 spec] --> A1[輸入確定 → 輸出機率分佈]
AI --> A2[每次可能不同]
AI --> A3[品質光譜]
AI --> A4[會幻覺、會 bias]
AI --> A5[成本隨用量]
AI --> A6[法遵風險]
style Old fill:#10b981,color:#fff
style AI fill:#ef4444,color:#fff
核心:AI spec 不能寫「正確」、要寫「成功率達到 X%、失敗時 Y」。
8 個必問問題
mindmap
root((AI 功能 Spec<br>8 必問))
1 評估指標
Precision/Recall
eval set
Human review
2 失敗 fallback
返回 null?
人工接管?
Retry?
3 幻覺處理
要不要驗證
RAG citation
自信度顯示
4 Prompt 管理
Versioning
A/B test
Rollback
5 模型選擇
哪個 model
備用 model
升級策略
6 成本控制
每次成本
上限 rate limit
Cache
7 護欄 Guardrails
禁忌話題
Output 過濾
Prompt injection 防禦
8 法遵
EU AI Act
GDPR
審計 log
必問 1: 評估指標
flowchart TD
Eval[AI 怎麼算對?] --> E1["Eval set<br>100+ 黃金標準範例"]
Eval --> E2["Automated metrics<br>BLEU/ROUGE/Embedding"]
Eval --> E3["LLM-as-judge<br>用 Claude 評另一個 model"]
Eval --> E4["Human review<br>抽 5-10% 看趨勢"]
style E1 fill:#06b6d4,color:#fff
style E2 fill:#10b981,color:#fff
style E3 fill:#a855f7,color:#fff
style E4 fill:#f59e0b,color:#fff
Spec 該寫:
Eval set 大小: 200 個範例
Pass 條件: ≥ 90% 通過 LLM-as-judge
Human review: 每月抽 50 個、QA 評分
Regression: 改 prompt 後 eval set 跑、不能降 > 2%
不能寫的爛 spec
❌ 「AI 要回答正確」 ❌ 「AI 不能說錯話」
該寫的具體 spec
✅ 「Eval set 200 個典型 QA 對、新 prompt 通過 ≥ 90% 才能上線」 ✅ 「每月人工抽 50 個、品質分 ≥ 4/5」
必問 2: 失敗 Fallback
flowchart TD
Q[AI 回答失敗] --> F{Fallback?}
F --> F1["1) 重試 N 次"]
F --> F2["2) 換 model(GPT-4 → Claude)"]
F --> F3["3) 回傳「請稍候」"]
F --> F4["4) 人工 escalate"]
F --> F5["5) 預設答案 / 範本回覆"]
style F fill:#f59e0b,color:#fff
Spec 該寫:
LLM call timeout (15s): 自動 retry 1 次
全部失敗: 回「目前無法回答、請聯絡客服」+ 記 log
明確錯誤: 顯示「我不確定、建議問人類」
高風險問題(健康/法律/金融): 直接 escalate 人工
必問 3: 幻覺處理
幻覺 = LLM 編造事實。100% 不可能消除、只能降低 + 偵測。
flowchart LR
Out[LLM Output] --> Verify{驗證機制?}
Verify --> V1[RAG citation 必引文]
Verify --> V2[Tool call 確認事實]
Verify --> V3[Output classifier]
Verify --> V4[Confidence score 顯示]
style Verify fill:#a855f7,color:#fff
Spec 該寫:
RAG 模式: 每個事實聲明必須 cite source、無 source 不回
Fact check: 含日期 / 數字 / 名稱的回應要對知識庫驗
UI 警告: 「AI 生成、可能有誤」一律顯示
高風險 domain: 必須 cite + 人工 review
必問 4: Prompt 管理
flowchart TD
PM[Prompt Management] --> V[Versioning v1, v2, v3]
V --> AB[A/B test]
AB --> Eval[Eval set 跑]
Eval --> Deploy[上線一部分流量]
Deploy --> Monitor[監控 metric]
Monitor --> Rollback{有問題?}
Rollback -->|是| V
Rollback -->|否| Full[全量上線]
style V fill:#06b6d4,color:#fff
style Full fill:#10b981,color:#fff
Spec 該寫:
Prompt 存 Git: 每次改有 commit + reviewer
Prompt version: 帶在每次 LLM call、log 記版本
A/B test: 新 prompt 先 5% 流量、看 7 天 metric
Rollback: 一鍵切舊 prompt、< 30 秒
必問 5: 模型選擇
| 維度 | 該問 |
|---|---|
| Primary | 哪個 model(GPT-4 / Claude Sonnet / Gemini 2)? |
| Backup | Primary 掛了用哪個? |
| Cost limit | 每次 call 預算上限 |
| Latency | p95 要求? |
| 升級策略 | 新版 model 出來、A/B test 流程 |
必問 6: 成本控制
flowchart LR
User[User request] --> Limit{Rate limit?}
Limit -->|超| Reject[429 + Retry-After]
Limit -->|OK| Cache{快取?}
Cache -->|hit| Return[直接回]
Cache -->|miss| LLM[呼叫 LLM]
LLM --> Bill[計費]
Bill --> Cache
style Cache fill:#10b981,color:#fff
style Bill fill:#a855f7,color:#fff
Spec 該寫:
Per-user rate limit: 100 calls/day(free) / 1000 calls/day(paid)
Cache: 完全相同問題 24h 內回 cache
Cost alert: 整體每日支出 > $X 自動 throttle
Prompt 大小: 上限 4K token、超過砍掉 history
必問 7: 護欄 Guardrails
mindmap
root((Guardrails))
輸入端
Prompt injection 偵測
禁忌字過濾
個資偵測
地區/法律限制
輸出端
Bias 過濾
暴力 / 性 / 仇恨檢查
Toxic 分類器
Refusal 必要時
後處理
Citation 強制
Disclaimer 加註
Audit log
Spec 該寫:
禁忌主題: 醫療診斷 / 法律建議 / 投資建議 → 拒絕並建議找專業人
Prompt injection: 偵測 "ignore previous instructions" 模式、拒絕
個資輸出: 偵測 email / 電話 / 信用卡、mask 後回
冒充: 不能聲稱自己是「真人」、必須說 AI
必問 8: 法遵
flowchart TD
Law[法遵框架] --> EU[EU AI Act 2024]
Law --> GDPR[GDPR]
Law --> Local[地區法規]
EU --> EU1[高風險分類]
EU --> EU2[Audit log 必備]
EU --> EU3[解釋性 right to explanation]
GDPR --> G1[資料最小化]
GDPR --> G2[Right to be forgotten]
GDPR --> G3[Data processing record]
Local --> L1[台灣個資法]
Local --> L2[健保 / 金管會]
style EU fill:#ef4444,color:#fff
style GDPR fill:#a855f7,color:#fff
Spec 該寫:
AI 用途分類: 是否屬 EU AI Act「高風險」?
Audit log: 保留 user / prompt / response / decision、3 年
Right to explain: 使用者可問「為什麼這結果」
資料保留: LLM provider 是否會 train 我們資料?合約有規範嗎?
被遺忘權: 使用者刪帳號、AI 訓練資料怎處理?
完整 review 範例
Spec 原文(典型 PM 寫法)
新增 AI 客服助手
- 使用者問問題、AI 回答
- 整合 OpenAI GPT-4
- 期望 80% 問題自動回答
Review 提的 24 個問題
光是 8 必問 × 3 個延伸 = 24 個。例如:
1. 評估: 80% 怎麼量?哪 200 個 eval question?
2. Fallback: 答不出來怎處理?
3. 幻覺: 客戶問退款政策、AI 編造怎辦?
4. Prompt: 改一次 prompt 怎麼測影響?
5. 模型: GPT-4 掛了用什麼?
6. 成本: 每個使用者一個月平均花多少?
7. 護欄: 使用者罵髒話 / 問醫療問題怎處理?
8. 法遵: 對話 log 存多久? 客戶可以要求刪除嗎?
PM 多半答不出來 → spec 退回。
QA 該堅持的 DoR
flowchart LR
DoR[AI 功能 DoR] --> R1[Eval set 已建(≥ 100 範例)]
DoR --> R2[Fallback 流程定義]
DoR --> R3[Prompt versioning 機制]
DoR --> R4[Cost cap 明確]
DoR --> R5[Guardrails 列表]
DoR --> R6[法遵 review 過]
style DoR fill:#06b6d4,color:#fff
6 項全達標才能進 sprint。
反模式
flowchart TD
Anti[AI Spec 反模式] --> A1["AI 一定要 100% 正確"]
Anti --> A2["沒 eval set、靠直覺改"]
Anti --> A3["Prompt 寫在 code、沒 versioning"]
Anti --> A4["沒 fallback、AI 掛系統就掛"]
Anti --> A5["沒成本 cap、燒爆"]
Anti --> A6["不做 guardrail、被 prompt injection"]
Anti --> A7["不寫法遵、被罰"]
style A1 fill:#ef4444,color:#fff
style A2 fill:#ef4444,color:#fff
style A3 fill:#ef4444,color:#fff
style A4 fill:#ef4444,color:#fff
style A5 fill:#ef4444,color:#fff
style A6 fill:#ef4444,color:#fff
style A7 fill:#ef4444,color:#fff
給 QA 的 5 句
- AI 功能 spec 不能寫「正確」、要寫成功率
- 沒 eval set 等於沒 spec
- Prompt 改動 = code 改動、要走 review
- Fallback 比 happy path 重要 10 倍
- 法遵問題 spec 沒寫 = 公司賠錢
最後
AI 功能 spec review 是 2026 後 QA 最稀缺的技能。一般 spec checklist 救不了你 — 必須有 AI 專用 framework。從這 8 必問開始、每個 AI 功能 spec 至少問 3 倍的問題、上線後 incident 砍 70%。
延伸: - 用 LLM 跑 Spec Review - AI 共存的 QA 工具箱 - Spec Review Checklist