中階 10 分鐘

讓 AI Agent 先弄懂你的需求:Prompt Optimizer Skill

Prompt 不夠完整時,AI Agent 該直接做還是先問?Prompt Optimizer 會判斷資訊是否足夠,減少模糊與不必要的來回。

操作員在三向分流器判斷任務應直接前進、安全假設或停在單一問題閘門

學完會知道

  • 判斷 AI Agent 什麼時候該直接做、什麼時候才需要追問
  • 用三路任務分流減少模糊與無效來回
  • 建立並在 Codex 呼叫 Prompt Optimizer Skill

開始前先準備

  • 知道 Prompt 與 Skill 的基本差異
  • 使用支援 SKILL.md 或自訂指令的 AI 助手

AI Agent 遇到模糊需求時,常走向兩個極端。有些會先問一長串問題,明明已經可以開始,卻遲遲不動手。另一些則一路猜到底,做到最後才發現方向錯了。

Prompt Optimizer 放在這兩種反應中間。它先判斷現有資訊是否足夠。能做就直接做,只缺次要細節就採用合理假設,少了會改變結果的資料才回來確認。

我最早設計這份 Skill 時,替它做了一張 10 分量表。模型收到任務後,要先檢查目標、範圍、格式、上下文和成功標準,再依分數決定要不要追問。

這套方法看起來很謹慎。實際用幾次,卻有點像在便利商店買咖啡之前先填需求訪談表。使用者只是說「幫我把這段介紹改自然一點」,AI Agent 明明知道要做什麼,還是在內部跑完整套評分。

後來我用 Fable 5 協助重新整理這份 Skill,第一個動作就是刪掉評分表。Fable 5 是製作時使用的工具,Prompt Optimizer 本身不依賴特定模型,也不是 Fable 5 專用 Skill。

模糊需求不一定需要追問

需求不夠完整時,先看缺少的資訊會不會改變結果。Prompt Optimizer 不把每個空白都當成阻礙,它只判斷一件事:

現在缺少的資訊,會不會實際改變結果或造成不該發生的動作?

如果不會,就直接做。若只是少了次要細節,可以採用合理假設。只有缺少的資料會改變結果、擴大範圍,或牽涉難以復原的外部操作時,才停下來問能解除阻礙的問題。

這比較像把工作交給一位熟悉業務的同事。你不會要求對方替每句話評分,但會希望他知道什麼可以自行判斷,什麼必須回來確認。AI Agent 能分清楚這條線,才不會把時間花在無效追問,也不會因為猜錯方向而整份重做。

從五項評分改成三路分流

新版 Prompt Optimizer 只保留三種處理方式。

資訊足夠時直接執行

使用者已經提供原文、語言和必須保留的項目,模型就該開始改寫。不要先評論 Prompt 寫得好不好,也不要為了追求完整而詢問不影響結果的細節。

可以安全推進時採用合理假設

有些請求不完整,但缺少的資訊不會造成明顯風險。例如使用者請你把履歷調整成軟體 PM 版本,卻沒有指定公司。你仍然可以依常見職缺需求完成第一版。若假設會影響使用者判斷,再用一句話交代即可。

缺少必要資料才詢問

如果使用者要寄信、發布文章、刪除資料,或要求模型替某個不明確的對象採取行動,就不能靠猜。這時應該提出一個聚焦問題,取得必要資料後再繼續。

追問本身沒有問題。問題在於,模型常問了一堆不會改變下一步的事。

範圍比提示分數更值得管

重新整理這個 Skill 時,我把篇幅留給任務邊界,而不是評分公式。

「幫我找出登入按鈕為什麼沒有反應」是一個診斷請求。模型可以檢查程式碼、事件綁定、瀏覽器錯誤和測試結果,但不該直接改檔案。找出原因和實際修好,是兩份不同的授權。

「幫我寫一封延後上線的通知」只授權建立草稿。「幫我把通知寄給客戶」才包含外部傳送,而且寄出前仍要確認收件人、日期與最終內容。

比回答偏題更麻煩的,是模型擅自擴大工作範圍。Prompt Optimizer 要阻止它把分析變成修改,把草稿變成發送,或在修一個錯誤時順便重構整個專案。

完整 Prompt Optimizer Skill

將以下內容存成 prompt-optimizer/SKILL.md

---
name: prompt-optimizer
description: 在執行使用者任務前判斷現有資訊是否足夠,並選擇直接執行、採用合理假設或提出必要問題。適用於寫作、分析、程式開發、檔案修改、商務溝通及工具操作等請求,尤其適合需求略有模糊、可能擴大範圍、涉及外部操作,或需要避免不必要來回確認的情境。
---

# Prompt Optimizer

## 目標

協助使用者用最少的來回取得可用結果。不要替提示打分,也不要要求使用者把普通請求改寫成完整規格。

## 工作流程

### 1. 理解任務

在內部確認:

- 使用者要取得的結果
- 任務的背景或用途
- 已明確提出的限制
- 判斷完成與否的方法

不要輸出評分表、提示健檢或內部推理。

### 2. 選擇處理方式

依序採用以下其中一種方式:

1. 資訊足夠時,直接執行,不評論提示品質。
2. 資訊不完整但可以安全推進時,採用最合理且不擴大範圍的假設。只有假設會影響使用者判斷時,才用一句話說明。
3. 缺少關鍵資訊時,提出一個能解除阻礙的問題,然後等待回答。

只有在下列情況停下來確認:

- 不同答案會產生明顯不同的結果
- 行動具有破壞性或難以復原
- 使用者要求聯絡、發布或傳送內容,但缺少對象或必要資料
- 任務需要只有使用者知道的事實
- 繼續執行會改變原本範圍

### 3. 守住範圍

- 使用者要求分析時,只提供分析,不擅自修改。
- 使用者要求草稿時,只建立草稿,不直接傳送或發布。
- 修正問題時,不順便重構無關內容。
- 不增加未被要求的功能、設定或抽象層。
- 可逆且明確屬於原任務的步驟,直接進行。

### 4. 驗證結果

簡單任務只需逐項核對使用者的要求。

使用工具、修改檔案或執行測試時,根據本次工作中的實際結果回報進度。未驗證的內容要明確說明,不要把預計完成寫成已完成。

### 5. 回覆

先說結果,再補充會影響使用者判斷的細節。不要公開內部評分或隱藏推理,也不要在結尾承諾尚未執行的工作。

## 不同領域的例子

### 寫作

使用者請求:

> 把下面的產品介紹改得自然一點,保留價格和規格,使用繁體中文。

處理方式:

原文、語言與保留項目都已提供,直接改寫。不要先詢問受眾年齡、理想字數或發布平台,除非這些資訊確實會改變結果。

### 程式除錯

使用者請求:

> 登入按鈕按下去沒有反應,幫我找出原因。

處理方式:

檢查相關程式碼、事件綁定、瀏覽器錯誤與測試結果,然後回報原因和證據。這是診斷請求,不要在未獲授權時直接修改程式碼。若沒有提供專案位置且無法從工作區判斷,再詢問必要資訊。

### 商務溝通

使用者請求:

> 把延後上線的通知寄給客戶。

處理方式:

這項請求包含外部傳送行為。若收件人、延期日期或可傳送的最終內容不明確,先用一個問題請使用者補齊必要資料。取得資料後先確認內容,再依原始授權傳送,不要自行增加收件人。

## 硬性規則

- 不使用數字替提示評分。
- 不因資訊略有不足就自動追問。
- 一次最多提出一個聚焦問題。
- 不要求使用者重寫已經可以執行的提示。
- 不公開內部推理過程。
- 不把診斷當成修改授權。
- 不把建立草稿當成傳送授權。
- 回報進度前先核對實際工具結果。

三個領域怎麼用

寫作:直接做,不要先開需求會議

輸入:

$prompt-optimizer

把下面的產品介紹改得自然一點,保留 NT$1,990 的價格和三項規格,使用台灣繁體中文。

[貼上原文]

這份請求的結果、限制和原始資料都很清楚。模型應該直接改寫,不需要先問讀者年齡、品牌個性或預計發布平台。

程式除錯:診斷不等於修改

輸入:

$prompt-optimizer

登入按鈕按下去沒有反應,請找出原因並附上證據。

模型可以讀取專案、檢查錯誤訊息並執行不會改變狀態的測試。完成後應先回報原因。除非使用者同時要求修正,否則不要直接改動程式碼。

商務溝通:外部動作不能靠猜

輸入:

$prompt-optimizer

把延後上線的通知寄給客戶。

如果收件人、延期日期或通知內容尚未確定,模型應該先問一個問題,請使用者一次補齊必要資料。這不是多餘的來回,因為寄錯人或寫錯日期會造成真實影響。

在 Codex 安裝與呼叫

Codex 會從個人目錄的 ~/.agents/skills 讀取 Skills。把整個 prompt-optimizer 資料夾放到下面的位置:

~/.agents/skills/prompt-optimizer/
├── SKILL.md
└── agents/
    └── openai.yaml

安裝後,在 Codex 輸入 $ 並選擇 prompt-optimizer,或直接在訊息開頭寫:

$prompt-optimizer

幫我處理以下任務:
[貼上內容]

Codex 也可能根據 description 自動啟用 Skill。不過在測試新版本時,我仍會明確寫出 $prompt-optimizer,這樣比較容易確認它有沒有依照預期執行。修改 SKILL.md 後若清單沒有更新,重新開啟 Codex 再試一次。

其他 AI 助手若沒有原生 Skills 功能,也能把 SKILL.md 貼進 Project、Gem、自訂指令或對話開頭。這份 Skill 不依賴額外程式或 API,純文字環境就能使用。

它不會把模糊需求變成讀心術

Prompt Optimizer 可以減少沒有必要的追問,卻不能替使用者決定會影響業務的選擇。品牌要嚴肅還是活潑、合約要接受多少風險、郵件要寄給哪些人,這些答案若會改變結果,模型仍然要問。

它也不保證每個模型都會做出相同判斷。Skill 的工作是提供邊界和處理順序,不是把所有情境寫成一棵永遠列不完的決策樹。遇到實際誤判時,再把那個案例補進規則,通常比預先增加十幾條假設更有用。

調整完成後,最明顯的差別其實很安靜。多數請求不再先收到一份 Prompt 健檢報告,而是直接拿到完成的工作。只有少了某個不能猜的答案時,模型才會停下來問。

參考資料